Thinkmill / Thinkmill/keystatic
fields.blocks: clicking a row no longer opens the edit dialog in 0.6.5 (works in 0.6.4)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2.4k
- Forks
- 159
- Avg merge
- 21h 41m
- Merged PRs (30d)
- 2
Description
In @keystatic/core 0.6.5, clicking a row in a fields.blocks list no longer opens the edit dialog. Nothing happens — no dialog, no console error. The same schema works on 0.6.4.
The practical effect is that existing blocks cannot be edited at all. You can still add, delete and reorder them, so the admin looks healthy until you try to change something.
Reproduction
A singleton with a single fields.blocks, two trivial variants, no itemLabel:
proef: singleton({
label: 'Proef',
path: 'src/content/proef',
format: { data: 'yaml' },
schema: {
blocks: fields.blocks(
{
first: { label: 'First kind', schema: fields.object({ name: fields.text({ label: 'Name' }) }) },
second: { label: 'Second kind', schema: fields.object({ name: fields.text({ label: 'Name' }) }) },
},
{ label: 'Blocks' },
),
},
}),
With two existing items in src/content/proef.yaml:
blocks:
- discriminant: first
value:
name: Block one
- discriminant: second
value:
name: Block two
Click either row in the admin.
- 0.6.4 — an "Edit First kind" dialog opens with the field in it.
- 0.6.5 — nothing happens. No dialog is added to the DOM, and the console stays empty.
Tried click, double click, and Enter on the focused row. Local storage mode, no custom UI.
Not the schema
A plain fields.array opens on both versions. I tested four shapes side by side in one singleton:
| Field | Opens on 0.6.5 |
|---|---|
fields.array(fields.text(...)), no itemLabel |
yes |
fields.array(fields.text(...)), with itemLabel |
yes |
fields.array(fields.object(...)), no itemLabel |
yes |
fields.array(fields.object(...)), with itemLabel |
yes |
fields.blocks(...), no itemLabel |
no |
One other visible difference on 0.6.5: a fields.array renders a localized "Add" button (I run locale: 'nl-NL', so it reads "Toevoegen"), while a fields.blocks renders an untranslated "Add". That also holds on 0.6.4, so it is probably a separate thing, but it suggests the two use different components.
Versions
- Broken:
@keystatic/core0.6.5 with@keystatic/astro5.2.0 - Working:
@keystatic/core0.6.4 with@keystatic/astro5.1.0 - Astro 6.4.8, React 19.2.0, local storage mode
@keystar/uigoes 0.9.2 → 0.9.3 between the two.react-ariais 3.50.0 in both, so it does not look like the react-aria interaction issue in #1529.
Single copy of @keystatic/core in the tree in both cases (checked with npm ls).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the @keystatic/core fields.blocks implementation and compare the 0.6.4 and 0.6.5 behavior using the provided singleton reproduction. Verify the existing block rows in the admin and trace their click, double-click, and Enter interactions. Done means clicking a row opens its edit dialog in 0.6.5 without console errors, while add, delete, and reorder still work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100