keeweb/app/scripts/ui/settings/plugins/settings-gallery-plugin.ts

25 lines
881 B
TypeScript

import { FunctionComponent, h } from 'preact';
import { PluginGalleryPlugin } from 'plugins/types';
import { SettingsGalleryPluginView } from 'views/settings/plugins/settings-gallery-plugin-view';
import { Features } from 'util/features';
import { PluginManager } from 'plugins/plugin-manager';
import { noop } from 'util/fn';
export const SettingsGalleryPlugin: FunctionComponent<{ plugin: PluginGalleryPlugin }> = ({
plugin
}) => {
const installClicked = () => {
PluginManager.install(plugin.url, plugin.manifest).catch(noop);
};
return h(SettingsGalleryPluginView, {
hasUnicodeFlags: Features.hasUnicodeFlags,
manifest: plugin.manifest,
official: plugin.official,
installing: PluginManager.installing.has(plugin.url),
installError: PluginManager.installErrors.get(plugin.url),
installClicked
});
};