import React from "react"; import { useIntl } from "react-intl"; import { Button, Form } from "react-bootstrap"; import { mutateRunPluginTask, usePlugins } from "src/core/StashService"; import { useToast } from "src/hooks/Toast"; import * as GQL from "src/core/generated-graphql"; import { SettingSection } from "../SettingSection"; import { Setting, SettingGroup } from "../Inputs"; type Plugin = Pick; type PluginTask = Pick; export const PluginTasks: React.FC = () => { const intl = useIntl(); const Toast = useToast(); const plugins = usePlugins(); function renderPluginTasks(plugin: Plugin, pluginTasks: PluginTask[]) { return pluginTasks.map((o) => { return ( ); }); } async function onPluginTaskClicked(plugin: Plugin, operation: PluginTask) { await mutateRunPluginTask(plugin.id, operation.name); Toast.success( intl.formatMessage( { id: "config.tasks.added_job_to_queue" }, { operation_name: operation.name } ) ); } if (!plugins.data?.plugins) { return null; } const taskPlugins = plugins.data.plugins.filter( (p) => p.enabled && p.tasks && p.tasks.length > 0 ); if (!taskPlugins.length) { return null; } return ( {taskPlugins.map((o) => { return ( {renderPluginTasks(o, o.tasks!)} ); })} ); };