import React, { useCallback } from 'react'; import { useTranslation } from 'next-i18next'; import { apiv3Post } from '~/client/util/apiv3-client'; import { toastSuccess, toastError } from '~/client/util/toastr'; import { useSWRxPlugins } from '~/stores/plugin'; export const PluginInstallerForm = (): JSX.Element => { const { mutate } = useSWRxPlugins(); const { t } = useTranslation('admin'); const submitHandler = useCallback(async(e) => { e.preventDefault(); const formData = e.target.elements; const { 'pluginInstallerForm[url]': { value: url }, // 'pluginInstallerForm[ghBranch]': { value: ghBranch }, // 'pluginInstallerForm[ghTag]': { value: ghTag }, } = formData; const pluginInstallerForm = { url, // ghBranch, // ghTag, }; try { const res = await apiv3Post('/plugins', { pluginInstallerForm }); const pluginName = res.data.pluginName; toastSuccess(t('toaster.install_plugin_success', { pluginName })); } catch (e) { toastError(e); } finally { mutate(); } }, [mutate, t]); return (

{t('plugins.description')}

); };