From e63e161be6d62d7a29998bf0cacbf5641e7a8a4f Mon Sep 17 00:00:00 2001 From: David Wheatley Date: Sun, 7 May 2023 17:40:18 +0100 Subject: [PATCH] chore: major frontend JS cleanup (#3609) --- .../js/src/forum/addComposerAutocomplete.js | 2 +- .../flags/js/src/forum/addFlagsToPosts.js | 2 +- .../flags/js/src/forum/components/FlagList.js | 2 +- .../js/src/forum/components/FlagPostModal.js | 16 +-- .../js/src/forum/components/FlagsDropdown.js | 4 +- .../likes/js/src/forum/addLikeAction.js | 45 ++++---- extensions/likes/js/src/forum/addLikesList.js | 2 +- extensions/lock/js/src/forum/addLockBadge.js | 9 +- .../lock/js/src/forum/addLockControl.js | 12 +- .../src/common/components/MarkdownToolbar.js | 2 +- .../js/src/forum/addMentionedByList.js | 11 +- .../js/src/forum/addPostMentionPreviews.js | 10 +- .../js/src/forum/fragments/PostQuoteButton.js | 2 +- extensions/mentions/js/src/forum/index.js | 11 +- .../js/src/forum/components/NicknameModal.js | 11 +- .../js/src/admin/components/Pagination.tsx | 4 +- .../js/src/admin/components/QueueSection.tsx | 2 +- .../js/src/forum/{index.ts => index.tsx} | 31 +++-- .../src/admin/components/StatisticsWidget.tsx | 3 +- .../StatisticsWidgetDateSelectionModal.tsx | 8 +- .../sticky/js/src/forum/addStickyBadge.js | 6 +- .../sticky/js/src/forum/addStickyControl.js | 14 +-- .../js/src/forum/addSubscriptionBadge.js | 15 +-- .../js/src/forum/addSubscriptionControls.js | 12 +- .../js/src/forum/addSubscriptionFilter.js | 10 +- .../js/src/forum/addSubscriptionSettings.tsx | 27 +++-- .../src/forum/components/SubscriptionMenu.js | 10 +- .../forum/components/SubscriptionMenuItem.js | 2 +- extensions/suspend/js/src/forum/index.js | 17 +-- .../js/src/admin/addTagChangePermission.js | 27 +++-- .../js/src/admin/addTagsPermissionScope.tsx | 11 +- .../js/src/admin/components/EditTagModal.tsx | 16 +-- .../tags/js/src/admin/components/TagsPage.js | 32 ++---- .../tags/js/src/common/helpers/tagsLabel.js | 7 +- extensions/tags/js/src/forum/addTagList.js | 11 +- .../tags/js/src/forum/components/TagHero.js | 2 +- .../js/src/forum/components/TagLinkButton.js | 5 +- .../tags/js/src/forum/components/TagsPage.js | 4 +- ...minApplication.ts => AdminApplication.tsx} | 6 +- .../js/src/admin/components/AdminPage.tsx | 2 +- .../src/admin/components/AppearancePage.tsx | 92 +++++++-------- .../js/src/admin/components/BasicsPage.tsx | 47 ++++---- .../src/admin/components/EditGroupModal.tsx | 46 +++----- .../admin/components/ExtensionLinkButton.js | 4 +- .../js/src/admin/components/ExtensionPage.tsx | 24 ++-- .../src/admin/components/ExtensionsWidget.js | 7 +- .../js/src/admin/components/LoadingModal.tsx | 2 +- .../core/js/src/admin/components/MailPage.tsx | 41 +++---- .../admin/components/PermissionDropdown.tsx | 76 ++++++------ .../src/admin/components/PermissionGrid.tsx | 80 +++++++------ .../src/admin/components/PermissionsPage.tsx | 44 +++---- .../js/src/admin/components/ReadmeModal.tsx | 14 ++- .../src/admin/components/SessionDropdown.tsx | 10 +- .../src/admin/components/SettingDropdown.tsx | 11 +- .../js/src/admin/components/SettingsModal.tsx | 2 +- .../src/admin/components/UploadImageButton.js | 5 +- .../js/src/admin/components/UserListPage.tsx | 24 ++-- .../core/js/src/common/components/Alert.tsx | 12 +- .../js/src/common/components/AlertManager.tsx | 4 +- .../src/common/components/EditUserModal.tsx | 38 ++---- .../core/js/src/common/components/Link.js | 2 +- .../core/js/src/common/components/Modal.tsx | 6 +- .../js/src/common/components/ModalManager.tsx | 4 +- .../js/src/common/components/Navigation.tsx | 63 +++++----- .../common/components/RequestErrorModal.tsx | 2 +- .../src/common/components/SplitDropdown.tsx | 2 +- .../core/js/src/common/components/Switch.tsx | 5 +- .../js/src/common/components/TextEditor.js | 12 +- .../core/js/src/common/helpers/avatar.tsx | 3 +- framework/core/js/src/common/helpers/icon.tsx | 3 +- .../core/js/src/common/helpers/username.tsx | 2 +- framework/core/js/src/common/models/User.tsx | 2 +- ...rumApplication.ts => ForumApplication.tsx} | 6 +- .../js/src/forum/components/CommentPost.js | 44 +++---- .../core/js/src/forum/components/Composer.js | 46 ++++---- .../js/src/forum/components/ComposerBody.js | 22 ++-- .../js/src/forum/components/DiscussionList.js | 18 +-- .../forum/components/DiscussionListItem.tsx | 35 +++--- .../src/forum/components/DiscussionPage.tsx | 32 ++---- .../components/DiscussionsSearchSource.tsx | 4 +- .../forum/components/DiscussionsUserPage.tsx | 6 +- .../src/forum/components/EditPostComposer.js | 25 ++-- .../core/js/src/forum/components/EventPost.js | 7 +- .../forum/components/ForgotPasswordModal.tsx | 11 +- .../src/forum/components/HeaderSecondary.js | 68 +++++------ .../js/src/forum/components/IndexPage.tsx | 108 ++++++++---------- .../js/src/forum/components/LogInButton.js | 3 +- .../js/src/forum/components/LogInModal.tsx | 34 +++--- .../src/forum/components/NotificationGrid.js | 2 +- .../src/forum/components/NotificationList.js | 8 +- .../components/NotificationsDropdown.tsx | 2 +- .../core/js/src/forum/components/Post.tsx | 4 +- .../js/src/forum/components/PostEdited.js | 2 +- .../js/src/forum/components/PostStream.js | 6 +- .../core/js/src/forum/components/PostUser.js | 19 +-- .../components/RenameDiscussionModal.tsx | 11 +- .../js/src/forum/components/ReplyComposer.js | 15 +-- .../src/forum/components/ReplyPlaceholder.js | 2 +- .../src/forum/components/SessionDropdown.tsx | 43 +++---- .../js/src/forum/components/TerminalPost.js | 2 +- .../core/js/src/forum/components/UserCard.js | 36 +++--- .../js/src/forum/components/WelcomeHero.tsx | 10 +- .../js/src/forum/utils/DiscussionControls.js | 90 ++++++--------- .../core/js/src/forum/utils/PostControls.js | 42 +++---- .../src/forum/utils/alertEmailConfirmation.js | 4 +- 105 files changed, 817 insertions(+), 1064 deletions(-) rename extensions/pusher/js/src/forum/{index.ts => index.tsx} (88%) rename framework/core/js/src/admin/{AdminApplication.ts => AdminApplication.tsx} (96%) rename framework/core/js/src/forum/{ForumApplication.ts => ForumApplication.tsx} (97%) diff --git a/extensions/emoji/js/src/forum/addComposerAutocomplete.js b/extensions/emoji/js/src/forum/addComposerAutocomplete.js index e11235a96..195dc605d 100644 --- a/extensions/emoji/js/src/forum/addComposerAutocomplete.js +++ b/extensions/emoji/js/src/forum/addComposerAutocomplete.js @@ -80,7 +80,7 @@ export default function addComposerAutocomplete() { dropdown.setIndex($(this).parent().index() - 1); }} > - {emoji} + {emoji} {name} ); diff --git a/extensions/flags/js/src/forum/addFlagsToPosts.js b/extensions/flags/js/src/forum/addFlagsToPosts.js index f053a21f5..67f785f2c 100644 --- a/extensions/flags/js/src/forum/addFlagsToPosts.js +++ b/extensions/flags/js/src/forum/addFlagsToPosts.js @@ -108,7 +108,7 @@ export default function () { user, reason, }), - detail ? {detail} : '', + !!detail && {detail}, ]; } }; diff --git a/extensions/flags/js/src/forum/components/FlagList.js b/extensions/flags/js/src/forum/components/FlagList.js index 115df12ad..dd876c8d7 100644 --- a/extensions/flags/js/src/forum/components/FlagList.js +++ b/extensions/flags/js/src/forum/components/FlagList.js @@ -55,7 +55,7 @@ export default class FlagList extends Component { ) : !this.state.loading ? (
{app.translator.trans('flarum-flags.forum.flagged_posts.empty_text')}
) : ( - LoadingIndicator.component({ className: 'LoadingIndicator--block' }) + )} diff --git a/extensions/flags/js/src/forum/components/FlagPostModal.js b/extensions/flags/js/src/forum/components/FlagPostModal.js index 49e438cd1..de68a3166 100644 --- a/extensions/flags/js/src/forum/components/FlagPostModal.js +++ b/extensions/flags/js/src/forum/components/FlagPostModal.js @@ -67,15 +67,13 @@ export default class FlagPostModal extends Modal { {app.translator.trans('flarum-flags.forum.flag_post.reason_off_topic_label')} {app.translator.trans('flarum-flags.forum.flag_post.reason_off_topic_text')} - {this.reason() === 'off_topic' ? ( + {this.reason() === 'off_topic' && ( - ) : ( - '' )} , 70 @@ -95,15 +93,13 @@ export default class FlagPostModal extends Modal { {app.translator.trans('flarum-flags.forum.flag_post.reason_inappropriate_text', { a: guidelinesUrl ? : undefined, })} - {this.reason() === 'inappropriate' ? ( + {this.reason() === 'inappropriate' && ( - ) : ( - '' )} , 60 @@ -115,15 +111,13 @@ export default class FlagPostModal extends Modal { {app.translator.trans('flarum-flags.forum.flag_post.reason_spam_label')} {app.translator.trans('flarum-flags.forum.flag_post.reason_spam_text')} - {this.reason() === 'spam' ? ( + {this.reason() === 'spam' && ( - ) : ( - '' )} , 50 @@ -134,10 +128,8 @@ export default class FlagPostModal extends Modal { , 10 diff --git a/extensions/flags/js/src/forum/components/FlagsDropdown.js b/extensions/flags/js/src/forum/components/FlagsDropdown.js index 72b249a59..751d1ce83 100644 --- a/extensions/flags/js/src/forum/components/FlagsDropdown.js +++ b/extensions/flags/js/src/forum/components/FlagsDropdown.js @@ -1,5 +1,5 @@ import app from 'flarum/forum/app'; -import NotificationsDropdown from 'flarum/components/NotificationsDropdown'; +import NotificationsDropdown from 'flarum/forum/components/NotificationsDropdown'; import FlagList from './FlagList'; @@ -14,7 +14,7 @@ export default class FlagsDropdown extends NotificationsDropdown { getMenu() { return (
- {this.showing ? FlagList.component({ state: this.attrs.state }) : ''} + {this.showing && }
); } diff --git a/extensions/likes/js/src/forum/addLikeAction.js b/extensions/likes/js/src/forum/addLikeAction.js index 75a257630..8223980f1 100644 --- a/extensions/likes/js/src/forum/addLikeAction.js +++ b/extensions/likes/js/src/forum/addLikeAction.js @@ -15,32 +15,31 @@ export default function () { items.add( 'like', - Button.component( - { - className: 'Button Button--link', - onclick: () => { - isLiked = !isLiked; + ); }); } diff --git a/extensions/likes/js/src/forum/addLikesList.js b/extensions/likes/js/src/forum/addLikesList.js index 322436809..b3160ce42 100644 --- a/extensions/likes/js/src/forum/addLikesList.js +++ b/extensions/likes/js/src/forum/addLikesList.js @@ -59,7 +59,7 @@ export default function () { 'liked',
{icon('far fa-thumbs-up')} - {app.translator.trans('flarum-likes.forum.post.liked_by' + (likes[0] === app.session.user ? '_self' : '') + '_text', { + {app.translator.trans(`flarum-likes.forum.post.liked_by${likes[0] === app.session.user ? '_self' : ''}_text`, { count: names.length, users: punctuateSeries(names), })} diff --git a/extensions/lock/js/src/forum/addLockBadge.js b/extensions/lock/js/src/forum/addLockBadge.js index 0d150b9f6..6437caa52 100644 --- a/extensions/lock/js/src/forum/addLockBadge.js +++ b/extensions/lock/js/src/forum/addLockBadge.js @@ -6,14 +6,7 @@ import Badge from 'flarum/common/components/Badge'; export default function addLockBadge() { extend(Discussion.prototype, 'badges', function (badges) { if (this.isLocked()) { - badges.add( - 'locked', - Badge.component({ - type: 'locked', - label: app.translator.trans('flarum-lock.forum.badge.locked_tooltip'), - icon: 'fas fa-lock', - }) - ); + badges.add('locked', ); } }); } diff --git a/extensions/lock/js/src/forum/addLockControl.js b/extensions/lock/js/src/forum/addLockControl.js index 975eb976e..ae438e884 100644 --- a/extensions/lock/js/src/forum/addLockControl.js +++ b/extensions/lock/js/src/forum/addLockControl.js @@ -9,15 +9,9 @@ export default function addLockControl() { if (discussion.canLock()) { items.add( 'lock', - Button.component( - { - icon: 'fas fa-lock', - onclick: this.lockAction.bind(discussion), - }, - app.translator.trans( - discussion.isLocked() ? 'flarum-lock.forum.discussion_controls.unlock_button' : 'flarum-lock.forum.discussion_controls.lock_button' - ) - ) + ); } }); diff --git a/extensions/markdown/js/src/common/components/MarkdownToolbar.js b/extensions/markdown/js/src/common/components/MarkdownToolbar.js index 59c073265..7738ee6e6 100644 --- a/extensions/markdown/js/src/common/components/MarkdownToolbar.js +++ b/extensions/markdown/js/src/common/components/MarkdownToolbar.js @@ -2,6 +2,6 @@ import Component from 'flarum/common/Component'; export default class MarkdownToolbar extends Component { view(vnode) { - return
{vnode.children}
; + return
{vnode.children}
; } } diff --git a/extensions/mentions/js/src/forum/addMentionedByList.js b/extensions/mentions/js/src/forum/addMentionedByList.js index a86fe569a..45b54023d 100644 --- a/extensions/mentions/js/src/forum/addMentionedByList.js +++ b/extensions/mentions/js/src/forum/addMentionedByList.js @@ -41,13 +41,10 @@ export default function addMentionedByList() { <> {replies.map((reply) => (
  • - {PostPreview.component({ - post: reply, - onclick: hidePreview.bind(this), - })} +
  • ))} - {replies.length < post.mentionedByCount() ? ( + {replies.length < post.mentionedByCount() && (
  • - ) : null} + )} ); @@ -149,7 +146,7 @@ export default function addMentionedByList() {
    {icon('fas fa-reply')} - {app.translator.trans('flarum-mentions.forum.post.mentioned_by' + (repliers[0].user() === app.session.user ? '_self' : '') + '_text', { + {app.translator.trans(`flarum-mentions.forum.post.mentioned_by${repliers[0].user() === app.session.user ? '_self' : ''}_text`, { count: names.length, users: punctuateSeries(names), })} diff --git a/extensions/mentions/js/src/forum/addPostMentionPreviews.js b/extensions/mentions/js/src/forum/addPostMentionPreviews.js index 57b1b7c59..63e346e1a 100644 --- a/extensions/mentions/js/src/forum/addPostMentionPreviews.js +++ b/extensions/mentions/js/src/forum/addPostMentionPreviews.js @@ -80,14 +80,14 @@ export default function addPostMentionPreviews() { const discussion = post.discussion(); m.render($preview[0], [ - discussion !== parentPost.discussion() ? ( + discussion !== parentPost.discussion() && (
  • {discussion.title()}
  • - ) : ( - '' ), -
  • {PostPreview.component({ post })}
  • , +
  • + +
  • , ]); positionPreview(); }; @@ -96,7 +96,7 @@ export default function addPostMentionPreviews() { if (post && post.discussion()) { showPost(post); } else { - m.render($preview[0], LoadingIndicator.component()); + m.render($preview[0], ); app.store.find('posts', id).then(showPost); positionPreview(); } diff --git a/extensions/mentions/js/src/forum/fragments/PostQuoteButton.js b/extensions/mentions/js/src/forum/fragments/PostQuoteButton.js index d8db0517c..79aca7f9f 100644 --- a/extensions/mentions/js/src/forum/fragments/PostQuoteButton.js +++ b/extensions/mentions/js/src/forum/fragments/PostQuoteButton.js @@ -14,7 +14,7 @@ export default class PostQuoteButton extends Fragment { view() { return (
    - {Button.component( - { - className: 'Button Button--primary Button--block', - type: 'submit', - loading: this.loading, - }, - app.translator.trans('flarum-nicknames.forum.change_nickname.submit_button') - )} +
    diff --git a/extensions/package-manager/js/src/admin/components/Pagination.tsx b/extensions/package-manager/js/src/admin/components/Pagination.tsx index c640ccdcd..8d87d0841 100644 --- a/extensions/package-manager/js/src/admin/components/Pagination.tsx +++ b/extensions/package-manager/js/src/admin/components/Pagination.tsx @@ -13,7 +13,7 @@ interface PaginationAttrs extends ComponentAttrs { export default class Pagination extends Component { view() { return ( -