Cell editing uses a floating input for flexibility.
Edit modes:
- Double-click cell: Edit in place
- Start typing: Replace cell content
- F2 key: Edit existing content
- Formula bar: Edit with more space
Implementation:
{isEditing && (
<input
style={{ position: 'absolute', ...cellPosition }}
value={editValue}
onChange={handleChange}
onBlur={commitEdit}
onKeyDown={handleKeyDown}
/>
)}
Commit on: Enter (move down), Tab (move right), click outside, Escape (cancel).