Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Analysis Catalog: multi-select and bulk actions

Aperta
#190 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@alex-rawlings-yyc ci sta già lavorando.

Dal 8/10/2026.

  • #400 di @alex-rawlings-yyc — aperta

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
typescript
Ambito
frontend

Direzione di ricerca

Inizia con #184 (Annulla/Ripristina) e #186 (caselle di controllo delle righe del catalogo), quindi esamina il percorso di mutazione del catalogo indicizzato da analysisId. Prima dell’implementazione, risolvi le domande elencate relative a errori parziali, selezione dei filtri e raggio d’impatto. Il lavoro è completato quando il catalogo supporta la selezione multipla sicura e le azioni collettive con il comportamento concordato per questi casi.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement

Checkboxes on Analysis Catalog rows (#186), then one action applied to the selection: delete these twelve, merge these five into that one, clear a gloss on all of them.

Blocked by #184 (Undo/Redo). Bulk is not technically hard — because catalog mutations are keyed by analysisId, a bulk action is a loop over ids, or better a single action taking ids[] so it is one transaction and one re-render. The blocker is safety: single-row delete without undo is a sharp edge you can reason about, while bulk delete without undo is forty mistakes at once, possibly with a partial failure halfway through, possibly on rows a filter is hiding.

Note this only works cleanly because mutations are analysis-keyed. Had they stayed token-keyed, a bulk action would have to expand each analysis into its N token refs, and every one of those calls would fork — producing N private copies, the exact opposite of the intent.

Use cases

  • Corrections that span rows. One mis-split word is already one row and one edit. But wrongly splitting a prefix such as un- across forty different words is forty rows, and no amount of shared-payload reuse collapses it — they are genuinely different analyses.
  • Cleanup. Filter to zero-usage rows, select all, delete.
  • Homograph consolidation. Merge several competing rows into one canonical analysis.

Design questions to settle

  • Partial failure. If row 17 of 40 throws, what state is the user in? Needs an answer that is not "hope", which is why undo comes first.
  • Selection versus filter. Select 40 rows, then change the filter — is the selection preserved? Does the action apply to rows the user can no longer see? This is a reliable bug factory; decide explicitly.
  • Blast radius display. A bulk delete needs to state total affected usages, not just row count. Twelve rows can be thousands of verses.

Related

user-questions.md parks a separate bulk-acceptance question ("Suggestion engine: bulk acceptance"). Both are "apply one decision to many things" and probably deserve one interaction model rather than two — worth designing together.

Blocked by: #184. Follow-up to #186.

Lingua principale
TypeScript
Stelle
2
Fork
0
Merge medio
2g 3h
PR unite (30g)
46

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sillsdev/interlinearizer-extension

Tutte le issue di sillsdev/interlinearizer-extension

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.