mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Prevent explicit side effect in component by using existing dependency instead
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
This commit is contained in:
parent
ec33125373
commit
1bf61b6870
@ -14,16 +14,24 @@ import { packageMirrors } from "../../../common/user-store/preferences-helpers";
|
|||||||
import directoryForBinariesInjectable from "../../../common/app-paths/directory-for-binaries/directory-for-binaries.injectable";
|
import directoryForBinariesInjectable from "../../../common/app-paths/directory-for-binaries/directory-for-binaries.injectable";
|
||||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||||
import userStoreInjectable from "../../../common/user-store/user-store.injectable";
|
import userStoreInjectable from "../../../common/user-store/user-store.injectable";
|
||||||
import { kubectlBinaryPath } from "../../../common/vars";
|
import directoryForKubectlBinariesInjectable from "../../../common/app-paths/directory-for-kubectl-binaries/directory-for-kubectl-binaries.injectable";
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
|
defaultPathForGeneralBinaries: string;
|
||||||
defaultPathForKubectlBinaries: string;
|
defaultPathForKubectlBinaries: string;
|
||||||
userStore: UserStore;
|
userStore: UserStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
const NonInjectedKubectlBinaries: React.FC<Dependencies> = observer(({ defaultPathForKubectlBinaries, userStore }) => {
|
const NonInjectedKubectlBinaries: React.FC<Dependencies> = observer(
|
||||||
const [downloadPath, setDownloadPath] = useState(userStore.downloadBinariesPath || "");
|
({ defaultPathForGeneralBinaries, defaultPathForKubectlBinaries, userStore }) => {
|
||||||
const [binariesPath, setBinariesPath] = useState(userStore.kubectlBinariesPath || "");
|
const [downloadPath, setDownloadPath] = useState(
|
||||||
|
userStore.downloadBinariesPath || "",
|
||||||
|
);
|
||||||
|
|
||||||
|
const [binariesPath, setBinariesPath] = useState(
|
||||||
|
userStore.kubectlBinariesPath || "",
|
||||||
|
);
|
||||||
|
|
||||||
const pathValidator = downloadPath ? InputValidators.isPath : undefined;
|
const pathValidator = downloadPath ? InputValidators.isPath : undefined;
|
||||||
const downloadMirrorOptions: SelectOption<string>[] = Array.from(
|
const downloadMirrorOptions: SelectOption<string>[] = Array.from(
|
||||||
packageMirrors.entries(),
|
packageMirrors.entries(),
|
||||||
@ -68,22 +76,20 @@ const NonInjectedKubectlBinaries: React.FC<Dependencies> = observer(({ defaultPa
|
|||||||
<Input
|
<Input
|
||||||
theme="round-black"
|
theme="round-black"
|
||||||
value={downloadPath}
|
value={downloadPath}
|
||||||
placeholder={defaultPathForKubectlBinaries}
|
placeholder={defaultPathForGeneralBinaries}
|
||||||
validators={pathValidator}
|
validators={pathValidator}
|
||||||
onChange={setDownloadPath}
|
onChange={setDownloadPath}
|
||||||
onBlur={save}
|
onBlur={save}
|
||||||
disabled={!userStore.downloadKubectlBinaries}
|
disabled={!userStore.downloadKubectlBinaries}
|
||||||
/>
|
/>
|
||||||
<div className="hint">
|
<div className="hint">The directory to download binaries into.</div>
|
||||||
The directory to download binaries into.
|
|
||||||
</div>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<SubTitle title="Path to kubectl binary" />
|
<SubTitle title="Path to kubectl binary" />
|
||||||
<Input
|
<Input
|
||||||
theme="round-black"
|
theme="round-black"
|
||||||
placeholder={kubectlBinaryPath.get()}
|
placeholder={defaultPathForKubectlBinaries}
|
||||||
value={binariesPath}
|
value={binariesPath}
|
||||||
validators={pathValidator}
|
validators={pathValidator}
|
||||||
onChange={setBinariesPath}
|
onChange={setBinariesPath}
|
||||||
@ -93,11 +99,16 @@ const NonInjectedKubectlBinaries: React.FC<Dependencies> = observer(({ defaultPa
|
|||||||
</section>
|
</section>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
|
||||||
export const KubectlBinaries = withInjectables<Dependencies>(NonInjectedKubectlBinaries, {
|
export const KubectlBinaries = withInjectables<Dependencies>(
|
||||||
|
NonInjectedKubectlBinaries,
|
||||||
|
{
|
||||||
getProps: (di) => ({
|
getProps: (di) => ({
|
||||||
defaultPathForKubectlBinaries: di.inject(directoryForBinariesInjectable),
|
defaultPathForGeneralBinaries: di.inject(directoryForBinariesInjectable),
|
||||||
|
defaultPathForKubectlBinaries: di.inject(directoryForKubectlBinariesInjectable),
|
||||||
userStore: di.inject(userStoreInjectable),
|
userStore: di.inject(userStoreInjectable),
|
||||||
}),
|
}),
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user