mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-04 08:38:34 +00:00
fix(editor): do not display format bar with embed node (#11371)
Close [BS-2895: 点击inline名字区域不需要显示format toolbar](https://linear.app/affine-design/issue/BS-2895/点击inline名字区域不需要显示format-toolbar)
This commit is contained in:
@@ -202,8 +202,25 @@ export function getCombinedTextStyle(chain: Chain<InitCommandCtx>) {
|
||||
}
|
||||
|
||||
export function isFormatSupported(chain: Chain<InitCommandCtx>) {
|
||||
return handleCurrentSelection(
|
||||
chain,
|
||||
(_type, inlineEditors) => inlineEditors.length > 0
|
||||
);
|
||||
return handleCurrentSelection(chain, (_type, inlineEditors) => {
|
||||
if (inlineEditors.length === 1) {
|
||||
const inlineEditor = inlineEditors[0];
|
||||
const inlineRange = inlineEditor.getInlineRange();
|
||||
|
||||
// support block selection
|
||||
if (!inlineRange) return true;
|
||||
|
||||
if (inlineRange.length !== 1) return true;
|
||||
|
||||
// skip embed node
|
||||
const delta = inlineEditor.getDeltaByRangeIndex(inlineRange.index + 1);
|
||||
if (!delta) return true;
|
||||
|
||||
const isEmbed = inlineEditor.isEmbed(delta);
|
||||
if (isEmbed) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
return inlineEditors.length > 0;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import {
|
||||
initThreeParagraphs,
|
||||
pasteByKeyboard,
|
||||
pressArrowDown,
|
||||
pressArrowLeft,
|
||||
pressArrowUp,
|
||||
pressEnter,
|
||||
pressEscape,
|
||||
@@ -1051,3 +1052,18 @@ test.describe('more menu button', () => {
|
||||
await assertRichTexts(page, ['123', '789']);
|
||||
});
|
||||
});
|
||||
|
||||
test('should not display format bar when just select embed node', async ({
|
||||
page,
|
||||
}) => {
|
||||
await enterPlaygroundRoom(page);
|
||||
await initEmptyParagraphState(page);
|
||||
await focusRichText(page, 0);
|
||||
await type(page, '@\n');
|
||||
await assertRichTextInlineRange(page, 0, 1, 0);
|
||||
await pressArrowLeft(page);
|
||||
await assertRichTextInlineRange(page, 0, 0, 1);
|
||||
|
||||
const { boldBtn } = getFormatBar(page);
|
||||
await expect(boldBtn).toBeHidden();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user