import { prefixPluginTranslations } from '@strapi/helper-plugin'; import pluginPkg from '../../package.json'; import pluginId from './pluginId'; import pluginPermissions from './permissions'; import Initializer from './components/Initializer'; import PluginIcon from './components/PluginIcon'; const name = pluginPkg.strapi.displayName; export default { register(app: any) { app.addMenuLink({ to: `/plugins/${pluginId}`, icon: PluginIcon, intlLabel: { id: `${pluginId}.plugin.name`, defaultMessage: name, }, Component: async () => { const component = await import('./pages/App'); return component; }, //permissions: [pluginPermissions.trigger], }); const pluginPrefix = `${pluginId}.settings`; app.createSettingSection( { id: pluginPrefix, intlLabel: { id: `${pluginPrefix}.title`, defaultMessage: name, }, }, [ { id: pluginPrefix, intlLabel: { id: `${pluginPrefix}.subtitle.link`, defaultMessage: 'Configuration', }, to: `/settings/${pluginId}`, Component: async () => { const component = await import('./pages/App'); return component; }, //permissions: [pluginPermissions.settings], }, ] ); app.registerPlugin({ id: pluginId, initializer: Initializer, isReady: false, name, }); }, bootstrap(app: any) {}, async registerTrads(app: any) { const { locales } = app; const importedTrads = await Promise.all( (locales as any[]).map((locale) => { return import(`./translations/${locale}.json`) .then(({ default: data }) => { return { data: prefixPluginTranslations(data, pluginId), locale, }; }) .catch(() => { return { data: {}, locale, }; }); }) ); return Promise.resolve(importedTrads); }, };