mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Add dependencies to uninstall/disable extension
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
parent
99d657d34a
commit
0770e9892b
@ -13,10 +13,21 @@ import { Icon } from "../icon";
|
|||||||
import type { Extension } from "./extension-list";
|
import type { Extension } from "./extension-list";
|
||||||
import type { ExtensionInstallationStateStore } from "../../../extensions/extension-installation-state-store/extension-installation-state-store";
|
import type { ExtensionInstallationStateStore } from "../../../extensions/extension-installation-state-store/extension-installation-state-store";
|
||||||
import extensionInstallationStateStoreInjectable from "../../../extensions/extension-installation-state-store/extension-installation-state-store.injectable";
|
import extensionInstallationStateStoreInjectable from "../../../extensions/extension-installation-state-store/extension-installation-state-store.injectable";
|
||||||
|
import type { IComputedValue } from "mobx";
|
||||||
|
import confirmUninstallExtensionInjectable from "../+extensions/confirm-uninstall-extension/confirm-uninstall-extension.injectable";
|
||||||
|
import disableExtensionInjectable from "../+extensions/disable-extension/disable-extension.injectable";
|
||||||
|
import enableExtensionInjectable from "../+extensions/enable-extension/enable-extension.injectable";
|
||||||
|
import userExtensionsInjectable from "../+extensions/user-extensions/user-extensions.injectable";
|
||||||
|
import type { InstalledExtension } from "../../../extensions/extension-discovery/extension-discovery";
|
||||||
|
import type { LensExtensionId } from "../../../extensions/lens-extension";
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
installFromInput: (input: string) => Promise<void>;
|
installFromInput: (input: string) => Promise<void>;
|
||||||
extensionInstallationStateStore: ExtensionInstallationStateStore;
|
extensionInstallationStateStore: ExtensionInstallationStateStore;
|
||||||
|
userExtensions: IComputedValue<InstalledExtension[]>;
|
||||||
|
enableExtension: (id: LensExtensionId) => void;
|
||||||
|
disableExtension: (id: LensExtensionId) => void;
|
||||||
|
confirmUninstallExtension: (extension: InstalledExtension) => Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
@ -24,8 +35,15 @@ interface Props {
|
|||||||
onClick?: () => void;
|
onClick?: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
function NonInjectedExtensionCard({ extension, extensionInstallationStateStore: store, installFromInput, onClick }: Props & Dependencies) {
|
function NonInjectedExtensionCard({
|
||||||
|
extension,
|
||||||
|
extensionInstallationStateStore: store,
|
||||||
|
installFromInput,
|
||||||
|
onClick,
|
||||||
|
userExtensions,
|
||||||
|
}: Props & Dependencies) {
|
||||||
const { name, version, totalNumberOfInstallations, shortDescription, publisher, githubRepositoryUrl, appIconUrl } = extension;
|
const { name, version, totalNumberOfInstallations, shortDescription, publisher, githubRepositoryUrl, appIconUrl } = extension;
|
||||||
|
const installedExtension = userExtensions.get().find(installed => installed.manifest.name == name);
|
||||||
const [waiting, setWaiting] = useState(false);
|
const [waiting, setWaiting] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -86,6 +104,10 @@ export const ExtensionCard = withInjectables<Dependencies, Props>(
|
|||||||
getProps: (di, props) => ({
|
getProps: (di, props) => ({
|
||||||
installFromInput: di.inject(installFromInputInjectable),
|
installFromInput: di.inject(installFromInputInjectable),
|
||||||
extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable),
|
extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable),
|
||||||
|
userExtensions: di.inject(userExtensionsInjectable),
|
||||||
|
enableExtension: di.inject(enableExtensionInjectable),
|
||||||
|
disableExtension: di.inject(disableExtensionInjectable),
|
||||||
|
confirmUninstallExtension: di.inject(confirmUninstallExtensionInjectable),
|
||||||
|
|
||||||
...props,
|
...props,
|
||||||
}),
|
}),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user