@window-splitter/state 0.4.0 → 0.4.2

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.
@@ -1,4 +1,5 @@
1
-
2
- > @window-splitter/state@0.3.2 build /vercel/path0/packages/state
3
- > tshy
4
-
1
+
2
+ 
3
+ > @window-splitter/state@0.4.1 build /Users/andrew/Documents/react-window-splitter/packages/state
4
+ > tshy
5
+
package/CHANGELOG.md CHANGED
@@ -1,3 +1,38 @@
1
+ # v0.4.2 (Tue Apr 15 2025)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - rebind onResize and onCollapseChange to fix restoring from snapshot [#44](https://github.com/hipstersmoothie/react-window-splitter/pull/44) ([@hipstersmoothie](https://github.com/hipstersmoothie))
6
+ - rebind onResize and onCollapseChange to fix restoring from snapshot (closes #41) ([@hipstersmoothie](https://github.com/hipstersmoothie))
7
+
8
+ #### Authors: 1
9
+
10
+ - Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
11
+
12
+ ---
13
+
14
+ # v0.4.1 (Sun Aug 25 2024)
15
+
16
+ #### 🐛 Bug Fix
17
+
18
+ - Responsive Bugs [#38](https://github.com/hipstersmoothie/react-window-splitter/pull/38) ([@hipstersmoothie](https://github.com/hipstersmoothie))
19
+ - fix tests ([@hipstersmoothie](https://github.com/hipstersmoothie))
20
+ - move handle overflow logic to recordActualItemSize ([@hipstersmoothie](https://github.com/hipstersmoothie))
21
+ - more ([@hipstersmoothie](https://github.com/hipstersmoothie))
22
+ - update test ([@hipstersmoothie](https://github.com/hipstersmoothie))
23
+ - updating tests ([@hipstersmoothie](https://github.com/hipstersmoothie))
24
+ - measure more ([@hipstersmoothie](https://github.com/hipstersmoothie))
25
+ - add fill panel. improves resizing a lot ([@hipstersmoothie](https://github.com/hipstersmoothie))
26
+ - move autosave to state package [#36](https://github.com/hipstersmoothie/react-window-splitter/pull/36) ([@hipstersmoothie](https://github.com/hipstersmoothie))
27
+ - improve lint ([@hipstersmoothie](https://github.com/hipstersmoothie))
28
+ - move autosave to state ([@hipstersmoothie](https://github.com/hipstersmoothie))
29
+
30
+ #### Authors: 1
31
+
32
+ - Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
33
+
34
+ ---
35
+
1
36
  # v0.4.0 (Fri Aug 23 2024)
2
37
 
3
38
  #### 🚀 Enhancement
@@ -82,6 +82,7 @@ export interface PanelData extends Omit<Constraints, "min" | "max" | "collapsedS
82
82
  duration: number;
83
83
  easing: CollapseAnimation | ((t: number) => number);
84
84
  };
85
+ lastKnownSize?: Rect;
85
86
  }
86
87
  /** Copied from https://github.com/d3/d3-ease */
87
88
  declare const collapseAnimations: {
@@ -105,6 +106,11 @@ interface RegisterPanelEvent {
105
106
  type: "registerPanel";
106
107
  data: Omit<PanelData, "type" | "currentValue" | "defaultCollapsed">;
107
108
  }
109
+ interface RebindPanelCallbacksEvent {
110
+ /** Rebind the panel callbacks */
111
+ type: "rebindPanelCallbacks";
112
+ data: Pick<PanelData, "id" | "onCollapseChange" | "onResize">;
113
+ }
108
114
  interface RegisterDynamicPanelEvent extends Omit<RegisterPanelEvent, "type"> {
109
115
  /** Register a new panel with the state machine */
110
116
  type: "registerDynamicPanel";
@@ -154,7 +160,6 @@ interface SetSizeEvent {
154
160
  /** Set the size of the whole group */
155
161
  type: "setSize";
156
162
  size: Rect;
157
- handleOverflow?: boolean;
158
163
  }
159
164
  interface SetActualItemsSizeEvent {
160
165
  /** Set the size of the whole group */
@@ -213,10 +218,18 @@ export interface GroupMachineContextValue {
213
218
  /** How much the drag has overshot the handle */
214
219
  dragOvershoot: Big.Big;
215
220
  groupId: string;
221
+ /**
222
+ * How to save the persisted state
223
+ */
224
+ autosaveStrategy?: "localStorage" | "cookie";
216
225
  }
217
- export type GroupMachineEvent = RegisterPanelEvent | RegisterDynamicPanelEvent | UnregisterPanelEvent | RegisterPanelHandleEvent | UnregisterPanelHandleEvent | DragHandleEvent | SetSizeEvent | SetOrientationEvent | DragHandleStartEvent | DragHandleEndEvent | CollapsePanelEvent | ExpandPanelEvent | SetPanelPixelSizeEvent | ApplyDeltaEvent | SetActualItemsSizeEvent;
226
+ export type GroupMachineSnapshot = Snapshot<unknown> & {
227
+ context: GroupMachineContextValue;
228
+ value: string;
229
+ };
230
+ export type GroupMachineEvent = RegisterPanelEvent | RegisterDynamicPanelEvent | UnregisterPanelEvent | RegisterPanelHandleEvent | UnregisterPanelHandleEvent | DragHandleEvent | SetSizeEvent | SetOrientationEvent | DragHandleStartEvent | DragHandleEndEvent | CollapsePanelEvent | ExpandPanelEvent | SetPanelPixelSizeEvent | ApplyDeltaEvent | SetActualItemsSizeEvent | RebindPanelCallbacksEvent;
218
231
  export declare function getCursor(context: Pick<GroupMachineContextValue, "dragOvershoot" | "orientation">): "w-resize" | "e-resize" | "ew-resize" | "n-resize" | "s-resize" | "ns-resize";
219
- export declare function prepareSnapshot(snapshot: Snapshot<unknown>): Snapshot<unknown>;
232
+ export declare function prepareSnapshot(snapshot: GroupMachineSnapshot): GroupMachineSnapshot;
220
233
  /** Determine if an item is a panel */
221
234
  export declare function isPanelData(value: unknown): value is PanelData;
222
235
  /** Determine if an item is a panel handle */
@@ -326,10 +339,11 @@ export declare function dragHandlePayload({ delta, orientation, shiftKey, }: {
326
339
  readonly deltaX: number;
327
340
  readonly deltaY: number;
328
341
  };
329
- export declare const groupMachine: import("xstate").StateMachine<GroupMachineContextValue, RegisterPanelEvent | RegisterDynamicPanelEvent | UnregisterPanelEvent | RegisterPanelHandleEvent | UnregisterPanelHandleEvent | DragHandleStartEvent | DragHandleEvent | DragHandleEndEvent | SetSizeEvent | SetActualItemsSizeEvent | ApplyDeltaEvent | SetOrientationEvent | CollapsePanelEvent | ExpandPanelEvent | SetPanelPixelSizeEvent, Record<string, import("xstate").AnyActorRef>, import("xstate").ProvidedActor, import("xstate").ParameterizedObject, import("xstate").ParameterizedObject, string, import("xstate").StateValue, string, {
342
+ export declare const groupMachine: import("xstate").StateMachine<GroupMachineContextValue, RegisterPanelEvent | RebindPanelCallbacksEvent | RegisterDynamicPanelEvent | UnregisterPanelEvent | RegisterPanelHandleEvent | UnregisterPanelHandleEvent | DragHandleStartEvent | DragHandleEvent | DragHandleEndEvent | SetSizeEvent | SetActualItemsSizeEvent | ApplyDeltaEvent | SetOrientationEvent | CollapsePanelEvent | ExpandPanelEvent | SetPanelPixelSizeEvent, Record<string, import("xstate").AnyActorRef>, import("xstate").ProvidedActor, import("xstate").ParameterizedObject, import("xstate").ParameterizedObject, string, import("xstate").StateValue, string, {
330
343
  orientation?: Orientation;
331
344
  groupId: string;
332
345
  initialItems?: Item[];
346
+ autosaveStrategy?: "localStorage" | "cookie";
333
347
  }, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, any>;
334
348
  export {};
335
349
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ exports.getPanelPercentageSize = getPanelPercentageSize;
24
24
  exports.buildTemplate = buildTemplate;
25
25
  exports.prepareItems = prepareItems;
26
26
  exports.dragHandlePayload = dragHandlePayload;
27
+ const universal_cookie_1 = __importDefault(require("universal-cookie"));
27
28
  const rafz_1 = require("@react-spring/rafz");
28
29
  const xstate_1 = require("xstate");
29
30
  const invariant_1 = __importDefault(require("invariant"));
@@ -96,9 +97,7 @@ function getCursor(context) {
96
97
  }
97
98
  }
98
99
  function prepareSnapshot(snapshot) {
99
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
100
- const snapshotContext = snapshot
101
- .context;
100
+ const snapshotContext = snapshot.context;
102
101
  snapshotContext.dragOvershoot = new big_js_1.default(snapshotContext.dragOvershoot);
103
102
  for (const item of snapshotContext.items) {
104
103
  if (isPanelData(item)) {
@@ -375,6 +374,7 @@ function getPanelPercentageSize(context, panelId) {
375
374
  /** Build the grid template from the item values. */
376
375
  function buildTemplate(context) {
377
376
  const staticWidth = getStaticWidth(context);
377
+ let hasSeenFillPanel = false;
378
378
  return context.items
379
379
  .map((item) => {
380
380
  if (item.type === "panel") {
@@ -388,6 +388,12 @@ function buildTemplate(context) {
388
388
  return formatUnit(item.currentValue);
389
389
  }
390
390
  else if (item.currentValue.type === "percent") {
391
+ if (!hasSeenFillPanel &&
392
+ (item.max === "1fr" ||
393
+ (item.max.type === "percent" && item.max.value.eq(100)))) {
394
+ hasSeenFillPanel = true;
395
+ return `minmax(${min}, 1fr)`;
396
+ }
391
397
  const max = item.max === "1fr" ? "100%" : formatUnit(item.max);
392
398
  return `minmax(${min}, min(calc(${item.currentValue.value} * (100% - ${staticWidth}px)), ${max}))`;
393
399
  }
@@ -493,6 +499,13 @@ function prepareItems(context) {
493
499
  newItems.push({ ...item });
494
500
  continue;
495
501
  }
502
+ if (item.lastKnownSize) {
503
+ const lastSize = makePixelUnit(context.orientation === "horizontal"
504
+ ? item.lastKnownSize.width
505
+ : item.lastKnownSize.height);
506
+ newItems.push({ ...item, currentValue: lastSize });
507
+ continue;
508
+ }
496
509
  if (item.currentValue.type === "pixel") {
497
510
  newItems.push({ ...item });
498
511
  continue;
@@ -802,6 +815,9 @@ function handleOverflow(context) {
802
815
  }
803
816
  return { ...newContext, items: commitLayout(newContext) };
804
817
  }
818
+ function clearLastKnownSize(items) {
819
+ return items.map((i) => ({ ...i, lastKnownSize: undefined }));
820
+ }
805
821
  function getDeltaForEvent(context, event) {
806
822
  const panel = getPanelWithId(context, event.panelId);
807
823
  if (event.type === "expandPanel") {
@@ -861,15 +877,17 @@ exports.groupMachine = (0, xstate_1.createMachine)({
861
877
  orientation: input.orientation || "horizontal",
862
878
  dragOvershoot: new big_js_1.default(0),
863
879
  groupId: input.groupId,
880
+ autosaveStrategy: input.autosaveStrategy,
864
881
  }),
865
882
  states: {
866
883
  idle: {
884
+ entry: ["onAutosave"],
867
885
  on: {
868
- setActualItemsSize: { actions: ["recordActualItemSize", "onResize"] },
869
886
  dragHandleStart: { target: "dragging" },
870
887
  setPanelPixelSize: {
871
888
  actions: [
872
889
  "prepare",
890
+ "onClearLastKnownSize",
873
891
  "onSetPanelSize",
874
892
  "commit",
875
893
  "onResize",
@@ -897,7 +915,9 @@ exports.groupMachine = (0, xstate_1.createMachine)({
897
915
  dragging: {
898
916
  entry: ["prepare"],
899
917
  on: {
900
- dragHandle: { actions: ["onDragHandle", "onResize"] },
918
+ dragHandle: {
919
+ actions: ["onClearLastKnownSize", "onDragHandle", "onResize"],
920
+ },
901
921
  dragHandleEnd: { target: "idle" },
902
922
  collapsePanel: {
903
923
  guard: "shouldCollapseToggle",
@@ -908,16 +928,16 @@ exports.groupMachine = (0, xstate_1.createMachine)({
908
928
  actions: "runCollapseToggle",
909
929
  },
910
930
  },
911
- exit: ["commit", "onAutosave"],
931
+ exit: ["commit"],
912
932
  },
913
933
  togglingCollapse: {
914
- entry: ["prepare"],
934
+ entry: ["prepare", "onClearLastKnownSize"],
915
935
  invoke: {
916
936
  src: "animation",
917
937
  input: (i) => ({ ...i, send: i.self.send }),
918
938
  onDone: {
919
939
  target: "idle",
920
- actions: ["onToggleCollapseComplete", "commit", "onAutosave"],
940
+ actions: ["onToggleCollapseComplete", "commit"],
921
941
  },
922
942
  },
923
943
  on: {
@@ -926,25 +946,44 @@ exports.groupMachine = (0, xstate_1.createMachine)({
926
946
  },
927
947
  },
928
948
  on: {
949
+ setActualItemsSize: { actions: ["recordActualItemSize", "onResize"] },
929
950
  registerPanel: { actions: ["assignPanelData"] },
951
+ rebindPanelCallbacks: { actions: ["rebindPanelCallbacks"] },
930
952
  registerDynamicPanel: {
931
953
  actions: [
932
954
  "prepare",
933
955
  "onRegisterDynamicPanel",
956
+ "onClearLastKnownSize",
934
957
  "commit",
935
958
  "onResize",
936
959
  "onAutosave",
937
960
  ],
938
961
  },
939
962
  unregisterPanel: {
940
- actions: ["prepare", "removeItem", "commit", "onResize", "onAutosave"],
963
+ actions: [
964
+ "prepare",
965
+ "removeItem",
966
+ "onClearLastKnownSize",
967
+ "commit",
968
+ "onResize",
969
+ "onAutosave",
970
+ ],
941
971
  },
942
972
  registerPanelHandle: { actions: ["assignPanelHandleData"] },
943
973
  unregisterPanelHandle: {
944
- actions: ["prepare", "removeItem", "commit", "onResize", "onAutosave"],
974
+ actions: [
975
+ "prepare",
976
+ "removeItem",
977
+ "onClearLastKnownSize",
978
+ "commit",
979
+ "onResize",
980
+ "onAutosave",
981
+ ],
945
982
  },
946
983
  setSize: { actions: ["updateSize", "onResize"] },
947
- setOrientation: { actions: ["updateOrientation", "onResize"] },
984
+ setOrientation: {
985
+ actions: ["updateOrientation", "onClearLastKnownSize", "onResize"],
986
+ },
948
987
  },
949
988
  }, {
950
989
  guards: {
@@ -986,6 +1025,24 @@ exports.groupMachine = (0, xstate_1.createMachine)({
986
1025
  animation: animationActor,
987
1026
  },
988
1027
  actions: {
1028
+ onAutosave: ({ context, self }) => {
1029
+ if (!context.autosaveStrategy || typeof window === "undefined") {
1030
+ return;
1031
+ }
1032
+ const snapshot = self.getPersistedSnapshot();
1033
+ snapshot.context.items = clearLastKnownSize(context.items);
1034
+ snapshot.value = "idle";
1035
+ const data = JSON.stringify(snapshot);
1036
+ if (context.autosaveStrategy === "localStorage") {
1037
+ localStorage.setItem(context.groupId, data);
1038
+ }
1039
+ else {
1040
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1041
+ const ActualClass = universal_cookie_1.default.default || universal_cookie_1.default;
1042
+ const cookies = new ActualClass(null, { path: "/" });
1043
+ cookies.set(context.groupId, data, { path: "/", maxAge: 31536000 });
1044
+ }
1045
+ },
989
1046
  notifyCollapseToggle: ({ context, event }) => {
990
1047
  isEvent(event, ["collapsePanel", "expandPanel"]);
991
1048
  const panel = getPanelWithId(context, event.panelId);
@@ -1009,8 +1066,7 @@ exports.groupMachine = (0, xstate_1.createMachine)({
1009
1066
  }),
1010
1067
  onToggleCollapseComplete: (0, xstate_1.assign)({
1011
1068
  items: ({ context, event: e }) => {
1012
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1013
- const output = e.output;
1069
+ const { output } = e;
1014
1070
  (0, invariant_1.default)(output, "Expected output from animation actor");
1015
1071
  const panel = getPanelWithId(context, output.panelId);
1016
1072
  panel.collapsed = output.action === "collapse";
@@ -1020,27 +1076,42 @@ exports.groupMachine = (0, xstate_1.createMachine)({
1020
1076
  return context.items;
1021
1077
  },
1022
1078
  }),
1023
- updateSize: (0, xstate_1.enqueueActions)(({ context, event, enqueue }) => {
1024
- isEvent(event, ["setSize"]);
1025
- if (event.handleOverflow) {
1026
- enqueue.assign(handleOverflow({ ...context, size: event.size }));
1027
- }
1028
- else {
1029
- enqueue.assign({ size: event.size });
1030
- }
1079
+ updateSize: (0, xstate_1.assign)({
1080
+ size: ({ event }) => {
1081
+ isEvent(event, ["setSize"]);
1082
+ return event.size;
1083
+ },
1031
1084
  }),
1032
1085
  recordActualItemSize: (0, xstate_1.assign)({
1033
1086
  items: ({ context, event }) => {
1034
1087
  isEvent(event, ["setActualItemsSize"]);
1035
- const orientation = context.orientation;
1036
- for (const [id, size] of Object.entries(event.childrenSizes)) {
1037
- const item = context.items.find((i) => i.id === id);
1038
- if (!isPanelData(item)) {
1039
- continue;
1088
+ const withLastKnownSize = context.items.map((i) => {
1089
+ if (!isPanelData(i))
1090
+ return i;
1091
+ const lastKnownSize = event.childrenSizes[i.id] || i.lastKnownSize;
1092
+ return { ...i, lastKnownSize };
1093
+ });
1094
+ let totalSize = 0;
1095
+ for (const item of withLastKnownSize) {
1096
+ if (isPanelData(item)) {
1097
+ const size = item.lastKnownSize?.[context.orientation === "horizontal" ? "width" : "height"];
1098
+ // If any size is 0 don't handle overflow
1099
+ if (!size) {
1100
+ return withLastKnownSize;
1101
+ }
1102
+ totalSize += size;
1103
+ }
1104
+ else {
1105
+ totalSize += item.size.value.toNumber();
1040
1106
  }
1041
- item.currentValue = makePixelUnit(orientation === "horizontal" ? size.width : size.height);
1042
1107
  }
1043
- return commitLayout(context);
1108
+ if (totalSize > getGroupSize(context)) {
1109
+ return handleOverflow({
1110
+ ...context,
1111
+ items: prepareItems({ ...context, items: withLastKnownSize }),
1112
+ }).items;
1113
+ }
1114
+ return withLastKnownSize;
1044
1115
  },
1045
1116
  }),
1046
1117
  updateOrientation: (0, xstate_1.assign)({
@@ -1049,6 +1120,9 @@ exports.groupMachine = (0, xstate_1.createMachine)({
1049
1120
  return event.orientation;
1050
1121
  },
1051
1122
  }),
1123
+ onClearLastKnownSize: (0, xstate_1.assign)({
1124
+ items: ({ context }) => clearLastKnownSize(context.items),
1125
+ }),
1052
1126
  assignPanelData: (0, xstate_1.assign)({
1053
1127
  items: ({ context, event }) => {
1054
1128
  isEvent(event, ["registerPanel"]);
@@ -1059,6 +1133,18 @@ exports.groupMachine = (0, xstate_1.createMachine)({
1059
1133
  });
1060
1134
  },
1061
1135
  }),
1136
+ rebindPanelCallbacks: (0, xstate_1.assign)({
1137
+ items: ({ context, event }) => {
1138
+ isEvent(event, ["rebindPanelCallbacks"]);
1139
+ for (const item of context.items) {
1140
+ if (isPanelData(item) && item.id === event.data.id) {
1141
+ item.onCollapseChange = event.data.onCollapseChange;
1142
+ item.onResize = event.data.onResize;
1143
+ }
1144
+ }
1145
+ return context.items;
1146
+ },
1147
+ }),
1062
1148
  onRegisterDynamicPanel: (0, xstate_1.assign)({
1063
1149
  items: ({ context, event }) => {
1064
1150
  isEvent(event, ["registerDynamicPanel"]);
@@ -1168,7 +1254,11 @@ exports.groupMachine = (0, xstate_1.createMachine)({
1168
1254
  onResize: ({ context }) => {
1169
1255
  for (const item of context.items) {
1170
1256
  if (isPanelData(item)) {
1171
- const pixel = clampUnit(context, item, getUnitPixelValue(context, item.currentValue));
1257
+ const pixel = item.lastKnownSize
1258
+ ? new big_js_1.default(context.orientation === "horizontal"
1259
+ ? item.lastKnownSize.width
1260
+ : item.lastKnownSize.height)
1261
+ : clampUnit(context, item, getUnitPixelValue(context, item.currentValue));
1172
1262
  const groupSize = getGroupSize(context);
1173
1263
  item.onResize?.current?.({
1174
1264
  pixel: pixel.toNumber(),