@trackunit/react-table 2.11.5 → 2.11.7-alpha-85fb68bb35f.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/index.cjs.js CHANGED
@@ -569,6 +569,14 @@ const isOwnedByCurrentUser = (ownerId, clientSideUserId) => ownerId === undefine
569
569
  * write — their storage changes only when they edit the table. Switching
570
570
  * back to the opener does not write the hash that is on screen then.
571
571
  *
572
+ * A layout that exists only in localStorage is not copied into the hash on
573
+ * load. Doing that put the current layout into every history entry, so a
574
+ * later visit via history, a bookmark, or a login redirect replayed an
575
+ * older layout and saved it over the current one (GLU-2396). The hash is
576
+ * written when the user changes the table, replacing the current history
577
+ * entry, or when they open a URL that already carries one. A push per edit
578
+ * would leave the same replayable entries behind.
579
+ *
572
580
  * `onTableStateChange` takes a *partial* state and merges it into whatever
573
581
  * was reported earlier in the session, so a consumer can report a single
574
582
  * slice (e.g. only `expanded`) without the omitted fields falling back to
@@ -607,7 +615,10 @@ const useTablePersistence = (persistenceKey) => {
607
615
  validate: validateTableState,
608
616
  toUrlValue,
609
617
  fromUrlValue,
610
- replace: false,
618
+ // Replace, so a second edit updates this visit's history entry. A push
619
+ // per column change left older layouts in history, and a later full load
620
+ // of one of them saved that layout over the newer one (GLU-2396).
621
+ replace: true,
611
622
  clientSideUserId,
612
623
  localStorageEnabled,
613
624
  // `toUrlValue` strips fields that should not be shareable from the URL.
package/index.esm.js CHANGED
@@ -568,6 +568,14 @@ const isOwnedByCurrentUser = (ownerId, clientSideUserId) => ownerId === undefine
568
568
  * write — their storage changes only when they edit the table. Switching
569
569
  * back to the opener does not write the hash that is on screen then.
570
570
  *
571
+ * A layout that exists only in localStorage is not copied into the hash on
572
+ * load. Doing that put the current layout into every history entry, so a
573
+ * later visit via history, a bookmark, or a login redirect replayed an
574
+ * older layout and saved it over the current one (GLU-2396). The hash is
575
+ * written when the user changes the table, replacing the current history
576
+ * entry, or when they open a URL that already carries one. A push per edit
577
+ * would leave the same replayable entries behind.
578
+ *
571
579
  * `onTableStateChange` takes a *partial* state and merges it into whatever
572
580
  * was reported earlier in the session, so a consumer can report a single
573
581
  * slice (e.g. only `expanded`) without the omitted fields falling back to
@@ -606,7 +614,10 @@ const useTablePersistence = (persistenceKey) => {
606
614
  validate: validateTableState,
607
615
  toUrlValue,
608
616
  fromUrlValue,
609
- replace: false,
617
+ // Replace, so a second edit updates this visit's history entry. A push
618
+ // per column change left older layouts in history, and a later full load
619
+ // of one of them saved that layout over the newer one (GLU-2396).
620
+ replace: true,
610
621
  clientSideUserId,
611
622
  localStorageEnabled,
612
623
  // `toUrlValue` strips fields that should not be shareable from the URL.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../../../libs/react/table/migrations/entry.ts"],"names":[],"mappings":"","sourcesContent":["export {};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/react-table",
3
- "version": "2.11.5",
3
+ "version": "2.11.7-alpha-85fb68bb35f.0",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -11,15 +11,15 @@
11
11
  "react-dnd": "16.0.1",
12
12
  "react-dnd-html5-backend": "16.0.1",
13
13
  "tailwind-merge": "^2.0.0",
14
- "@trackunit/react-components": "3.7.4",
15
- "@trackunit/react-core-hooks": "1.25.3",
16
- "@trackunit/shared-utils": "1.19.3",
17
- "@trackunit/css-class-variance-utilities": "2.3.3",
18
- "@trackunit/ui-icons": "1.17.3",
19
- "@trackunit/react-table-base-components": "2.12.5",
20
- "@trackunit/react-form-components": "2.10.5",
21
- "@trackunit/i18n-library-translation": "2.8.3",
22
- "@trackunit/iris-app-runtime-core-api": "1.21.3",
14
+ "@trackunit/react-components": "3.8.1-alpha-85fb68bb35f.0",
15
+ "@trackunit/react-core-hooks": "1.25.4-alpha-85fb68bb35f.0",
16
+ "@trackunit/shared-utils": "1.19.4-alpha-85fb68bb35f.0",
17
+ "@trackunit/css-class-variance-utilities": "2.3.4-alpha-85fb68bb35f.0",
18
+ "@trackunit/ui-icons": "1.17.4-alpha-85fb68bb35f.0",
19
+ "@trackunit/react-table-base-components": "2.12.7-alpha-85fb68bb35f.0",
20
+ "@trackunit/react-form-components": "2.10.7-alpha-85fb68bb35f.0",
21
+ "@trackunit/i18n-library-translation": "2.8.4-alpha-85fb68bb35f.0",
22
+ "@trackunit/iris-app-runtime-core-api": "1.21.4-alpha-85fb68bb35f.0",
23
23
  "zod": "^3.25.76"
24
24
  },
25
25
  "peerDependencies": {
@@ -88,6 +88,14 @@ type UseTablePersistenceResult = {
88
88
  * write — their storage changes only when they edit the table. Switching
89
89
  * back to the opener does not write the hash that is on screen then.
90
90
  *
91
+ * A layout that exists only in localStorage is not copied into the hash on
92
+ * load. Doing that put the current layout into every history entry, so a
93
+ * later visit via history, a bookmark, or a login redirect replayed an
94
+ * older layout and saved it over the current one (GLU-2396). The hash is
95
+ * written when the user changes the table, replacing the current history
96
+ * entry, or when they open a URL that already carries one. A push per edit
97
+ * would leave the same replayable entries behind.
98
+ *
91
99
  * `onTableStateChange` takes a *partial* state and merges it into whatever
92
100
  * was reported earlier in the session, so a consumer can report a single
93
101
  * slice (e.g. only `expanded`) without the omitted fields falling back to