From 3988bb532179915855b207d3d465b757487d9f1a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 23 Jun 2025 22:38:40 +0300 Subject: [PATCH] feat(emoji): disable auto-completion only --- .../src/widgets/type_widgets/ckeditor/config.ts | 4 ++-- .../type_widgets/options/text_notes/features.ts | 12 ++++++------ apps/server/src/routes/api/options.ts | 2 +- apps/server/src/services/options_init.ts | 2 +- packages/ckeditor5/src/plugins.ts | 5 +++-- packages/commons/src/lib/options_interface.ts | 2 +- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/apps/client/src/widgets/type_widgets/ckeditor/config.ts b/apps/client/src/widgets/type_widgets/ckeditor/config.ts index 3be584ee8..c2419b077 100644 --- a/apps/client/src/widgets/type_widgets/ckeditor/config.ts +++ b/apps/client/src/widgets/type_widgets/ckeditor/config.ts @@ -236,8 +236,8 @@ function getLicenseKey() { function getDisabledPlugins() { let disabledPlugins: string[] = []; - if (options.get("textNoteEmojiEnabled") !== "true") { - disabledPlugins.push("Emoji"); + if (options.get("textNoteEmojiCompletionEnabled") !== "true") { + disabledPlugins.push("EmojiMention"); } return disabledPlugins; diff --git a/apps/client/src/widgets/type_widgets/options/text_notes/features.ts b/apps/client/src/widgets/type_widgets/options/text_notes/features.ts index d5ee87930..16e9d33ab 100644 --- a/apps/client/src/widgets/type_widgets/options/text_notes/features.ts +++ b/apps/client/src/widgets/type_widgets/options/text_notes/features.ts @@ -6,25 +6,25 @@ const TPL = /*html*/`

Features

`; export default class EditorFeaturesOptions extends OptionsWidget { - private $emojiEnabledCheckbox!: JQuery; + private $emojiCompletionEnabledCheckbox!: JQuery; doRender() { this.$widget = $(TPL); - this.$emojiEnabledCheckbox = this.$widget.find(`input[name="emoji-enabled"]`); - this.$emojiEnabledCheckbox.on("change", () => this.updateCheckboxOption("textNoteEmojiEnabled", this.$emojiEnabledCheckbox)) + this.$emojiCompletionEnabledCheckbox = this.$widget.find(`input[name="emoji-completion-enabled"]`); + this.$emojiCompletionEnabledCheckbox.on("change", () => this.updateCheckboxOption("textNoteEmojiCompletionEnabled", this.$emojiCompletionEnabledCheckbox)) } optionsLoaded(options: OptionMap) { - this.setCheckboxState(this.$emojiEnabledCheckbox, options.textNoteEmojiEnabled); + this.setCheckboxState(this.$emojiCompletionEnabledCheckbox, options.textNoteEmojiCompletionEnabled); } } diff --git a/apps/server/src/routes/api/options.ts b/apps/server/src/routes/api/options.ts index 0b496d7d9..d7d8520d0 100644 --- a/apps/server/src/routes/api/options.ts +++ b/apps/server/src/routes/api/options.ts @@ -85,7 +85,7 @@ const ALLOWED_OPTIONS = new Set([ "languages", "textNoteEditorType", "textNoteEditorMultilineToolbar", - "textNoteEmojiEnabled", + "textNoteEmojiCompletionEnabled", "layoutOrientation", "backgroundEffects", "allowedHtmlTags", diff --git a/apps/server/src/services/options_init.ts b/apps/server/src/services/options_init.ts index a109f31d0..64e31fc0d 100644 --- a/apps/server/src/services/options_init.ts +++ b/apps/server/src/services/options_init.ts @@ -178,7 +178,7 @@ const defaultOptions: DefaultOption[] = [ // Text note configuration { name: "textNoteEditorType", value: "ckeditor-balloon", isSynced: true }, { name: "textNoteEditorMultilineToolbar", value: "false", isSynced: true }, - { name: "textNoteEmojiEnabled", value: "true", isSynced: true }, + { name: "textNoteEmojiCompletionEnabled", value: "true", isSynced: true }, // HTML import configuration { name: "layoutOrientation", value: "vertical", isSynced: false }, diff --git a/packages/ckeditor5/src/plugins.ts b/packages/ckeditor5/src/plugins.ts index fae78f40b..a16ad1bbb 100644 --- a/packages/ckeditor5/src/plugins.ts +++ b/packages/ckeditor5/src/plugins.ts @@ -1,4 +1,4 @@ -import { Autoformat, AutoLink, BlockQuote, BlockToolbar, Bold, CKFinderUploadAdapter, Clipboard, Code, CodeBlock, Enter, FindAndReplace, Font, FontBackgroundColor, FontColor, GeneralHtmlSupport, Heading, HeadingButtonsUI, HorizontalLine, Image, ImageCaption, ImageInline, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Alignment, Indent, IndentBlock, Italic, Link, List, ListProperties, Mention, PageBreak, Paragraph, ParagraphButtonUI, PasteFromOffice, PictureEditing, RemoveFormat, SelectAll, ShiftEnter, SpecialCharacters, SpecialCharactersEssentials, Strikethrough, Style, Subscript, Superscript, Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableSelection, TableToolbar, TextPartLanguage, TextTransformation, TodoList, Typing, Underline, Undo, Bookmark, Emoji, Notification } from "ckeditor5"; +import { Autoformat, AutoLink, BlockQuote, BlockToolbar, Bold, CKFinderUploadAdapter, Clipboard, Code, CodeBlock, Enter, FindAndReplace, Font, FontBackgroundColor, FontColor, GeneralHtmlSupport, Heading, HeadingButtonsUI, HorizontalLine, Image, ImageCaption, ImageInline, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Alignment, Indent, IndentBlock, Italic, Link, List, ListProperties, Mention, PageBreak, Paragraph, ParagraphButtonUI, PasteFromOffice, PictureEditing, RemoveFormat, SelectAll, ShiftEnter, SpecialCharacters, SpecialCharactersEssentials, Strikethrough, Style, Subscript, Superscript, Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableSelection, TableToolbar, TextPartLanguage, TextTransformation, TodoList, Typing, Underline, Undo, Bookmark, Emoji, Notification, EmojiMention, EmojiPicker } from "ckeditor5"; import { SlashCommand, Template } from "ckeditor5-premium-features"; import type { Plugin } from "ckeditor5"; import CutToNotePlugin from "./plugins/cuttonote.js"; @@ -145,7 +145,8 @@ export const COMMON_PLUGINS: typeof Plugin[] = [ TextPartLanguage, Style, Bookmark, - Emoji, + EmojiMention, + EmojiPicker, ...TRILIUM_PLUGINS, ...EXTERNAL_PLUGINS diff --git a/packages/commons/src/lib/options_interface.ts b/packages/commons/src/lib/options_interface.ts index bd9cfee33..20882709a 100644 --- a/packages/commons/src/lib/options_interface.ts +++ b/packages/commons/src/lib/options_interface.ts @@ -118,7 +118,7 @@ export interface OptionDefinitions extends KeyboardShortcutsOptions