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

[Beta]: Undo and redo do nothing after an edit in 16 Plite examples, such as hovering-toolbar, iframe and images

Abierto
#5,269 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
react, typescript
Área
frontend, testing

Línea de trabajo

Start by reading the 16 example files under apps/www/src/app/(app)/examples/plite/_examples/, especially the listed useEditor calls, and compare them with synced-blocks.tsx and content-completion, where history is installed and undo works. Reproduce the word probe in one affected example and one working example, then trace how their editor plugins handle history. Done means undo and redo work across the reported examples; verify with the word and HTML probes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug target:beta

Testing lane

  • Repository: udecode/plate
  • Branch: next
  • Release channel: Beta
  • Exact commit/package version: NOT_ENOUGH_INFO

Summary

In 16 Plite examples on Beta, ⌘Z and ⌘⇧Z do nothing after an edit. A deleted word, a deleted image or text replaced by pasted HTML stays as it is. Eight of these examples also exist on slatejs.org, and there the same steps undo and redo the edit. The other eight have no slatejs.org counterpart. Beta examples that install history, such as content-completion, undo the same edit.

Reproduction

Repro 1: /examples/plite/hovering-toolbar (Firefox), /examples/plite/iframe (Chrome), /examples/plite/images (Safari)

Each page runs in the browser named in the heading.

  1. Open https://beta.platejs.org/examples/plite/hovering-toolbar in Firefox, https://beta.platejs.org/examples/plite/iframe in Chrome, or https://beta.platejs.org/examples/plite/images in Safari.
  2. Click the last paragraph on hovering-toolbar, the last paragraph inside the iframe on iframe, or the first paragraph on images.
  3. Press ⌘→ and Return, and type QA alpha beta. On images the new line lands after the first paragraph and before the first image.
  4. Press ⌥⇧← to select beta, and press Backspace. The line reads QA alpha .
  5. Press ⌘Z, then ⌘⇧Z.

On all three Beta pages the line still reads QA alpha after ⌘Z and after ⌘⇧Z. On https://www.slatejs.org/examples/hovering-toolbar, https://www.slatejs.org/examples/iframe and https://www.slatejs.org/examples/images, the same steps in the same browsers bring back QA alpha beta on ⌘Z, and ⌘⇧Z deletes beta again.

All 16 examples

The tables list all 16 examples, the three in Repro 1 included. In every run ⌘Z left the edit in place, and where ⌘⇧Z was pressed it changed nothing. Two probes recur:

  • Word probe: type QA alpha beta in a new paragraph, select beta, press Backspace, then ⌘Z and ⌘⇧Z.
  • HTML probe: select a line and paste the HTML <p>A</p><p>B</p> over it, which leaves two paragraphs A and B, then press ⌘Z.

Examples that slatejs.org also has. Each was compared with its slatejs.org page in the same browser, and there ⌘Z undid the same edit.

Example Browser, who ran it, date Edit that ⌘Z did not undo on Beta
/examples/plite/check-lists Chrome 155 on macOS, agents, 2026-10-20 work! in Let's go to work!, deleted with ⌘→ and ⌥⌫
/examples/plite/hovering-toolbar Repro 1. Also Firefox 158 on macOS, agent, 2026-10-20. natamox confirmed it by hand the same day the final period, deleted with Backspace after a reload and ⌘↓
/examples/plite/iframe Repro 1. Also Chrome, agent, 2026-10-20. natamox confirmed it by hand the same day the period at the end of CSS., deleted with Backspace
/examples/plite/images Repro 1. Also Safari, agent, 2026-10-20. natamox confirmed it by hand the same day the first image, deleted with the Delete button at its top left or with Backspace; two HTML paragraphs pasted over a selection in the first paragraph
/examples/plite/markdown-preview desktop Chrome and Chromium 152, agents, 2026-10-21 beta, after typing alpha beta at the end of the last paragraph, selecting beta with a double-click and pressing Backspace
/examples/plite/search-highlighting Firefox, agent, by 2026-10-20; Chromium 152, agent, 2026-10-21. natamox judged it a bug on 2026-10-21 the last text in a new paragraph text alpha text, selected with ⌥⇧← and deleted with Backspace
/examples/plite/shadow-dom Chromium 152 and desktop Chrome, agents, 2026-10-21 beta, after typing alpha beta at the end of This Editor is rendered within a nested Shadow DOM., deleted as on markdown-preview
/examples/plite/tables Safari, agent, by 2026-10-20 the last word, beta, in the Human cell, deleted with Backspace; HTML pasted into the Cat cell, which added cells

Examples that slatejs.org does not have.

Example Browser, who ran it, date Edit that ⌘Z did not undo on Beta
/examples/plite/comment-mode, Edit mode panel Chromium 152 and desktop Chrome, agents, 2026-10-21. natamox noted on 2026-10-22 that it still happens beta, after typing alpha beta at the end of the Edit mode editor, selecting beta with a double-click and pressing Backspace. The page's document writes count did not change on ⌘Z
/examples/plite/cross-editor-drag Safari, agent, by 2026-10-20 word probe and HTML probe
/examples/plite/decorations-async Firefox, agent, by 2026-10-20 word probe and HTML probe
/examples/plite/dom-coverage-boundaries Chrome, agent, by 2026-10-20 word probe and HTML probe
/examples/plite/hidden-content-blocks Firefox, agent, by 2026-10-20. natamox confirmed it by hand on 2026-10-22 word probe and HTML probe
/examples/plite/linting Chrome, agent, by 2026-10-20; headless Chromium and WebKit, agent, 2026-10-22 obviously, selected and deleted with Backspace; word probe and HTML probe; a fix made with Apply first fix
/examples/plite/render-contract Firefox, agent, by 2026-10-20; an agent's Chromium, 2026-10-22. natamox confirmed it by hand on 2026-10-22 word probe after Intro; HTML probe; a Backspace that joined back a line split with Return in the portal paragraph
/examples/plite/schema-reconfiguration, named root Chromium 152 and desktop Chrome, agents, 2026-10-21; Chrome 155, agent, 2026-10-22 beta, after typing alpha beta at the end of the named root's beforeguardafter, deleted as on comment-mode; with Use read-only schema on, the whole guard, removed by Backspace

