@xh/hoist 73.0.0-SNAPSHOT.1742937460874 → 73.0.0-SNAPSHOT.1743106945210

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.
@@ -49,11 +49,23 @@ export const [BooleanEditor, booleanEditor] = hoistCmp.withFactory<BooleanEditor
49
49
  }
50
50
  });
51
51
 
52
- function useInstantEditor({onValueChange, initialValue, stopEditing}: CustomCellEditorProps, ref) {
52
+ function useInstantEditor(
53
+ {onValueChange, initialValue, stopEditing, eventKey, eGridCell}: CustomCellEditorProps,
54
+ ref
55
+ ) {
56
+ // Don't toggle if the user has tabbed into the editor. See https://github.com/xh/hoist-react/issues/3943.
57
+ // Fortunately, `eventKey` is null for tab, so we can use that to accept other keyboard events.
58
+ // Unfortunately, it is also null for mouse events, so we check if the grid cell is currently
59
+ // underneath the mouse position via `:hover` selector.
53
60
  useEffect(() => {
54
- onValueChange(!initialValue);
61
+ const els = document.querySelectorAll(':hover'),
62
+ topEl = els[els.length - 1];
63
+
64
+ if (eventKey || topEl === eGridCell) {
65
+ onValueChange(!initialValue);
66
+ }
55
67
  stopEditing();
56
- }, [stopEditing, initialValue, onValueChange]);
68
+ }, [stopEditing, initialValue, onValueChange, eventKey, eGridCell]);
57
69
 
58
70
  return null;
59
71
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xh/hoist",
3
- "version": "73.0.0-SNAPSHOT.1742937460874",
3
+ "version": "73.0.0-SNAPSHOT.1743106945210",
4
4
  "description": "Hoist add-on for building and deploying React Applications.",
5
5
  "repository": "github:xh/hoist-react",
6
6
  "homepage": "https://xh.io",