From 6b9128d1ae5d629a4853db4aa7c8b4362b95b0d0 Mon Sep 17 00:00:00 2001 From: Etienne <45695613+etiennejouan@users.noreply.github.com> Date: Wed, 30 Apr 2025 17:28:12 +0200 Subject: [PATCH] fix rich text focus (#11821) Before https://github.com/user-attachments/assets/419227fb-fc0e-4d6e-b89a-932b4b76666f After https://github.com/user-attachments/assets/e4db323c-2f98-46f6-84e7-8b9bb452e900 Tested in command Menu + table cell edit mode + "plain text" command menu --- .../components/ActivityRichTextEditor.tsx | 34 +++---------------- 1 file changed, 4 insertions(+), 30 deletions(-) diff --git a/packages/twenty-front/src/modules/activities/components/ActivityRichTextEditor.tsx b/packages/twenty-front/src/modules/activities/components/ActivityRichTextEditor.tsx index 3f3dc447f..1b8f7dfbd 100644 --- a/packages/twenty-front/src/modules/activities/components/ActivityRichTextEditor.tsx +++ b/packages/twenty-front/src/modules/activities/components/ActivityRichTextEditor.tsx @@ -3,7 +3,6 @@ import { useCallback, useMemo } from 'react'; import { useRecoilCallback, useRecoilState } from 'recoil'; import { v4 } from 'uuid'; -import { BLOCK_SCHEMA } from '@/activities/blocks/constants/Schema'; import { useUploadAttachmentFile } from '@/activities/files/hooks/useUploadAttachmentFile'; import { useUpsertActivity } from '@/activities/hooks/useUpsertActivity'; import { canCreateActivityState } from '@/activities/states/canCreateActivityState'; @@ -19,6 +18,7 @@ import { isNonTextWritingKey } from '@/ui/utilities/hotkey/utils/isNonTextWritin import { Key } from 'ts-key-enum'; import { useDebouncedCallback } from 'use-debounce'; +import { BLOCK_SCHEMA } from '@/activities/blocks/constants/Schema'; import { ActivityRichTextEditorChangeOnActivityIdEffect } from '@/activities/components/ActivityRichTextEditorChangeOnActivityIdEffect'; import { Note } from '@/activities/types/Note'; import { Task } from '@/activities/types/Task'; @@ -251,41 +251,15 @@ export const ActivityRichTextEditor = ({ keyboardEvent.stopPropagation(); keyboardEvent.stopImmediatePropagation(); - const blockIdentifier = editor.getTextCursorPosition().block; - const currentBlockContent = blockIdentifier?.content; - - if ( - isDefined(currentBlockContent) && - isArray(currentBlockContent) && - currentBlockContent.length === 0 - ) { - // Empty block case - editor.updateBlock(blockIdentifier, { - content: keyboardEvent.key, - }); - return; - } - - if ( - isDefined(currentBlockContent) && - isArray(currentBlockContent) && - isDefined(currentBlockContent[0]) && - currentBlockContent[0].type === 'text' - ) { - // Text block case - editor.updateBlock(blockIdentifier, { - content: currentBlockContent[0].text + keyboardEvent.key, - }); - return; - } - const newBlockId = v4(); const newBlock = { id: newBlockId, type: 'paragraph' as const, content: keyboardEvent.key, }; - editor.insertBlocks([newBlock], blockIdentifier, 'after'); + + const lastBlock = editor.document[editor.document.length - 1]; + editor.insertBlocks([newBlock], lastBlock); editor.setTextCursorPosition(newBlockId, 'end'); editor.focus();