-
-
Notifications
You must be signed in to change notification settings - Fork 880
Expand file tree
/
Copy pathextendUserSettingsPage.tsx
More file actions
60 lines (53 loc) · 2.13 KB
/
Copy pathextendUserSettingsPage.tsx
File metadata and controls
60 lines (53 loc) · 2.13 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
import app from 'flarum/forum/app';
import { extend, override } from 'flarum/common/extend';
import ItemList from 'flarum/common/utils/ItemList';
import FieldSet from 'flarum/common/components/FieldSet';
import type Mithril from 'mithril';
import Button from 'flarum/common/components/Button';
import RequestErasureModal from '../components/RequestErasureModal';
import RequestDataExportModal from '../../common/components/RequestDataExportModal';
export default function extendUserSettingsPage() {
extend('flarum/forum/components/SettingsPage', 'settingsItems', function (items: ItemList<Mithril.Children>) {
const user = this.user;
if (!user) {
return;
}
items.add(
'dataItems',
<FieldSet className="Settings-gdpr FieldSet--form" label={app.translator.trans('flarum-gdpr.forum.settings.data.heading')}>
{this.dataItems().toArray()}
</FieldSet>,
-100
);
});
override('flarum/forum/components/SettingsPage', 'dataItems', function (): ItemList<Mithril.Children> {
const items = new ItemList<Mithril.Children>();
if (this.user === app.session.user) {
items.add(
'gdprErasure',
<div className="Form-group gdprErasure-container">
<p className="helpText">{app.translator.trans('flarum-gdpr.forum.settings.request_erasure_help')}</p>
<Button className="Button Button-gdprErasure" icon="fas fa-user-minus" onclick={() => app.modal.show(RequestErasureModal as any)}>
{app.translator.trans('flarum-gdpr.forum.settings.request_erasure_button')}
</Button>
</div>,
50
);
}
items.add(
'gdprExport',
<div className="Form-group gdprExport-container">
<p className="helpText">{app.translator.trans('flarum-gdpr.forum.settings.export_data_help')}</p>
<Button
className="Button Button-gdprExport"
icon="fas fa-file-export"
onclick={() => app.modal.show(RequestDataExportModal as any, { user: this.user })}
>
{app.translator.trans('flarum-gdpr.forum.settings.export_data_button')}
</Button>
</div>,
40
);
return items;
});
}