import { PreferencesGroup, PreferencesSegment } from '@/preferences/components'; import { WebApplication } from '@/ui_models/application'; import { ComponentViewer, SNComponent } from '@standardnotes/snjs/dist/@types'; import { observer } from 'mobx-react-lite'; import { FunctionComponent } from 'preact'; import { ExtensionItem } from './extensions-segments'; import { ComponentView } from '@/components/ComponentView'; import { AppState } from '@/ui_models/app_state'; import { PreferencesMenu } from '@/preferences/PreferencesMenu'; import { useEffect, useState } from 'preact/hooks'; interface IProps { application: WebApplication; appState: AppState; extension: SNComponent; preferencesMenu: PreferencesMenu; } export const ExtensionPane: FunctionComponent = observer( ({ extension, application, appState, preferencesMenu }) => { const [componentViewer] = useState( application.componentManager.createComponentViewer(extension) ); const latestVersion = preferencesMenu.extensionsLatestVersions.getVersion(extension); useEffect(() => { return () => { application.componentManager.destroyComponentViewer(componentViewer); }; }, [application, componentViewer]); return (
application .deleteItem(extension) .then(() => preferencesMenu.loadExtensionsPanes()) } latestVersion={latestVersion} />
); } );