react-arborist 0.2.0-beta.0 → 1.0.0

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/dist/types.d.ts CHANGED
@@ -40,14 +40,16 @@ export declare type NodeState = {
40
40
  isSelected: boolean;
41
41
  isHoveringOverChild: boolean;
42
42
  isDragging: boolean;
43
- isFirstOfSelected: boolean;
44
- isLastOfSelected: boolean;
43
+ isSelectedStart: boolean;
44
+ isSelectedEnd: boolean;
45
45
  isEditing: boolean;
46
46
  };
47
47
  export declare type NodeHandlers = {
48
48
  toggle: MouseEventHandler;
49
- select: (e: MouseEvent, selectOnClick?: boolean) => void;
50
- edit: () => void;
49
+ select: (e: MouseEvent, args: {
50
+ selectOnClick: boolean;
51
+ }) => void;
52
+ edit: () => Promise<EditResult>;
51
53
  submit: (name: string) => void;
52
54
  reset: () => void;
53
55
  };
@@ -118,3 +120,9 @@ export declare type StaticContext<T> = TreeProviderProps<T> & {
118
120
  api: TreeApi<T>;
119
121
  list: MutableRefObject<FixedSizeList | undefined>;
120
122
  };
123
+ export declare type EditResult = {
124
+ cancelled: true;
125
+ } | {
126
+ cancelled: false;
127
+ value: string;
128
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-arborist",
3
- "version": "0.2.0-beta.0",
3
+ "version": "1.0.0",
4
4
  "license": "MIT",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
@@ -91,13 +91,13 @@ const PreviewNode = memo(function PreviewNode(props: {
91
91
  isDragging: false,
92
92
  isEditing: false,
93
93
  isSelected: false,
94
- isFirstOfSelected: false,
95
- isLastOfSelected: false,
94
+ isSelectedStart: false,
95
+ isSelectedEnd: false,
96
96
  isHoveringOverChild: false,
97
97
  isOpen: node.isOpen,
98
98
  }}
99
99
  handlers={{
100
- edit: () => {},
100
+ edit: () => Promise.resolve({ cancelled: true }),
101
101
  select: () => {},
102
102
  toggle: () => {},
103
103
  submit: () => {},
@@ -37,8 +37,8 @@ export const Row = React.memo(function Row({ index, style }: Props) {
37
37
  return {
38
38
  isEditing,
39
39
  isDragging,
40
- isFirstOfSelected: isSelected && !prevSelected,
41
- isLastOfSelected: isSelected && !nextSelected,
40
+ isSelectedStart: isSelected && !prevSelected,
41
+ isSelectedEnd: isSelected && !nextSelected,
42
42
  isSelected,
43
43
  isHoveringOverChild,
44
44
  isOpen,
@@ -54,9 +54,6 @@ export const Row = React.memo(function Row({ index, style }: Props) {
54
54
  isDragging,
55
55
  isOverFolder,
56
56
  ]);
57
- if (isSelected) {
58
- console.log({id: node.id, state})
59
- }
60
57
 
61
58
  const ref = useCallback(
62
59
  (n: HTMLDivElement | null) => {
@@ -76,9 +73,12 @@ export const Row = React.memo(function Row({ index, style }: Props) {
76
73
 
77
74
  const handlers = useMemo(() => {
78
75
  return {
79
- select: (e: React.MouseEvent, selectOnClick: boolean = true) => {
76
+ select: (
77
+ e: React.MouseEvent,
78
+ args: { selectOnClick: boolean } = { selectOnClick: true }
79
+ ) => {
80
80
  if (node.rowIndex === null) return;
81
- if (selectOnClick || e.metaKey || e.shiftKey) {
81
+ if (args.selectOnClick || e.metaKey || e.shiftKey) {
82
82
  tree.api.select(node.rowIndex, e.metaKey, e.shiftKey);
83
83
  } else {
84
84
  tree.api.select(null, false, false);
@@ -88,16 +88,11 @@ export const Row = React.memo(function Row({ index, style }: Props) {
88
88
  e.stopPropagation();
89
89
  tree.onToggle(node.id, !node.isOpen);
90
90
  },
91
- edit: () => {
92
- tree.api.edit(node.id);
93
- },
91
+ edit: () => tree.api.edit(node.id),
94
92
  submit: (name: string) => {
95
- if (name.trim()) tree.onEdit(node.id, name);
96
- tree.api.edit(null);
97
- },
98
- reset: () => {
99
- tree.api.edit(null);
93
+ name.trim() ? tree.api.submit(node.id, name) : tree.api.reset(node.id);
100
94
  },
95
+ reset: () => tree.api.reset(node.id),
101
96
  };
102
97
  }, [tree, node]);
103
98
 
@@ -21,7 +21,7 @@ const OuterElement = forwardRef(function Outer(
21
21
  const tree = useStaticContext();
22
22
  return (
23
23
  // @ts-ignore
24
- <div ref={ref} {...rest} onClick={tree.onClick}>
24
+ <div ref={ref} {...rest} onClick={tree.onClick} onContextMenu={tree.onContextMenu}>
25
25
  <div
26
26
  style={{
27
27
  height: tree.api.visibleNodes.length * tree.rowHeight,
package/src/tree-api.ts CHANGED
@@ -4,9 +4,12 @@ import { FixedSizeList } from "react-window";
4
4
  import { flattenTree } from "./data/flatten-tree";
5
5
  import { Cursor } from "./dnd/compute-drop";
6
6
  import { Action, actions } from "./reducer";
7
- import { Node, StateContext, TreeProviderProps } from "./types";
7
+ import { Node, StateContext, TreeProviderProps, EditResult } from "./types";
8
+ import ReactDOM from "react-dom";
8
9
 
9
10
  export class TreeApi<T = unknown> {
11
+ private edits = new Map<string, (args: EditResult) => void>();
12
+
10
13
  constructor(
11
14
  public dispatch: Dispatch<Action>,
12
15
  public state: StateContext,
@@ -36,14 +39,42 @@ export class TreeApi<T = unknown> {
36
39
  return this.state.selection.ids;
37
40
  }
38
41
 
39
- edit(id: string | number | null) {
40
- this.dispatch(actions.edit(id ? id.toString() : null));
42
+ edit(id: string | number): Promise<EditResult> {
43
+ const sid = id.toString();
44
+ this.resolveEdit(sid, { cancelled: true });
45
+ this.scrollToId(sid);
46
+ this.dispatch(actions.edit(sid));
47
+ return new Promise((resolve) => this.edits.set(sid, resolve));
48
+ }
49
+
50
+ submit(id: string | number, value: string) {
51
+ const sid = id.toString();
52
+ this.props.onEdit(sid, value);
53
+ this.dispatch(actions.edit(null));
54
+ this.resolveEdit(sid, { cancelled: false, value });
55
+ }
56
+
57
+ reset(id: string | number) {
58
+ const sid = id.toString();
59
+ this.dispatch(actions.edit(null));
60
+ this.resolveEdit(sid, { cancelled: true });
41
61
  }
42
62
 
43
- select(index: number | null, meta: boolean, shift: boolean) {
63
+ private resolveEdit(id: string, value: EditResult) {
64
+ const resolve = this.edits.get(id.toString());
65
+ if (resolve) resolve(value);
66
+ this.edits.delete(id);
67
+ }
68
+
69
+ select(index: number | null, meta = false, shift = false) {
44
70
  this.dispatch(actions.select(index, meta, shift));
45
71
  }
46
72
 
73
+ selectById(id: string | number, meta = false, shift = false) {
74
+ const index = this.idToIndex[id];
75
+ this.select(index, meta, shift);
76
+ }
77
+
47
78
  selectUpwards(shiftKey: boolean) {
48
79
  this.dispatch(actions.stepUp(shiftKey, this.visibleIds));
49
80
  }
@@ -67,11 +98,7 @@ export class TreeApi<T = unknown> {
67
98
  this.list.scrollToItem(index, "start");
68
99
  } else {
69
100
  this.openParents(id);
70
- // This appears to be synchronous
71
- // But I've only tested it in the console and
72
- // not in an event handler which will be batched...
73
- // We may need to wrap this in a timeout or trigger an effect somehow
74
- setTimeout(() => {
101
+ ReactDOM.flushSync(() => {
75
102
  const index = this.idToIndex[id];
76
103
  if (index) {
77
104
  this.list?.scrollToItem(index, "start");
package/src/types.ts CHANGED
@@ -53,15 +53,15 @@ export type NodeState = {
53
53
  isSelected: boolean;
54
54
  isHoveringOverChild: boolean;
55
55
  isDragging: boolean;
56
- isFirstOfSelected: boolean;
57
- isLastOfSelected: boolean;
56
+ isSelectedStart: boolean;
57
+ isSelectedEnd: boolean;
58
58
  isEditing: boolean;
59
59
  };
60
60
 
61
61
  export type NodeHandlers = {
62
62
  toggle: MouseEventHandler;
63
- select: (e: MouseEvent, selectOnClick?: boolean) => void;
64
- edit: () => void;
63
+ select: (e: MouseEvent, args: { selectOnClick: boolean }) => void;
64
+ edit: () => Promise<EditResult>;
65
65
  submit: (name: string) => void;
66
66
  reset: () => void;
67
67
  };
@@ -145,3 +145,7 @@ export type StaticContext<T> = TreeProviderProps<T> & {
145
145
  api: TreeApi<T>;
146
146
  list: MutableRefObject<FixedSizeList | undefined>;
147
147
  };
148
+
149
+ export type EditResult =
150
+ | { cancelled: true }
151
+ | { cancelled: false; value: string };
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/selection/range.ts","../src/selection/selection.ts","../src/data/flatten-tree.ts","../src/reducer.ts","../src/tree-api.ts","../src/types.ts","../src/utils.ts","../src/dnd/drop-hook.ts","../src/dnd/compute-drop.ts","../src/context.tsx","../src/data/enrich-tree.ts","../src/dnd/outer-drop-hook.ts","../src/selection/selection-hook.ts","../src/tree-api-hook.ts","../src/provider.tsx","../src/components/drop-cursor.tsx","../src/components/preview.tsx","../src/dnd/drag-hook.ts","../src/components/row.tsx","../src/components/tree.tsx","../src/index.ts","../src/data/make-tree.ts","../src/dnd/measure-hover.ts","../src/selection/selection.test.ts"],"names":[],"mappings":"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"}