TypeCellOS / TypeCellOS/BlockNote

Slash menu throws "Attempting to update uninitialized suggestions menu" after toggling editable

Ouverte
#2,701 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Bug
Langage dominant
TypeScript
Étoiles
10.2k
Forks
772
Merge moyen
3 j 11 h
PR mergées (30 j)
17

Description

Version:
@blocknote/core@0.49.0

Repro

  1. Render a BlockNoteEditor whose editable prop is toggled from a parent (e.g. switching between view and edit mode).
  2. DevTools → Performance → CPU: 6x slowdown (low-end devices reproduce naturally).
  3. Toggle the editor from non-editable to editable.
  4. Immediately type / to open the slash/suggestion menu.

Throws:

  Error: Attempting to update uninitialized suggestions menu                                                                         
      at emitUpdate (SuggestionMenu.ts:35)                  
      at SuggestionMenuView.update (SuggestionMenu.ts:90)                                                                            
      at ... prosemirror-view dispatch 
What did you expect to happen?

No errors

Steps to reproduce
  • Render a BlockNoteEditor whose editable prop is controlled by parent React state (we toggle between view/edit modes).
    -Open DevTools → Performance → set CPU to 6× slowdown (this makes the bug deterministic; in production it occurs on real users without throttling, presumably on slower devices).
  • Toggle the editor from non-editable → editable
  • Immediately type / to open the suggestion menu.
  • Observe the thrown error in the console
BlockNote version

@blocknote/core@0.49.0

Environment

Reported in production on Chrome 147 / Windows 10/11 (real user). Reproduced locally on Chrome (latest) / macOS with React 18 and CPU throttling at 6×.

Additional context

Production stack trace (sourcemapped):

  Error: Attempting to update uninitialized suggestions menu
      at emitUpdate (@blocknote/core/src/extensions/SuggestionMenu/SuggestionMenu.ts:35:18)
      at SuggestionMenuView.update (@blocknote/core/src/extensions/SuggestionMenu/SuggestionMenu.ts:90:11)
      at pluginView.update (prosemirror-view/dist/index.js:5580:31)
      at anchorInRightPlace (prosemirror-view/dist/index.js:5526:13)
      at updateState (prosemirror-view/dist/index.js:5454:13)
      at Editor.emit (@tiptap/core/src/Editor.ts:646:14)
      at dispatch (prosemirror-view/dist/index.js:5829:28)
      at callback (@blocknote/core/src/editor/managers/StateManager.ts:142:29)
      at callback (@blocknote/core/src/editor/BlockNoteEditor.ts:707:30)
      at closeMenu (@blocknote/core/src/extensions/SuggestionMenu/SuggestionMenu.ts:117:16)
Contribution
  • I'd be interested in contributing a fix for this issue
Sponsor
  • I'm a sponsor and would appreciate if you could look into this sooner than later 💖

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Start in @blocknote/core/src/extensions/SuggestionMenu/SuggestionMenu.ts, especially emitUpdate, SuggestionMenuView.update, and closeMenu, then reproduce the controlled editable toggle with CPU throttling. Trace the update sequence after switching to editable and typing /. Done means the slash menu opens without the uninitialized suggestions menu error.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
react, typescript
Domaine
frontend
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
55/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.