1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Fix more type errors

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-12-06 09:51:48 -05:00
parent 1a4c1d8a68
commit a6d1b7a3a4
4 changed files with 37 additions and 38 deletions

View File

@ -4,23 +4,29 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import type { FileFilter } from "electron"; import type { FileFilter } from "electron";
import type { PathPickOpts } from "../../../../../../../renderer/components/path-picker";
import openPathPickingDialogInjectable from "../../../../../../path-picking-dialog/renderer/pick-paths.injectable"; import openPathPickingDialogInjectable from "../../../../../../path-picking-dialog/renderer/pick-paths.injectable";
const getFilePathsInjectable = getInjectable({ export interface RequestFilePathOptions extends Pick<PathPickOpts, "onCancel" | "onPick"> {
id: "get-file-paths", filter: FileFilter;
}
instantiate: (di) => { export type RequestFilePaths = (options: RequestFilePathOptions) => Promise<void>;
const requestFilePathsInjectable = getInjectable({
id: "request-file-paths",
instantiate: (di): RequestFilePaths => {
const openPathPickingDialog = di.inject(openPathPickingDialogInjectable); const openPathPickingDialog = di.inject(openPathPickingDialogInjectable);
return async (fileFilter: FileFilter) => await openPathPickingDialog({ return async ({ filter, ...opts }) => await openPathPickingDialog({
properties: ["openFile", "showHiddenFiles"], properties: ["openFile", "showHiddenFiles"],
message: "Select file", message: "Select file",
buttonLabel: "Use file", buttonLabel: "Use file",
filters: [fileFilter, { name: "Any", extensions: ["*"] }], filters: [filter, { name: "Any", extensions: ["*"] }],
...opts,
}); });
}, },
causesSideEffects: true,
}); });
export default getFilePathsInjectable; export default requestFilePathsInjectable;

View File

