[Beta]: After Enter saves an edited link URL, the link toolbar stays hidden while the caret is in the link
Los mantenedores suelen responder en 1 día
@zbeyens ya está trabajando en esto.
Desde el 27/10/2026.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- playwright, react, typescript
Línea de trabajo
Lee apps/www/src/registry/components/editor/link.tsx, especialmente submit() y el efecto que muestra la barra de herramientas, y luego revisa apps/www/tests/browser/link-floating-toolbar.spec.ts. Añade una prueba de navegador que edite la URL de un enlace y pulse Enter, y comprueba que la barra de herramientas vuelve a aparecer mientras el cursor permanece en el enlace; el issue se completa cuando esa prueba pasa y la barra de herramientas se comporta como se describe en Beta.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Testing lane
- Repository:
udecode/plate - Branch:
next - Release channel: Beta
- Exact commit/package version:
NOT_ENOUGH_INFO
Summary
On https://beta.platejs.org/docs/link, when Enter saves a new URL in the Edit link form, the link takes the new URL and the caret returns to the link, but the link toolbar does not come back. It stays hidden while the caret moves inside the link, and returns only after the caret leaves the link and comes back. On https://platejs.org/docs/link the toolbar comes back right after Enter.
Reproduction
natamox found this by hand in Chrome on macOS on 2026-10-21.
Repro 1: edit a link's URL and press Enter, Chromium
An agent recorded this on the live Beta in headless Chromium 149 (Playwright) on 2026-10-24, and recorded the same steps on platejs.org as a reference.
- Open https://beta.platejs.org/docs/link.
- Click the link
hyperlinksin the editor. The link toolbar opens withEdit link. - Click
Edit link. - In the URL field, press ⌘A and type
https://example.com/qa. - Press Enter.
- Press ← so the caret moves inside the link.
Result: after step 5 the link's URL is https://example.com/qa, focus is in the editor and the caret is in the link, but no link toolbar shows. After step 6 the toolbar is still hidden. On platejs.org the toolbar with Edit link is back right after Enter, and it stays while the caret is in the link.
Repro 2: WebKit, and the way back
An agent ran the same steps in headless WebKit 26.5 and Chromium 149 (Playwright) on 2026-10-24. There is no recording. Both engines gave the result of Repro 1, and on platejs.org the toolbar was back within 150 ms of Enter. On Beta, a click outside the link and then on it brought the toolbar back. Escape in the edit form, instead of Enter, also returned to the toolbar.
Expected
After Enter the caret is still in the link, so the link toolbar comes back, as it does after Escape in the same form and as it does on platejs.org after Enter.
Actual
The toolbar stays hidden until the caret leaves the link and returns.
Environment
- Exact
nextcommit/Beta package version:NOT_ENOUGH_INFO. The page does not show its build. - Repro 1: Chromium 149.0.7827.55 (Playwright, headless) on macOS, 2026-10-24.
- Repro 2: Chromium 149.0.7827.55 and WebKit 26.5 (Playwright, headless) on macOS, 2026-10-24.
- natamox's report: Chrome on macOS, 2026-10-21.
- Not tried in Firefox or on a phone.
Caveat
This comes from reading apps/www/src/registry/components/editor/link.tsx on next c4067faca8, without trying a code change:
submit()(:126) callsapi.hide()(:154) and then focuses the editor.- The effect that shows the toolbar for a link under the caret (
:302to:314) runs again only whenselectedLinkKey(:261) changes. Saving leaves the same link under the caret, so the key does not change and nothing shows the toolbar again. - Escape in the form calls
api.show('edit', editor.id)(:362), which is why Escape returns to the toolbar.
apps/www/tests/browser/link-floating-toolbar.spec.ts leaves the edit form with Escape (:227). apps/www/tests/browser/link-url-policy.spec.ts:178 presses Enter only in the insert form and checks that the form hides. No browser test presses Enter in the edit form.
The empty Text to display field in the recording's edit form is #5228. PR #5238, its fix, moves that field into its own component and does not change submit(), so it likely leaves this bug in place (inferred).
Evidence
- Repro 1: the agent's recording on Beta, 0:26, with an English step panel on the right. Enter is at 0:10, and ← is at 0:13. The dark box at the bottom is drawn by the test script and shows whether the toolbar is shown, where focus is, whether the caret is in the link and the link's URL.
- Reference: the same steps on platejs.org, 0:28. Enter is at 0:12.
Related
- #5228:
Edit linkleavesText to displayempty for an existing link.
Repro 1 — Chromium 149, /docs/link (Beta)
https://github.com/user-attachments/assets/1a5ac4f5-78ae-4988-bb0e-303daa4cba4c
Reference — Chromium 149, /docs/link on platejs.org
https://github.com/user-attachments/assets/2b8b5630-fefc-4632-9e8c-8c1972f6ed8c
- Lenguaje dominante
- TypeScript
- Estrellas
- 16.6k
- Forks
- 993
- Merge medio
- 20 h 21 min
- PR fusionados (30 d)
- 60
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de udecode/plate
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
[Beta]: The docs Demo example page starts with an empty editorPosiblemente ocupada @natamox la tomó hace 4 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
udecode/plate#5308 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
Todos los issues de udecode/plate
Issues similares
-
bug triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Export the Hemi Earn Router address and the Router and Agent ABIs from `@vetro-protocol/earn`Abiertohemi-earn
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
vetro-protocol/vetro-monorepo#1043 ·
Los mantenedores suelen responder en 1 día
-
stage 2: bare names resolve against PATH differently from the shell (empty and relative entries)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
STRML/omp-classifier#206 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
atlassian-labs/mermaid-diagrams-viewer#188 ·
Los mantenedores suelen responder en 1 día
-
dashboard enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Olanetsoft/agent-lookout#225 ·
Los mantenedores suelen responder en 1 día