81fe6d29e2af82657f7f0433f9675741f103ed99
Typing in a segment no longer calls onChange — local state only. onChange now fires only on commit (Enter, calendar pick), so the parent TaskFormDialog stops re-rendering on every keystroke (and the heavy Calendar grid + every pill / popover / query stops re-rendering with it). Inside DateTimeField: - Calendar element memoized via useMemo keyed on the committed date's ms — only re-renders when a full valid date is reached or changes. - SegmentSpan wrapped in React.memo. - onSegKeyDown stabilized via useCallback + functional setSeg + refs for order / withTime / onChange / onCommit, so its identity never changes. - Per-segment ref setters cached in a useRef map so they don't swap identity on each render. TaskFormDialog: - onChange / onCommit passed to DateTimeField wrapped in useCallback. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
step 0.1 complete: Type-safe contracts for all backend communication and the batch/storage subsystem
Description
No description provided
Languages
TypeScript
97.9%
CSS
2%