@bastani/atomic 0.5.12-1 → 0.5.12-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/atomic",
3
- "version": "0.5.12-1",
3
+ "version": "0.5.12-3",
4
4
  "description": "Configuration management CLI and SDK for coding agents",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -81,6 +81,8 @@
81
81
  "commander": "^14.0.3",
82
82
  "ignore": "^7.0.5",
83
83
  "react": "^19.2.5",
84
+ "react-devtools-core": "^7.0.1",
85
+ "ws": "^8.18.0",
84
86
  "yaml": "^2.8.3",
85
87
  "zod": "^4.3.6"
86
88
  }
@@ -591,18 +591,14 @@ function TextAreaContent({
591
591
  }
592
592
  }, [value]);
593
593
 
594
- // Report changes back to parent via onContentChange.
595
- useEffect(() => {
596
- const ta = ref.current;
597
- if (!ta) return;
598
- ta.onContentChange = () => {
599
- changeRef.current?.(ta.plainText);
600
- };
601
- return () => {
602
- ta.onContentChange = undefined;
603
- };
604
- }, [changeRef]);
605
-
594
+ // Wire onContentChange as a prop so the reconciler sets it during the
595
+ // commit phase (via the constructor and setProperty's default branch),
596
+ // guaranteeing it is active before the textarea can receive key events.
597
+ // The previous useEffect approach deferred setup as a passive effect
598
+ // (ConcurrentRoot schedules these via setTimeout) creating a window
599
+ // where keystrokes reached the focused textarea before the listener
600
+ // existed, silently dropping content-change notifications and leaving
601
+ // fieldValues stale.
606
602
  return (
607
603
  <textarea
608
604
  ref={ref}
@@ -616,6 +612,9 @@ function TextAreaContent({
616
612
  placeholderColor={theme.textDim}
617
613
  wrapMode="word"
618
614
  flexGrow={1}
615
+ onContentChange={() => {
616
+ changeRef.current?.(ref.current?.plainText ?? "");
617
+ }}
619
618
  />
620
619
  );
621
620
  }