1
0
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:
Iku-turso 2022-03-21 16:32:31 +02:00 committed by Janne Savolainen
parent ec33125373
commit 1bf61b6870
No known key found for this signature in database
GPG Key ID: 8C6CFB2FFFE8F68A

View File

@ -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),
}), }),
}); },
);