Skip to content

Commit e7cdb03

Browse files
committed
chore: handle chunk from fof/user-directory, split FollowUserPage
1 parent b7c1cf0 commit e7cdb03

File tree

5 files changed

+52
-52
lines changed

5 files changed

+52
-52
lines changed

extend.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
return [
2424
(new Extend\Frontend('forum'))
2525
->js(__DIR__.'/js/dist/forum.js')
26+
->jsDirectory(__DIR__.'/js/dist/forum')
2627
->css(__DIR__.'/resources/less/forum.less'),
2728

2829
(new Extend\Frontend('admin'))

js/src/forum/addFollowingUsers.tsx

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
import app from 'flarum/forum/app';
22
import { extend } from 'flarum/common/extend';
33
import DiscussionListState from 'flarum/forum/states/DiscussionListState';
4-
import Separator from 'flarum/common/components/Separator';
5-
import ItemList from 'flarum/common/utils/ItemList';
6-
import type Mithril from 'mithril';
7-
import UserDirectoryPage from 'ext:fof/user-directory/forum/components/UserDirectoryPage';
8-
import CheckableButton from 'ext:fof/user-directory/forum/components/CheckableButton';
94
import addFollowingPageOption from 'ext:fof/follow-tags/common/utils/addFollowingPageOption';
105
import { getDefaultFollowingFiltering } from 'ext:fof/follow-tags/forum/utils/getDefaultFollowingFiltering';
116

@@ -37,49 +32,4 @@ export default function () {
3732
}
3833
}
3934
);
40-
41-
if ('fof-user-directory' in flarum.extensions) {
42-
// Initialize the filter state from URL parameters
43-
extend(UserDirectoryPage.prototype, 'oninit', function (this: any) {
44-
const q = m.route.param('q') || '';
45-
if (q.includes('is:followeduser')) {
46-
if (!this.enabledSpecialGroupFilters) this.enabledSpecialGroupFilters = {};
47-
this.enabledSpecialGroupFilters['ianm-follow-users'] = 'is:followeduser';
48-
}
49-
});
50-
51-
extend(
52-
UserDirectoryPage.prototype,
53-
'groupItems',
54-
function (
55-
this: typeof UserDirectoryPage.prototype & { enabledSpecialGroupFilters?: Record<string, string> },
56-
items: ItemList<Mithril.Children>
57-
) {
58-
items.add(
59-
'follow-users',
60-
<CheckableButton
61-
className="GroupFilterButton"
62-
icon="fas fa-user-friends"
63-
checked={this.enabledSpecialGroupFilters?.['ianm-follow-users'] === 'is:followeduser'}
64-
onclick={() => {
65-
const id = 'ianm-follow-users';
66-
if (!this.enabledSpecialGroupFilters) this.enabledSpecialGroupFilters = {};
67-
if (this.enabledSpecialGroupFilters[id] === 'is:followeduser') {
68-
this.enabledSpecialGroupFilters[id] = '';
69-
} else {
70-
this.enabledSpecialGroupFilters[id] = 'is:followeduser';
71-
}
72-
73-
this.changeParams(this.params().sort);
74-
}}
75-
>
76-
{app.translator.trans('ianm-follow-users.forum.filter.following')}
77-
</CheckableButton>,
78-
65
79-
);
80-
81-
items.add('separator', <Separator />, 50);
82-
}
83-
);
84-
}
8535
}

js/src/forum/extend.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import commonExtend from '../common/extend';
22
import Extend from 'flarum/common/extenders';
3-
import ProfilePage from './components/ProfilePage';
43
import User from 'flarum/common/models/User';
54
import NewFollowerNotification from './components/NewFollowerNotification';
65
import NewUnfollowerNotification from './components/NewUnfollowerNotification';
@@ -20,7 +19,7 @@ export default [
2019
.attribute<number>('followerCount'),
2120

2221
new Extend.Routes() //
23-
.add('user.followedUsers', '/u/:username/followedUsers', ProfilePage),
22+
.add('user.followedUsers', '/u/:username/followedUsers', () => import('./components/ProfilePage')),
2423

2524
new Extend.Notification() //
2625
.add('newFollower', NewFollowerNotification)
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import app from 'flarum/forum/app';
2+
import { extend } from 'flarum/common/extend';
3+
import Separator from 'flarum/common/components/Separator';
4+
import ItemList from 'flarum/common/utils/ItemList';
5+
import type Mithril from 'mithril';
6+
7+
export default function () {
8+
extend('ext:fof/user-directory/forum/components/UserDirectoryPage', 'oninit', function (this: any) {
9+
const q = m.route.param('q') || '';
10+
if (q.includes('is:followeduser')) {
11+
if (!this.enabledSpecialGroupFilters) this.enabledSpecialGroupFilters = {};
12+
this.enabledSpecialGroupFilters['ianm-follow-users'] = 'is:followeduser';
13+
}
14+
});
15+
16+
extend('ext:fof/user-directory/forum/components/UserDirectoryPage', 'groupItems', function (this: any, items: ItemList<Mithril.Children>) {
17+
// Get CheckableButton from Flarum's registry (it's in the same lazy-loaded chunk)
18+
const CheckableButton = flarum.reg.get('fof-user-directory', 'forum/components/CheckableButton');
19+
20+
items.add(
21+
'follow-users',
22+
<CheckableButton
23+
className="GroupFilterButton"
24+
icon="fas fa-user-friends"
25+
checked={this.enabledSpecialGroupFilters?.['ianm-follow-users'] === 'is:followeduser'}
26+
onclick={() => {
27+
const id = 'ianm-follow-users';
28+
if (!this.enabledSpecialGroupFilters) this.enabledSpecialGroupFilters = {};
29+
if (this.enabledSpecialGroupFilters[id] === 'is:followeduser') {
30+
this.enabledSpecialGroupFilters[id] = '';
31+
} else {
32+
this.enabledSpecialGroupFilters[id] = 'is:followeduser';
33+
}
34+
35+
this.changeParams(this.params().sort);
36+
}}
37+
>
38+
{app.translator.trans('ianm-follow-users.forum.filter.following')}
39+
</CheckableButton>,
40+
65
41+
);
42+
43+
items.add('separator', <Separator />, 50);
44+
});
45+
}

js/src/forum/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import addPrivacySetting from './addPrivacySetting';
66
import addFollowingUsers from './addFollowingUsers';
77
import addUserCardStats from './addUserCardStats';
88
import addNotificationSettings from './addNotifictionSettings';
9+
import extendUserDirectoryPage from './extendUserDirectoryPage';
910

1011
export { default as extend } from './extend';
1112

@@ -19,6 +20,10 @@ app.initializers.add(
1920
addFollowingUsers();
2021
addUserCardStats();
2122
addNotificationSettings();
23+
24+
if ('fof-user-directory' in flarum.extensions) {
25+
extendUserDirectoryPage();
26+
}
2227
},
2328
-10 // Run before fof-follow-tags (which runs at -1)
2429
);

0 commit comments

Comments
 (0)