@ -7,8 +7,8 @@ import { Input } from "../../../../../../../renderer/components/input";
import { Icon } from "../../../../../../../renderer/components/icon"; import { Icon } from "../../../../../../../renderer/components/icon";
import { withInjectables } from "@ogre-tools/injectable-react"; import { withInjectables } from "@ogre-tools/injectable-react";
import React from "react"; import React from "react";
import getFilePathsInjectable from "./get-file-paths.injectable"; import type { RequestFilePaths } from "./get-file-paths.injectable";
import type { FileFilter } from "electron"; import requestFilePathsInjectable from "./get-file-paths.injectable";
import isPathInjectable from "../../../../../../../renderer/components/input/validators/is-path.injectable"; import isPathInjectable from "../../../../../../../renderer/components/input/validators/is-path.injectable";
interface HelmFileInputProps { interface HelmFileInputProps {
@ -20,7 +20,7 @@ interface HelmFileInputProps {
} }
interface Dependencies { interface Dependencies {
getFilePaths: (fileFilter: FileFilter) => Promise<{ canceled: boolean; filePaths: string[] }>; requestFilePaths: RequestFilePaths;
isPath: InputValidator<true>; isPath: InputValidator<true>;
} }
@ -29,7 +29,7 @@ const NonInjectedHelmFileInput = ({
value, value,
setValue, setValue,
fileExtensions, fileExtensions,
getFilePaths, requestFilePaths,
isPath, isPath,
"data-testid": testId, "data-testid": testId,
}: Dependencies & HelmFileInputProps) => ( }: Dependencies & HelmFileInputProps) => (
@ -44,31 +44,26 @@ const NonInjectedHelmFileInput = ({
/> />
<Icon <Icon
material="folder" material="folder"
onClick={() => void requestFilePaths({
onClick={async () => { filter: {
const { canceled, filePaths } = await getFilePaths({
name: placeholder, name: placeholder,
extensions: fileExtensions, extensions: fileExtensions,
}); },
onPick: (filePaths) => {
if (!canceled && filePaths.length) { if (filePaths.length) {
setValue(filePaths[0]); setValue(filePaths[0]);
} }
}} },
})}
tooltip="Browse" tooltip="Browse"
/> />
</div> </div>
); );
export const HelmFileInput = withInjectables<Dependencies, HelmFileInputProps>( export const HelmFileInput = withInjectables<Dependencies, HelmFileInputProps>(NonInjectedHelmFileInput, {
NonInjectedHelmFileInput,
{
getProps: (di, props) => ({ getProps: (di, props) => ({
getFilePaths: di.inject(getFilePathsInjectable),
isPath: di.inject(isPathInjectable),
...props, ...props,
requestFilePaths: di.inject(requestFilePathsInjectable),
isPath: di.inject(isPathInjectable),
}), }),
}, });
);

View File

@ -41,7 +41,7 @@ const setupKubernetesClusterCatalogAddMenuListenerInjectable = getInjectable({
title: "Sync kubeconfig folder(s)", title: "Sync kubeconfig folder(s)",
defaultAction: true, defaultAction: true,
onClick: () => openPathPickingDialog({ onClick: () => openPathPickingDialog({
label: "Sync folder(s)", message: "Sync folder(s)",
buttonLabel: "Sync", buttonLabel: "Sync",
properties: ["showHiddenFiles", "multiSelections", "openDirectory"], properties: ["showHiddenFiles", "multiSelections", "openDirectory"],
onPick: addSyncEntries, onPick: addSyncEntries,
@ -51,7 +51,7 @@ const setupKubernetesClusterCatalogAddMenuListenerInjectable = getInjectable({
icon: "note_add", icon: "note_add",
title: "Sync kubeconfig file(s)", title: "Sync kubeconfig file(s)",
onClick: () => openPathPickingDialog({ onClick: () => openPathPickingDialog({
label: "Sync file(s)", message: "Sync file(s)",
buttonLabel: "Sync", buttonLabel: "Sync",
properties: ["showHiddenFiles", "multiSelections", "openFile"], properties: ["showHiddenFiles", "multiSelections", "openFile"],
onPick: addSyncEntries, onPick: addSyncEntries,
@ -65,7 +65,7 @@ const setupKubernetesClusterCatalogAddMenuListenerInjectable = getInjectable({
title: "Sync kubeconfig(s)", title: "Sync kubeconfig(s)",
defaultAction: true, defaultAction: true,
onClick: () => openPathPickingDialog({ onClick: () => openPathPickingDialog({
label: "Sync file(s)", message: "Sync file(s)",
buttonLabel: "Sync", buttonLabel: "Sync",
properties: ["showHiddenFiles", "multiSelections", "openFile", "openDirectory"], properties: ["showHiddenFiles", "multiSelections", "openFile", "openDirectory"],
onPick: addSyncEntries, onPick: addSyncEntries,

View File

@ -22,7 +22,6 @@ import apiManagerInjectable from "../common/k8s-api/api-manager/manager.injectab
import { computed, runInAction } from "mobx"; import { computed, runInAction } from "mobx";
import requestAnimationFrameInjectable from "./components/animate/request-animation-frame.injectable"; import requestAnimationFrameInjectable from "./components/animate/request-animation-frame.injectable";
import getRandomIdInjectable from "../common/utils/get-random-id.injectable"; import getRandomIdInjectable from "../common/utils/get-random-id.injectable";
import getFilePathsInjectable from "../features/helm-charts/child-features/preferences/renderer/adding-of-custom-helm-repository/helm-file-input/get-file-paths.injectable";
import requestPublicHelmRepositoriesInjectable from "../features/helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable"; import requestPublicHelmRepositoriesInjectable from "../features/helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
import platformInjectable from "../common/vars/platform.injectable"; import platformInjectable from "../common/vars/platform.injectable";
import startTopbarStateSyncInjectable from "./components/layout/top-bar/start-state-sync.injectable"; import startTopbarStateSyncInjectable from "./components/layout/top-bar/start-state-sync.injectable";
@ -132,7 +131,6 @@ export const getDiForUnitTesting = (
overrideFunctionalInjectables(di, [ overrideFunctionalInjectables(di, [
broadcastMessageInjectable, broadcastMessageInjectable,
getFilePathsInjectable,
requestPublicHelmRepositoriesInjectable, requestPublicHelmRepositoriesInjectable,
]); ]);