The Build tab works out a row's group in three places, and group rename uses a slightly different rule

Abierto
#770 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@fefezey ya está trabajando en esto.

Desde el 4/11/2026.

  • #790 de @fefezey — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
Medio día
Aptitud para principiantes
62/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript
Área
frontend

Línea de trabajo

Start in src/components/build-wysiwyg/BuildWysiwyg.tsx beside EMPTY_GROUP_KEY, and compare partitionRows, the getGroupKey passed to useReorderable, and the row filter in handleRenameGroup. Add groupKeyOf and groupValueOf, then switch rawValue, onTransfer and handleAddSlot over, leaving the '__flat__' branch alone. Done when a test shows renaming the empty group touches exactly the rows the partition displays there, and the lint, typecheck, knip and test scripts pass.

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

Descripción

enhancement good first issue

What happens

In src/components/build-wysiwyg/BuildWysiwyg.tsx, the rule "a row with no value for the group field belongs to EMPTY_GROUP_KEY" is written out three times, and its inverse ("EMPTY_GROUP_KEY means the value ''") three more:

  • Value to key: partitionRows (which groups are shown), getGroupKey passed to useReorderable (dragging between groups), and the row filter in handleRenameGroup.
  • Key to value: partitionRows' rawValue, onTransfer, and the seeding in handleAddSlot.

The rename filter is written differently from the other two, and is not quite the same rule: a row whose value is literally the text __empty__ is shown in the empty group, but renaming the empty group skips it. Nobody will realistically type that, but it is the drift the copies invite.

Fix, in outline

  • Add two module-level helpers next to EMPTY_GROUP_KEY: groupKeyOf(row, ref) and groupValueOf(key).
  • Use them at all six places; the rename filter becomes groupKeyOf(r, ref) === oldKey.

Watch for

  • Keep '__flat__' handling in handleAddSlot as it is.
  • Roughly line-neutral: the gain is one rule, not fewer lines.

Done when

  • The empty-group rule is written once in each direction.
  • A test pins that renaming the empty group picks exactly the rows the partition shows in it.
  • pnpm lint && pnpm format:check && pnpm typecheck && pnpm knip && pnpm test pass.

Found by the pipeline's refactor scout in the Build tab (src/components/build-wysiwyg), at 167b4a4. Checked by an independent verify agent, which quoted every copy and found the one input where the rename rule differs. https://claude.ai/code/session_016YZ9SUFioou8ZnL5ZvR43M

Held back by the scout's cap. Add pipeline:ready to queue it.

Lenguaje dominante
TypeScript
Estrellas
19
Forks
4
Merge medio
21 h 42 min
PR fusionados (30 d)
200

Preparar el entorno

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 richshaw/OpenSignup

Todos los issues de richshaw/OpenSignup

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.