diff --git a/packages/lexical-link/src/index.ts b/packages/lexical-link/src/index.ts index fe2b9757048..3aafa251102 100644 --- a/packages/lexical-link/src/index.ts +++ b/packages/lexical-link/src/index.ts @@ -486,8 +486,9 @@ export function $toggleLink( const {target, title} = attributes; const rel = attributes.rel === undefined ? 'noreferrer' : attributes.rel; const selection = $getSelection(); + const selectionIsEmpty = selection && selection.isCollapsed() && url !== null; - if (!$isRangeSelection(selection)) { + if (!$isRangeSelection(selection) || selectionIsEmpty) { return; } const nodes = selection.extract(); diff --git a/packages/lexical-playground/__tests__/e2e/Links.spec.mjs b/packages/lexical-playground/__tests__/e2e/Links.spec.mjs index 695ee28d8e6..be28f81c06d 100644 --- a/packages/lexical-playground/__tests__/e2e/Links.spec.mjs +++ b/packages/lexical-playground/__tests__/e2e/Links.spec.mjs @@ -1438,7 +1438,8 @@ test.describe.parallel('Links', () => { test('Can edit link with collapsed selection', async ({page}) => { await focusEditor(page); await page.keyboard.type('A link'); - await selectAll(page); + await moveToLineBeginning(page); + await selectCharacters(page, 'right', 6); await click(page, '.link'); await click(page, '.link-confirm'); @@ -1457,8 +1458,6 @@ test.describe.parallel('Links', () => {

`, ); - - await moveToLineBeginning(page); await setURL(page, 'facebook.com'); await assertHTML(