-
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathindex.tsx
More file actions
82 lines (73 loc) · 2.16 KB
/
index.tsx
File metadata and controls
82 lines (73 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import { plugin } from '../../utils';
import PluginIcon from './components/PluginIcon';
import getTrad from './utils/getTrad';
import permissions from './permissions';
export default {
register(app: any) {
app.addMenuLink({
to: `/plugins/${plugin.pluginId}`,
icon: PluginIcon,
intlLabel: {
id: `${plugin.pluginId}.name`,
defaultMessage: plugin.name,
},
Component: async () => {
const component = await import(/* webpackChunkName: "[request]" */ './pages/App');
return component;
},
permissions: permissions.main,
});
app.createSettingSection(
{ id: plugin.pluginId, intlLabel: { id: getTrad('name'), defaultMessage: 'Soft Delete' } },
[
{
intlLabel: {
id: getTrad('setting.restorationBehavior'),
defaultMessage: 'Restoration Behavior',
},
id: `${plugin.pluginId}.setting.restorationBehavior`,
to: `/settings/${plugin.pluginId}/restoration-behavior`,
Component: async () => {
const component = await import(
/* webpackChunkName: "[request]" */ './pages/Settings/RestorationBehavior'
);
return component;
},
permissions: permissions.settings,
},
]
);
app.registerPlugin({
id: plugin.pluginId,
name: plugin.name,
});
},
bootstrap(app: any) {},
async registerTrads(app: any) {
const { locales } = app;
const importedTranslations = await Promise.all(
locales.map((locale: string) => {
return import(`./translations/${locale}.json`)
.then(({ default: data }) => {
return {
data: Object.keys(data).reduce(
(acc, key) => {
acc[`${plugin.pluginId}.${key}`] = data[key];
return acc;
},
{} as Record<string, string>
),
locale,
};
})
.catch(() => {
return {
data: {},
locale,
};
});
})
);
return Promise.resolve(importedTranslations);
},
};