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 { 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 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 {
|
||||
installFromInput: (input: string) => Promise<void>;
|
||||
extensionInstallationStateStore: ExtensionInstallationStateStore;
|
||||
userExtensions: IComputedValue<InstalledExtension[]>;
|
||||
enableExtension: (id: LensExtensionId) => void;
|
||||
disableExtension: (id: LensExtensionId) => void;
|
||||
confirmUninstallExtension: (extension: InstalledExtension) => Promise<void>;
|
||||
}
|
||||
|
||||
interface Props {
|
||||
@ -24,8 +35,15 @@ interface Props {
|
||||
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 installedExtension = userExtensions.get().find(installed => installed.manifest.name == name);
|
||||
const [waiting, setWaiting] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
@ -86,6 +104,10 @@ export const ExtensionCard = withInjectables<Dependencies, Props>(
|
||||
getProps: (di, props) => ({
|
||||
installFromInput: di.inject(installFromInputInjectable),
|
||||
extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable),
|
||||
userExtensions: di.inject(userExtensionsInjectable),
|
||||
enableExtension: di.inject(enableExtensionInjectable),
|
||||
disableExtension: di.inject(disableExtensionInjectable),
|
||||
confirmUninstallExtension: di.inject(confirmUninstallExtensionInjectable),
|
||||
|
||||
...props,
|
||||
}),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user