Repository navigation
Say why a live-data or template cell refused an edit (#207) - #231
Merged
Merged
Conversation
Typing over a live-data cell opened no editor and said nothing: the keys went nowhere, Enter moved the cursor on, and the value was gone with only a hover tooltip to explain it. A template's locked structure did the same. A refused edit now puts a short note under the cell (which cell, why, and which button to press) and announces it once. It covers typing, F2, a double-click, a second tap on a phone, a phone keystroke with no key name, and Delete/Backspace on a live cell. While the note is up, Enter or Escape puts it away and leaves the cursor on the cell, as Excel's protected-cell message does, so typing and Enter in one go no longer carries the note away before it is read. Adds an e2e flow (fails 7 checks on main) and an a11y state at both widths. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013pmWZsbmugfpqtYazrzfjj
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Owner
Author
|
PO review — merged at Verify (local, full): green — 1990 tests, mutants 32/32, a11y 121, e2e 58. CI 17/17 green on the same head. Tried as a user on a production build (live sales sample, block A1:G6):
Decisions asked for:
Out of scope, followed up: the formula bar is Next in the queue: #226 → #232 → #224 → #230. Generated by Claude Code |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Closes #207 (blind test round 4, N7). Next in the queue after #227.
The bug: a live-data cell is read-only, rightly, but it refused in silence.
startEditreturned early for a cell it cannot edit, so typing999opened no editor, the keys went nowhere, Enter moved the cursor to the next row, and the value was gone. The only explanation was the hover tooltip. A double-click did nothing. A template's locked structure went through the samereturnand behaved the same way.The fix:
data-refusedattribute, so the cell's text stays its value. It is amber, and it wraps at 14rem so it fits at 390.999and Enter were typed in one go: the note would have come with the first key, then Enter took the cursor away and the note with it. Once the note is gone, Enter moves down as always.For PO: the visible place, and #200
#207 asks for the refusal to be visible "in the same place #200 decides on". #200 has not decided yet, so I picked the place this grid already uses for a word about one cell: under the cell, as the #171 tap hint does. If #200 settles on something else, this note should follow it. The state is one
refusalobject with a cell and a text, so moving it is small.Two things here go a little past the issue's wording. Please say if you want either taken out:
canEditcheck. The README's template section already promised that every way in is "refused with a reason", but typing was the one that wasn't. The second tap on a phone used to skip locked cells entirely. It now reachesstartEditand gets the note.Reproduced on
mainfirstSame steps as the issue: Live data → Try it: Live sales → Test → Save and add → Insert at A1. Then B2,
999, Enter.main5d28538999on B2How it was verified
npm run verify(all ten gates): all ten gates green on6a46a2f(the current head), result belowmain'sSpreadsheetGrid.tsx, 7 of its checks fail: no note, nothing announced, Enter leaves B2, Delete and the double-click say nothing. "No editor opens" and "the value stays" pass on both, as they should.OPENED_STATES..xlsxopened as a template: typing into A1 and a second tap at 390 both give the template note, and the field B1 still takes typing;check:screenspasses.Anything reviewers should look at closely
startEditis no longer auseCallback. Nothing listed it as a dependency, and it now reads the current note to decide whether to announce.claude/new-session-m6mehm. The work was written on a local branch frommain5d28538.🤖 Generated with Claude Code
https://claude.ai/code/session_013pmWZsbmugfpqtYazrzfjj
Generated by Claude Code