diff --git a/src/admin/components/forms/field-types/RichText/elements/link/index.scss b/src/admin/components/forms/field-types/RichText/elements/link/index.scss index e4df9a4683..14f94f6992 100644 --- a/src/admin/components/forms/field-types/RichText/elements/link/index.scss +++ b/src/admin/components/forms/field-types/RichText/elements/link/index.scss @@ -58,6 +58,7 @@ .rich-text-link__url { @include formInput; + padding-right: base(1.75); min-width: base(12); width: 100%; background: rgba($color-background-gray, .1); diff --git a/src/admin/components/forms/field-types/RichText/elements/link/index.tsx b/src/admin/components/forms/field-types/RichText/elements/link/index.tsx index cb087f91cd..592791a727 100644 --- a/src/admin/components/forms/field-types/RichText/elements/link/index.tsx +++ b/src/admin/components/forms/field-types/RichText/elements/link/index.tsx @@ -69,6 +69,7 @@ const Link = ({ attributes, children, element }) => { }} onKeyDown={(e) => { if (e.key === 'Enter') { + e.preventDefault(); close(); } }} diff --git a/src/admin/components/forms/field-types/RichText/elements/link/utilities.tsx b/src/admin/components/forms/field-types/RichText/elements/link/utilities.tsx index fa2d9e1690..7478ba74de 100644 --- a/src/admin/components/forms/field-types/RichText/elements/link/utilities.tsx +++ b/src/admin/components/forms/field-types/RichText/elements/link/utilities.tsx @@ -9,13 +9,21 @@ export const unwrapLink = (editor: Editor): void => { Transforms.unwrapNodes(editor, { match: (n) => Element.isElement(n) && n.type === 'link' }); }; -export const wrapLink = (editor: Editor, url?: string, newTab?: boolean): void => { +export const wrapLink = (editor, url?: string, newTab?: boolean): void => { if (isLinkActive(editor)) { unwrapLink(editor); } - const { selection } = editor; - const isCollapsed = selection && Range.isCollapsed(selection); + const { selection, blurSelection } = editor; + + if (blurSelection) { + Transforms.select(editor, blurSelection); + } + + const selectionToUse = selection || blurSelection; + + const isCollapsed = selectionToUse && Range.isCollapsed(selectionToUse); + const link = { type: 'link', url,