Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Beta]: After Enter saves an edited link URL, the link toolbar stays hidden while the caret is in the link

Abierto Apto para principiantes
#5,314 1 comentario 0 reacciones 1 asignado Ver en GitHub

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
Área
frontend, testing

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.

  1. Open https://beta.platejs.org/docs/link.
  2. Click the link hyperlinks in the editor. The link toolbar opens with Edit link.
  3. Click Edit link.
  4. In the URL field, press ⌘A and type https://example.com/qa.
  5. Press Enter.
  6. 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 next commit/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) calls api.hide() (:154) and then focuses the editor.
  • The effect that shows the toolbar for a link under the caret (:302 to :314) runs again only when selectedLinkKey (: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 link leaves Text to display empty 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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de udecode/plate

Todos los issues de udecode/plate

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.