@neovici/cosmoz-omnitable 16.1.1 → 16.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"use-hash-state.d.ts","sourceRoot":"","sources":["../../src/lib/use-hash-state.js"],"names":[],"mappings":"AA0CO;;UA4BN"}
1
+ {"version":3,"file":"use-hash-state.d.ts","sourceRoot":"","sources":["../../src/lib/use-hash-state.js"],"names":[],"mappings":"AA0CO;;UA6CN"}
@@ -1,4 +1,4 @@
1
- import { useCallback, useState } from '@pionjs/pion';
1
+ import { useCallback, useEffect, useMemo, useState } from '@pionjs/pion';
2
2
  import { navigate } from '@neovici/cosmoz-router';
3
3
  import { identity, invoke } from '@neovici/cosmoz-utils/function';
4
4
  import { hashUrl, multiParse, singleParse, } from '@neovici/cosmoz-utils/location';
@@ -18,7 +18,9 @@ const makeLinker = (parameterize) => (hashParam, value, codec = identity) => {
18
18
  export const useHashState = (initial, param, { suffix = '', read, write, multi } = {}) => {
19
19
  const [link, parseHash] = multi
20
20
  ? [multiLink, multiParse]
21
- : [singleLink, singleParse], [state, _setState] = useState(() => param == null ? initial : (parseHash(param + suffix, read) ?? initial)), setState = useCallback((state) => _setState((oldState) => {
21
+ : [singleLink, singleParse],
22
+ // Track if hash param was explicitly in URL on mount
23
+ hashWasExplicit = useMemo(() => param != null && parseHash(param + suffix, read) != null, []), [state, _setState] = useState(() => param == null ? initial : (parseHash(param + suffix, read) ?? initial)), setState = useCallback((state) => _setState((oldState) => {
22
24
  const newState = invoke(state, oldState);
23
25
  if (param != null) {
24
26
  navigate(link(param + suffix, newState, write), null, {
@@ -27,6 +29,18 @@ export const useHashState = (initial, param, { suffix = '', read, write, multi }
27
29
  }
28
30
  return newState;
29
31
  }), [param, suffix, link, write]);
32
+ // Sync state with initial when:
33
+ // - initial changes (e.g., savedSettings loaded async)
34
+ // - AND hash was NOT explicitly provided in URL on mount
35
+ useEffect(() => {
36
+ if (param == null)
37
+ return;
38
+ if (hashWasExplicit)
39
+ return;
40
+ if (initial != null) {
41
+ setState(initial);
42
+ }
43
+ }, [initial, param, hashWasExplicit, setState]);
30
44
  return [state, setState];
31
45
  };
32
46
  //# sourceMappingURL=use-hash-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-hash-state.js","sourceRoot":"","sources":["../../src/lib/use-hash-state.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-hash-state.js","sourceRoot":"","sources":["../../src/lib/use-hash-state.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neovici/cosmoz-omnitable",
3
- "version": "16.1.1",
3
+ "version": "16.2.0",
4
4
  "description": "[![Build Status](https://travis-ci.org/Neovici/cosmoz-omnitable.svg?branch=master)](https://travis-ci.org/Neovici/cosmoz-omnitable)",
5
5
  "keywords": [
6
6
  "web-components"
@@ -129,6 +129,7 @@
129
129
  "@commitlint/config-conventional": "^20.0.0",
130
130
  "@neovici/cfg": "^2.5.1",
131
131
  "@neovici/cosmoz-viewinfo": "^4.0.0",
132
+ "@neovici/testing": "^2.1.1",
132
133
  "@open-wc/testing": "^4.0.0",
133
134
  "@polymer/iron-test-helpers": "^3.0.0",
134
135
  "@polymer/paper-button": "^3.0.0",