From d2a63296890759e0684caceaeba67e943e4092c2 Mon Sep 17 00:00:00 2001 From: Sami Mazouz Date: Sat, 1 Jul 2023 17:47:33 +0100 Subject: [PATCH] fix(mentions): cannot use mentionables extender (#3849) --- extensions/mentions/js/src/forum/addComposerAutocomplete.js | 3 --- extensions/mentions/js/src/forum/extenders/Mentionables.ts | 4 ++-- extensions/mentions/js/src/forum/index.js | 3 +++ .../js/src/forum/mentionables/formats/HashMentionFormat.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/extensions/mentions/js/src/forum/addComposerAutocomplete.js b/extensions/mentions/js/src/forum/addComposerAutocomplete.js index 09808a56a..a4f02e20e 100644 --- a/extensions/mentions/js/src/forum/addComposerAutocomplete.js +++ b/extensions/mentions/js/src/forum/addComposerAutocomplete.js @@ -5,12 +5,9 @@ import TextEditorButton from 'flarum/common/components/TextEditorButton'; import KeyboardNavigatable from 'flarum/common/utils/KeyboardNavigatable'; import AutocompleteDropdown from './fragments/AutocompleteDropdown'; -import MentionFormats from './mentionables/formats/MentionFormats'; import MentionableModels from './mentionables/MentionableModels'; export default function addComposerAutocomplete() { - app.mentionFormats = new MentionFormats(); - const $container = $('
'); const dropdown = new AutocompleteDropdown(); diff --git a/extensions/mentions/js/src/forum/extenders/Mentionables.ts b/extensions/mentions/js/src/forum/extenders/Mentionables.ts index cf2db51f7..46423ae54 100644 --- a/extensions/mentions/js/src/forum/extenders/Mentionables.ts +++ b/extensions/mentions/js/src/forum/extenders/Mentionables.ts @@ -5,7 +5,7 @@ import type MentionFormat from '../mentionables/formats/MentionFormat'; export default class Mentionables implements IExtender { protected formats: (new () => MentionFormat)[] = []; - protected mentionables: Record MentionableModel)[]> = {}; + protected mentionables: Record MentionableModel)[]> = {}; /** * Register a new mention format. @@ -26,7 +26,7 @@ export default class Mentionables implements IExtender { * @param mentionable The mentionable instance to register. * Must extend MentionableModel. */ - mentionable(symbol: string, mentionable: new () => MentionableModel): this { + mentionable(symbol: string, mentionable: new (...args: any[]) => MentionableModel): this { if (!this.mentionables[symbol]) { this.mentionables[symbol] = []; } diff --git a/extensions/mentions/js/src/forum/index.js b/extensions/mentions/js/src/forum/index.js index 7323a00d7..56424cedf 100644 --- a/extensions/mentions/js/src/forum/index.js +++ b/extensions/mentions/js/src/forum/index.js @@ -13,11 +13,14 @@ import addComposerAutocomplete from './addComposerAutocomplete'; import PostMentionedNotification from './components/PostMentionedNotification'; import UserMentionedNotification from './components/UserMentionedNotification'; import GroupMentionedNotification from './components/GroupMentionedNotification'; +import MentionFormats from './mentionables/formats/MentionFormats'; import UserPage from 'flarum/forum/components/UserPage'; import LinkButton from 'flarum/common/components/LinkButton'; import User from 'flarum/common/models/User'; import Model from 'flarum/common/Model'; +app.mentionFormats = new MentionFormats(); + export { default as extend } from './extend'; app.initializers.add('flarum-mentions', function () { diff --git a/extensions/mentions/js/src/forum/mentionables/formats/HashMentionFormat.ts b/extensions/mentions/js/src/forum/mentionables/formats/HashMentionFormat.ts index a01bf00e9..ef30d50c9 100644 --- a/extensions/mentions/js/src/forum/mentionables/formats/HashMentionFormat.ts +++ b/extensions/mentions/js/src/forum/mentionables/formats/HashMentionFormat.ts @@ -4,7 +4,7 @@ import TagMention from '../TagMention'; export default class HashMentionFormat extends MentionFormat { public mentionables: (new (...args: any[]) => MentionableModel)[] = [TagMention]; - protected extendable: boolean = false; + protected extendable: boolean = true; public trigger(): string { return '#';