Expected

⌘Z undoes the last edit, and ⌘⇧Z redoes it.

  • For the eight examples slatejs.org also has, slatejs.org is the reference: the same steps in the same browser undo and redo the edit there. Repro 1 shows three of them side by side.
  • For the other eight, slatejs.org has no reference. The reference is Beta itself: Beta examples that install history undo the same edits. An agent noted on 2026-10-20 that styling, multi-root-document and synced-blocks undo normally, and richtext and plaintext install history too. On /examples/plite/content-completion, which installs history, an agent ran the word probe in Chrome on 2026-10-20: ⌘Z brought beta back, and ⌘⇧Z deleted it again.

Actual

On all 16 examples ⌘Z leaves the edit in place, and ⌘⇧Z changes nothing. Focus stays in the editor.

Environment

  • Exact next commit/Beta package version: NOT_ENOUGH_INFO. Agent runs on 2026-10-20 and 2026-10-21 recorded the Beta build as 7f98d46ed5.
  • On 2026-10-24 an agent replayed check-lists and tables on the live Beta in headless Chromium 149 and Playwright WebKit 26.5. ⌘Z still undid nothing there, not even a typed letter.
  • Repro 1: an agent drove natamox's desktop Firefox, Chrome and Safari on macOS on 2026-10-20 (PT), with each Beta page and its slatejs.org page in separate single-tab windows. The run did not record browser versions. Other runs that day record Firefox 158.0 and Chrome 155.0.8059.85 on macOS 27.0.1.
  • natamox confirmed hovering-toolbar, iframe and images by hand on 2026-10-20. On 2026-10-23 (PT) natamox confirmed again that on Beta ⌘Z after deleting a word does not bring it back.
  • The tables give the browser, the runner and the date of every other run. Nobody has tested undo in these examples on a phone.

Caveat

  • From a reading of the code on next, not confirmed by a fix: none of the 16 examples installs history(). Their files are in apps/www/src/app/(app)/examples/plite/_examples/, and each useEditor call passes only the example's own plugins, or none: check-lists.tsx:116, hovering-toolbar.tsx:44, iframe.tsx:69, images.tsx:136, markdown-preview.tsx:52, search-highlighting.tsx:30, shadow-dom.tsx:41, tables.tsx:193, comment-mode.tsx:647, cross-editor-drag.tsx:6, decorations-async.tsx:63, dom-coverage-boundaries.tsx:43, hidden-content-blocks.tsx:391, linting.tsx:280, render-contract.tsx:61 and schema-reconfiguration.tsx:197. Examples where undo works pass it, such as plugins: [history(), syncedBlocks()] at synced-blocks.tsx:69.
  • Six more examples have no history() either, and nobody has tested undo on them: android-tests, embeds, persistent-annotation-anchors, plate-dnd-cross-editor, plate-schema-descriptors and read-only. Slate's embeds example has no history either (#5246).
  • The Repro 1 recording does not capture key presses. Its captions were added afterwards from the agent's action log and list each segment's steps, so the frames do not mark when ⌘Z or ⌘⇧Z was pressed. The run also saved the editor's accessibility text after each key. On Beta it reads QA alpha after ⌘Z and after ⌘⇧Z.

Evidence

  • Repro 1: desktop screen recording, 96 seconds, cropped to the editor and played at half speed, with a caption panel under it. For each example Beta runs first and slatejs.org second. A run label at the start of each caption title is covered.
    • 0:00–0:16, Beta hovering-toolbar in Firefox. At 0:07 QA alpha beta shows with beta selected, and Backspace deletes beta the same second. The line reads QA alpha to 0:16.
    • 0:16–0:32, slatejs.org in Firefox. Backspace deletes beta at 0:22. ⌘Z brings it back at 0:23, and ⌘⇧Z deletes it again at 0:25.
    • 0:32–0:48, Beta iframe in Chrome. beta is selected at 0:36 and deleted at 0:37. The line reads QA alpha to 0:48.
    • 0:48–1:04, slatejs.org in Chrome. beta is deleted at 0:54, back at 0:55 and deleted again at 0:57.
    • 1:04–1:20, Beta images in Safari. beta is selected at 1:10 and deleted at 1:11. The line reads QA alpha to 1:20.
    • 1:20–1:36, slatejs.org in Safari. beta is deleted at 1:26, back at 1:28 and deleted again at 1:29.
    • The blue focus ring around the Chrome iframe goes away at 0:42 on Beta and at 1:01 on slatejs.org, and the slatejs.org editor in Firefox loses its ring at 0:29. The run's report does not say why.
Repro 1 — Firefox, Chrome and Safari, /examples/plite/hovering-toolbar, iframe and images, each followed by slatejs.org

https://github.com/user-attachments/assets/bcd5375b-36d9-4a31-b283-cc9f8d2d7c6b

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.