diff --git a/packages/text-editor/src/components/CollaborativeTextEditor.svelte b/packages/text-editor/src/components/CollaborativeTextEditor.svelte index 00997f9fa38..5afc7794012 100644 --- a/packages/text-editor/src/components/CollaborativeTextEditor.svelte +++ b/packages/text-editor/src/components/CollaborativeTextEditor.svelte @@ -32,6 +32,7 @@ themeStore } from '@hcengineering/ui' import view from '@hcengineering/view' + import activity from '../../../../plugins/activity' import { AnyExtension, Editor, FocusPosition, mergeAttributes } from '@tiptap/core' import Collaboration, { isChangeOrigin } from '@tiptap/extension-collaboration' import CollaborationCursor from '@tiptap/extension-collaboration-cursor' @@ -202,6 +203,9 @@ insertSeparatorLine: () => { editor?.commands.setHorizontalRule() }, + insertEmoji: () => { + editor?.commands.setHorizontalRule() + }, focus: () => { focus() } @@ -308,7 +312,8 @@ ...(canEmbedImages ? [{ id: 'image', label: textEditorPlugin.string.Image, icon: view.icon.Image }] : []), { id: 'table', label: textEditorPlugin.string.Table, icon: view.icon.Table2 }, { id: 'code-block', label: textEditorPlugin.string.CodeBlock, icon: view.icon.CodeBlock }, - { id: 'separator-line', label: textEditorPlugin.string.SeparatorLine, icon: view.icon.SeparatorLine } + { id: 'separator-line', label: textEditorPlugin.string.SeparatorLine, icon: view.icon.SeparatorLine }, + { id: 'emoji', label: textEditorPlugin.string.Emoji, icon: activity.icon.Emoji } ], handleSelect: handleLeftMenuClick }) @@ -405,6 +410,9 @@ case 'separator-line': editor.commands.setHorizontalRule() break + case 'emoji': + editor.commands.setHorizontalRule() + break } } diff --git a/packages/text-editor/src/components/ReferenceInput.svelte b/packages/text-editor/src/components/ReferenceInput.svelte index 8f8bee4711b..d7a2ffd19d8 100644 --- a/packages/text-editor/src/components/ReferenceInput.svelte +++ b/packages/text-editor/src/components/ReferenceInput.svelte @@ -94,6 +94,9 @@ insertSeparatorLine: () => { textEditor?.insertSeparatorLine() }, + insertEmoji: () => { + textEditor?.insertSeparatorLine() + }, insertContent: (content) => { textEditor?.insertContent(content) }, diff --git a/packages/text-editor/src/components/StyledTextBox.svelte b/packages/text-editor/src/components/StyledTextBox.svelte index fdc8febd368..9235a1980db 100644 --- a/packages/text-editor/src/components/StyledTextBox.svelte +++ b/packages/text-editor/src/components/StyledTextBox.svelte @@ -232,6 +232,9 @@ case 'separator-line': textEditor.editorHandler.insertSeparatorLine() break + case 'emoji': + textEditor.editorHandler.insertSeparatorLine() + break } } diff --git a/packages/text-editor/src/components/StyledTextEditor.svelte b/packages/text-editor/src/components/StyledTextEditor.svelte index 042712d9115..5865b70c30d 100644 --- a/packages/text-editor/src/components/StyledTextEditor.svelte +++ b/packages/text-editor/src/components/StyledTextEditor.svelte @@ -102,6 +102,9 @@ insertSeparatorLine: () => { textEditor?.insertSeparatorLine() }, + insertEmoji() { + textEditor?.insertSeparatorLine() + }, insertContent: (value, options) => { textEditor?.insertContent(value, options) }, diff --git a/packages/text-editor/src/components/TextEditor.svelte b/packages/text-editor/src/components/TextEditor.svelte index 8be0d12641f..5d7a6ed473a 100644 --- a/packages/text-editor/src/components/TextEditor.svelte +++ b/packages/text-editor/src/components/TextEditor.svelte @@ -111,6 +111,11 @@ export function insertSeparatorLine (): void { editor.commands.setHorizontalRule() } + + export function insertEmoji (): void { + editor.commands.setHorizontalRule() + } + export function insertContent ( value: Content, options?: { diff --git a/packages/text-editor/src/components/extensions.ts b/packages/text-editor/src/components/extensions.ts index de25fac748f..2222b018cd7 100644 --- a/packages/text-editor/src/components/extensions.ts +++ b/packages/text-editor/src/components/extensions.ts @@ -14,6 +14,7 @@ // import view from '@hcengineering/view' +import activity from '../../../../plugins/activity' import { type Editor, type Range } from '@tiptap/core' import { type CompletionOptions } from '../Completion' @@ -129,7 +130,7 @@ export const completionConfig: Partial = { } } -const inlineCommandsIds = ['image', 'table', 'code-block', 'separator-line'] as const +const inlineCommandsIds = ['image', 'table', 'code-block', 'separator-line', 'emoji'] as const export type InlineCommandId = (typeof inlineCommandsIds)[number] /** @@ -146,7 +147,8 @@ export function inlineCommandsConfig ( { id: 'image', label: plugin.string.Image, icon: view.icon.Image }, { id: 'table', label: plugin.string.Table, icon: view.icon.Table2 }, { id: 'code-block', label: plugin.string.CodeBlock, icon: view.icon.CodeBlock }, - { id: 'separator-line', label: plugin.string.SeparatorLine, icon: view.icon.SeparatorLine } + { id: 'separator-line', label: plugin.string.SeparatorLine, icon: view.icon.SeparatorLine }, + { id: 'emoji', label: plugin.string.Emoji, icon: activity.icon.Emoji} ].filter(({ id }) => !excludedCommands.includes(id as InlineCommandId)) }, command: ({ editor, range, props }: { editor: Editor, range: Range, props: any }) => { diff --git a/packages/text-editor/src/types.ts b/packages/text-editor/src/types.ts index 84f6a6d33f3..a5c54928c97 100644 --- a/packages/text-editor/src/types.ts +++ b/packages/text-editor/src/types.ts @@ -15,6 +15,7 @@ export interface TextEditorHandler { insertTable: (options: { rows?: number, cols?: number, withHeaderRow?: boolean }) => void insertCodeBlock: (pos?: number) => void insertSeparatorLine: () => void + insertEmoji: () => void insertContent: ( value: Content, options?: {