@cyclone-ui/state 0.0.31 → 0.0.33
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/CHANGELOG.md +16 -0
- package/dist/base/atoms/atom-with-broadcast.cjs +1 -44
- package/dist/base/atoms/atom-with-broadcast.mjs +1 -44
- package/dist/base/atoms/atom-with-broadcast.mjs.map +1 -1
- package/dist/base/atoms/atom-with-compare.cjs +1 -11
- package/dist/base/atoms/atom-with-compare.mjs +1 -11
- package/dist/base/atoms/atom-with-compare.mjs.map +1 -1
- package/dist/base/atoms/atom-with-debounce.cjs +1 -51
- package/dist/base/atoms/atom-with-debounce.mjs +1 -51
- package/dist/base/atoms/atom-with-debounce.mjs.map +1 -1
- package/dist/base/atoms/atom-with-effect.cjs +1 -122
- package/dist/base/atoms/atom-with-effect.mjs +1 -119
- package/dist/base/atoms/atom-with-effect.mjs.map +1 -1
- package/dist/base/atoms/atom-with-listeners.cjs +1 -35
- package/dist/base/atoms/atom-with-listeners.mjs +1 -35
- package/dist/base/atoms/atom-with-listeners.mjs.map +1 -1
- package/dist/base/atoms/atom-with-pending.cjs +1 -13
- package/dist/base/atoms/atom-with-pending.mjs +1 -13
- package/dist/base/atoms/atom-with-pending.mjs.map +1 -1
- package/dist/base/atoms/atom-with-refresh-and-default.cjs +1 -18
- package/dist/base/atoms/atom-with-refresh-and-default.mjs +1 -18
- package/dist/base/atoms/atom-with-refresh-and-default.mjs.map +1 -1
- package/dist/base/atoms/atom-with-refresh.cjs +1 -12
- package/dist/base/atoms/atom-with-refresh.mjs +1 -12
- package/dist/base/atoms/atom-with-refresh.mjs.map +1 -1
- package/dist/base/atoms/atom-with-toggle.cjs +1 -12
- package/dist/base/atoms/atom-with-toggle.mjs +1 -12
- package/dist/base/atoms/atom-with-toggle.mjs.map +1 -1
- package/dist/base/atoms/atom-with-web-storage.cjs +1 -47
- package/dist/base/atoms/atom-with-web-storage.mjs +1 -46
- package/dist/base/atoms/atom-with-web-storage.mjs.map +1 -1
- package/dist/base/atoms/atom-with-wrapper.cjs +1 -24
- package/dist/base/atoms/atom-with-wrapper.mjs +1 -24
- package/dist/base/atoms/atom-with-wrapper.mjs.map +1 -1
- package/dist/base/atoms/base-atom.cjs +1 -24
- package/dist/base/atoms/base-atom.mjs +1 -24
- package/dist/base/atoms/base-atom.mjs.map +1 -1
- package/dist/base/atoms/index.cjs +1 -24
- package/dist/base/atoms/index.mjs +1 -13
- package/dist/base/hooks/index.cjs +1 -9
- package/dist/base/hooks/index.mjs +1 -6
- package/dist/base/hooks/use-atom-effect.cjs +1 -16
- package/dist/base/hooks/use-atom-effect.mjs +1 -16
- package/dist/base/hooks/use-atom-effect.mjs.map +1 -1
- package/dist/base/hooks/use-hydrate-molecule.cjs +1 -16
- package/dist/base/hooks/use-hydrate-molecule.mjs +1 -16
- package/dist/base/hooks/use-hydrate-molecule.mjs.map +1 -1
- package/dist/base/hooks/use-prepare-atoms.cjs +1 -19
- package/dist/base/hooks/use-prepare-atoms.mjs +1 -19
- package/dist/base/hooks/use-prepare-atoms.mjs.map +1 -1
- package/dist/base/hooks/use-sync-molecule.cjs +1 -36
- package/dist/base/hooks/use-sync-molecule.mjs +1 -36
- package/dist/base/hooks/use-sync-molecule.mjs.map +1 -1
- package/dist/base/index.cjs +1 -47
- package/dist/base/index.mjs +1 -24
- package/dist/base/utilities/create-molecule.cjs +1 -104
- package/dist/base/utilities/create-molecule.mjs +1 -101
- package/dist/base/utilities/create-molecule.mjs.map +1 -1
- package/dist/base/utilities/create-web-storage.cjs +1 -54
- package/dist/base/utilities/create-web-storage.mjs +1 -54
- package/dist/base/utilities/create-web-storage.mjs.map +1 -1
- package/dist/base/utilities/debounce.cjs +1 -51
- package/dist/base/utilities/debounce.mjs +1 -51
- package/dist/base/utilities/debounce.mjs.map +1 -1
- package/dist/base/utilities/index.cjs +1 -13
- package/dist/base/utilities/index.mjs +1 -6
- package/dist/base/utilities/is-atom.cjs +1 -47
- package/dist/base/utilities/is-atom.mjs +1 -45
- package/dist/base/utilities/is-atom.mjs.map +1 -1
- package/dist/base/utilities/set-atom-debug.cjs +1 -23
- package/dist/base/utilities/set-atom-debug.mjs +1 -22
- package/dist/base/utilities/set-atom-debug.mjs.map +1 -1
- package/dist/form/atoms/atom-with-field.cjs +1 -22
- package/dist/form/atoms/atom-with-field.mjs +1 -22
- package/dist/form/atoms/atom-with-field.mjs.map +1 -1
- package/dist/form/atoms/atom-with-messages.cjs +1 -84
- package/dist/form/atoms/atom-with-messages.mjs +1 -77
- package/dist/form/atoms/atom-with-messages.mjs.map +1 -1
- package/dist/form/hooks/index.cjs +1 -7
- package/dist/form/hooks/index.mjs +1 -5
- package/dist/form/hooks/use-field-actions.cjs +1 -91
- package/dist/form/hooks/use-field-actions.mjs +1 -91
- package/dist/form/hooks/use-field-actions.mjs.map +1 -1
- package/dist/form/hooks/use-field-ref.cjs +1 -15
- package/dist/form/hooks/use-field-ref.mjs +1 -15
- package/dist/form/hooks/use-field-ref.mjs.map +1 -1
- package/dist/form/hooks/use-form-actions.cjs +1 -68
- package/dist/form/hooks/use-form-actions.mjs +1 -68
- package/dist/form/hooks/use-form-actions.mjs.map +1 -1
- package/dist/form/index.cjs +1 -30
- package/dist/form/index.mjs +1 -17
- package/dist/form/molecules/field-molecule.cjs +1 -156
- package/dist/form/molecules/field-molecule.mjs +1 -155
- package/dist/form/molecules/field-molecule.mjs.map +1 -1
- package/dist/form/molecules/form-molecule.cjs +1 -179
- package/dist/form/molecules/form-molecule.mjs +1 -178
- package/dist/form/molecules/form-molecule.mjs.map +1 -1
- package/dist/form/molecules/index.cjs +1 -7
- package/dist/form/molecules/index.mjs +1 -4
- package/dist/form/providers/FieldProvider.cjs +1 -102
- package/dist/form/providers/FieldProvider.mjs +1 -102
- package/dist/form/providers/FieldProvider.mjs.map +1 -1
- package/dist/form/providers/FormProvider.cjs +1 -65
- package/dist/form/providers/FormProvider.mjs +1 -65
- package/dist/form/providers/FormProvider.mjs.map +1 -1
- package/dist/form/providers/index.cjs +1 -5
- package/dist/form/providers/index.mjs +1 -4
- package/dist/form/types.cjs +1 -12
- package/dist/form/types.mjs +1 -12
- package/dist/form/types.mjs.map +1 -1
- package/dist/form/utilities/abort-error.cjs +1 -14
- package/dist/form/utilities/abort-error.mjs +1 -14
- package/dist/form/utilities/abort-error.mjs.map +1 -1
- package/dist/form/utilities/index.cjs +1 -7
- package/dist/form/utilities/index.mjs +1 -5
- package/dist/form/utilities/is-validation-results.cjs +1 -8
- package/dist/form/utilities/is-validation-results.mjs +1 -8
- package/dist/form/utilities/is-validation-results.mjs.map +1 -1
- package/dist/form/utilities/validators.cjs +1 -7
- package/dist/form/utilities/validators.mjs +1 -7
- package/dist/form/utilities/validators.mjs.map +1 -1
- package/dist/index.cjs +1 -46
- package/dist/index.mjs +1 -22
- package/dist/message/components/MessageViewport.cjs +1 -20
- package/dist/message/components/MessageViewport.mjs +1 -20
- package/dist/message/components/MessageViewport.mjs.map +1 -1
- package/dist/message/components/index.cjs +1 -3
- package/dist/message/components/index.mjs +1 -3
- package/dist/message/hooks/index.cjs +1 -3
- package/dist/message/hooks/index.mjs +1 -3
- package/dist/message/hooks/use-message-actions.cjs +1 -63
- package/dist/message/hooks/use-message-actions.mjs +1 -63
- package/dist/message/hooks/use-message-actions.mjs.map +1 -1
- package/dist/message/index.cjs +1 -23
- package/dist/message/index.mjs +1 -8
- package/dist/message/providers/MessageProvider.cjs +1 -15
- package/dist/message/providers/MessageProvider.mjs +1 -15
- package/dist/message/providers/MessageProvider.mjs.map +1 -1
- package/dist/theme/hooks/index.cjs +1 -7
- package/dist/theme/hooks/index.mjs +1 -4
- package/dist/theme/hooks/use-theme-actions.cjs +1 -20
- package/dist/theme/hooks/use-theme-actions.mjs +1 -20
- package/dist/theme/hooks/use-theme-actions.mjs.map +1 -1
- package/dist/theme/hooks/use-theme-store.cjs +1 -60
- package/dist/theme/hooks/use-theme-store.mjs +1 -58
- package/dist/theme/hooks/use-theme-store.mjs.map +1 -1
- package/dist/theme/index.cjs +1 -17
- package/dist/theme/index.mjs +1 -9
- package/dist/theme/molecules/index.cjs +1 -3
- package/dist/theme/molecules/index.mjs +1 -3
- package/dist/theme/molecules/theme-molecule.cjs +1 -13
- package/dist/theme/molecules/theme-molecule.mjs +1 -13
- package/dist/theme/molecules/theme-molecule.mjs.map +1 -1
- package/dist/theme/providers/ThemeProvider.cjs +1 -29
- package/dist/theme/providers/ThemeProvider.mjs +1 -29
- package/dist/theme/providers/ThemeProvider.mjs.map +1 -1
- package/dist/theme/utilities/theme-helpers.cjs +1 -70
- package/dist/theme/utilities/theme-helpers.mjs +1 -69
- package/dist/theme/utilities/theme-helpers.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -1,19 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
// src/base/atoms/atom-with-refresh-and-default.ts
|
|
4
|
-
const atomWithRefreshAndDefault = (refreshAtom, getDefault) => {
|
|
5
|
-
const overwrittenAtom = baseAtom(null);
|
|
6
|
-
return baseAtom((get) => {
|
|
7
|
-
const lastState = get(overwrittenAtom);
|
|
8
|
-
if (lastState && lastState.refresh === get(refreshAtom)) return lastState.value;
|
|
9
|
-
return getDefault(get);
|
|
10
|
-
}, (get, set, update) => {
|
|
11
|
-
set(overwrittenAtom, {
|
|
12
|
-
refresh: get(refreshAtom),
|
|
13
|
-
value: update
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export { atomWithRefreshAndDefault };
|
|
1
|
+
import{baseAtom as e}from"./base-atom.mjs";const t=(t,n)=>{let r=e(null);return e(e=>{let i=e(r);return i&&i.refresh===e(t)?i.value:n(e)},(e,n,i)=>{n(r,{refresh:e(t),value:i})})};export{t as atomWithRefreshAndDefault};
|
|
19
2
|
//# sourceMappingURL=atom-with-refresh-and-default.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atom-with-refresh-and-default.mjs","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"atom-with-refresh-and-default.mjs","names":["atomWithRefreshAndDefault","overwrittenAtom","baseAtom","lastState","get","refreshAtom","getDefault","set","update"],"sources":[],"mappings":""}
|
|
@@ -1,12 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
// src/base/atoms/atom-with-refresh.ts
|
|
4
|
-
function atomWithRefresh(fn) {
|
|
5
|
-
const refreshCounter = require_base_atom.baseAtom(0);
|
|
6
|
-
return require_base_atom.baseAtom((get) => {
|
|
7
|
-
get(refreshCounter);
|
|
8
|
-
return fn(get);
|
|
9
|
-
}, (_, set) => set(refreshCounter, (i) => i + 1));
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
exports.atomWithRefresh = atomWithRefresh;
|
|
1
|
+
const e=require("./base-atom.cjs");function t(t){let n=e.baseAtom(0);return e.baseAtom(e=>(e(n),t(e)),(e,t)=>t(n,e=>e+1))}exports.atomWithRefresh=t;
|
|
@@ -1,13 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
// src/base/atoms/atom-with-refresh.ts
|
|
4
|
-
function atomWithRefresh(fn) {
|
|
5
|
-
const refreshCounter = baseAtom(0);
|
|
6
|
-
return baseAtom((get) => {
|
|
7
|
-
get(refreshCounter);
|
|
8
|
-
return fn(get);
|
|
9
|
-
}, (_, set) => set(refreshCounter, (i) => i + 1));
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export { atomWithRefresh };
|
|
1
|
+
import{baseAtom as e}from"./base-atom.mjs";function t(t){let n=e(0);return e(e=>(e(n),t(e)),(e,t)=>t(n,e=>e+1))}export{t as atomWithRefresh};
|
|
13
2
|
//# sourceMappingURL=atom-with-refresh.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atom-with-refresh.mjs","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"atom-with-refresh.mjs","names":["atomWithRefresh","refreshCounter","baseAtom","get","fn","set","i"],"sources":[],"mappings":""}
|
|
@@ -1,12 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
// src/base/atoms/atom-with-toggle.ts
|
|
4
|
-
function atomWithToggle(initialValue) {
|
|
5
|
-
const anAtom = require_base_atom.baseAtom(initialValue, (get, set, nextValue) => {
|
|
6
|
-
const update = nextValue ?? !get(anAtom);
|
|
7
|
-
set(anAtom, update);
|
|
8
|
-
});
|
|
9
|
-
return anAtom;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
exports.atomWithToggle = atomWithToggle;
|
|
1
|
+
const e=require("./base-atom.cjs");function t(t){let n=e.baseAtom(t,(e,t,r)=>{let i=r??!e(n);t(n,i)});return n}exports.atomWithToggle=t;
|
|
@@ -1,13 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
// src/base/atoms/atom-with-toggle.ts
|
|
4
|
-
function atomWithToggle(initialValue) {
|
|
5
|
-
const anAtom = baseAtom(initialValue, (get, set, nextValue) => {
|
|
6
|
-
const update = nextValue ?? !get(anAtom);
|
|
7
|
-
set(anAtom, update);
|
|
8
|
-
});
|
|
9
|
-
return anAtom;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export { atomWithToggle };
|
|
1
|
+
import{baseAtom as e}from"./base-atom.mjs";function t(t){let n=e(t,(e,t,r)=>{let i=r??!e(n);t(n,i)});return n}export{t as atomWithToggle};
|
|
13
2
|
//# sourceMappingURL=atom-with-toggle.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atom-with-toggle.mjs","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"atom-with-toggle.mjs","names":["atomWithToggle","anAtom","baseAtom","initialValue","update","nextValue","get","set"],"sources":[],"mappings":""}
|
|
@@ -1,47 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
const require_base_atom = require("./base-atom.cjs");
|
|
3
|
-
const require_atom_with_broadcast = require("./atom-with-broadcast.cjs");
|
|
4
|
-
const require_atom_with_debounce = require("./atom-with-debounce.cjs");
|
|
5
|
-
const require_atom_with_effect = require("./atom-with-effect.cjs");
|
|
6
|
-
const require_create_web_storage = require("../utilities/create-web-storage.cjs");
|
|
7
|
-
let _stryke_type_checks_is_function = require("@stryke/type-checks/is-function");
|
|
8
|
-
let jotai_utils = require("jotai/utils");
|
|
9
|
-
|
|
10
|
-
// src/base/atoms/atom-with-web-storage.ts
|
|
11
|
-
const getWebStorage = () => require_create_web_storage.createWebStorage(() => localStorage);
|
|
12
|
-
/**
|
|
13
|
-
* Creates an atom that persists its state in external storage and sends a broadcast message to other tabs/windows when the state changes.
|
|
14
|
-
*
|
|
15
|
-
* @param key - The key to use for the storage
|
|
16
|
-
* @param initialValue - The initial value of the atom
|
|
17
|
-
* @param webStorage - The storage to use
|
|
18
|
-
* @returns An atom that persists its state in external storage and sends a broadcast message to other tabs/windows when the state changes.
|
|
19
|
-
*/
|
|
20
|
-
function atomWithWebStorage(key, initialValueOrAtom, webStorage = getWebStorage(), options) {
|
|
21
|
-
const debounceMs = options?.debounceMs ?? 500;
|
|
22
|
-
const getOnInit = options?.getOnInit ?? true;
|
|
23
|
-
const valueAtom = require_is_atom.isAtom(initialValueOrAtom) ? initialValueOrAtom : require_base_atom.baseAtom(initialValueOrAtom);
|
|
24
|
-
const debouncedStorageAtom = require_atom_with_debounce.atomWithDebounce((0, jotai_utils.atomWithStorage)(key, require_is_atom.isAtom(initialValueOrAtom) ? void 0 : initialValueOrAtom, webStorage, { getOnInit }), debounceMs);
|
|
25
|
-
const debouncedBroadcastAtom = require_atom_with_debounce.atomWithDebounce(require_atom_with_broadcast.atomWithBroadcast(key, require_is_atom.isAtom(initialValueOrAtom) ? void 0 : initialValueOrAtom), debounceMs);
|
|
26
|
-
const wrapperAtom = require_base_atom.baseAtom((get) => {
|
|
27
|
-
return get(valueAtom);
|
|
28
|
-
}, (get, set, update) => {
|
|
29
|
-
const nextValue = (0, _stryke_type_checks_is_function.isFunction)(update) ? update(get(valueAtom)) : update;
|
|
30
|
-
set(valueAtom, nextValue);
|
|
31
|
-
set(debouncedStorageAtom.debouncedValueAtom, nextValue);
|
|
32
|
-
set(debouncedBroadcastAtom.debouncedValueAtom, nextValue);
|
|
33
|
-
});
|
|
34
|
-
const effectAtom = require_atom_with_effect.atomWithEffect((get, set) => {
|
|
35
|
-
const next = get(debouncedBroadcastAtom.debouncedValueAtom);
|
|
36
|
-
if (next !== get(wrapperAtom)) set(wrapperAtom, next);
|
|
37
|
-
});
|
|
38
|
-
return require_base_atom.baseAtom((get) => {
|
|
39
|
-
get(effectAtom);
|
|
40
|
-
return get(wrapperAtom);
|
|
41
|
-
}, (get, set, update) => {
|
|
42
|
-
set(wrapperAtom, update);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
exports.atomWithWebStorage = atomWithWebStorage;
|
|
47
|
-
exports.getWebStorage = getWebStorage;
|
|
1
|
+
const e=require("../utilities/is-atom.cjs"),t=require("./base-atom.cjs"),n=require("./atom-with-broadcast.cjs"),r=require("./atom-with-debounce.cjs"),i=require("./atom-with-effect.cjs"),a=require("../utilities/create-web-storage.cjs");let o=require("@stryke/type-checks/is-function"),s=require("jotai/utils");const c=()=>a.createWebStorage(()=>localStorage);function l(a,l,u=c(),d){let f=d?.debounceMs??500,p=d?.getOnInit??!0,m=e.isAtom(l)?l:t.baseAtom(l),h=r.atomWithDebounce((0,s.atomWithStorage)(a,e.isAtom(l)?void 0:l,u,{getOnInit:p}),f),g=r.atomWithDebounce(n.atomWithBroadcast(a,e.isAtom(l)?void 0:l),f),_=t.baseAtom(e=>e(m),(e,t,n)=>{let r=(0,o.isFunction)(n)?n(e(m)):n;t(m,r),t(h.debouncedValueAtom,r),t(g.debouncedValueAtom,r)}),v=i.atomWithEffect((e,t)=>{let n=e(g.debouncedValueAtom);n!==e(_)&&t(_,n)});return t.baseAtom(e=>(e(v),e(_)),(e,t,n)=>{t(_,n)})}exports.atomWithWebStorage=l,exports.getWebStorage=c;
|
|
@@ -1,47 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { baseAtom } from "./base-atom.mjs";
|
|
3
|
-
import { atomWithBroadcast } from "./atom-with-broadcast.mjs";
|
|
4
|
-
import { atomWithDebounce } from "./atom-with-debounce.mjs";
|
|
5
|
-
import { atomWithEffect } from "./atom-with-effect.mjs";
|
|
6
|
-
import { createWebStorage } from "../utilities/create-web-storage.mjs";
|
|
7
|
-
import { isFunction } from "@stryke/type-checks/is-function";
|
|
8
|
-
import { atomWithStorage } from "jotai/utils";
|
|
9
|
-
|
|
10
|
-
// src/base/atoms/atom-with-web-storage.ts
|
|
11
|
-
const getWebStorage = () => createWebStorage(() => localStorage);
|
|
12
|
-
/**
|
|
13
|
-
* Creates an atom that persists its state in external storage and sends a broadcast message to other tabs/windows when the state changes.
|
|
14
|
-
*
|
|
15
|
-
* @param key - The key to use for the storage
|
|
16
|
-
* @param initialValue - The initial value of the atom
|
|
17
|
-
* @param webStorage - The storage to use
|
|
18
|
-
* @returns An atom that persists its state in external storage and sends a broadcast message to other tabs/windows when the state changes.
|
|
19
|
-
*/
|
|
20
|
-
function atomWithWebStorage(key, initialValueOrAtom, webStorage = getWebStorage(), options) {
|
|
21
|
-
const debounceMs = options?.debounceMs ?? 500;
|
|
22
|
-
const getOnInit = options?.getOnInit ?? true;
|
|
23
|
-
const valueAtom = isAtom(initialValueOrAtom) ? initialValueOrAtom : baseAtom(initialValueOrAtom);
|
|
24
|
-
const debouncedStorageAtom = atomWithDebounce(atomWithStorage(key, isAtom(initialValueOrAtom) ? void 0 : initialValueOrAtom, webStorage, { getOnInit }), debounceMs);
|
|
25
|
-
const debouncedBroadcastAtom = atomWithDebounce(atomWithBroadcast(key, isAtom(initialValueOrAtom) ? void 0 : initialValueOrAtom), debounceMs);
|
|
26
|
-
const wrapperAtom = baseAtom((get) => {
|
|
27
|
-
return get(valueAtom);
|
|
28
|
-
}, (get, set, update) => {
|
|
29
|
-
const nextValue = isFunction(update) ? update(get(valueAtom)) : update;
|
|
30
|
-
set(valueAtom, nextValue);
|
|
31
|
-
set(debouncedStorageAtom.debouncedValueAtom, nextValue);
|
|
32
|
-
set(debouncedBroadcastAtom.debouncedValueAtom, nextValue);
|
|
33
|
-
});
|
|
34
|
-
const effectAtom = atomWithEffect((get, set) => {
|
|
35
|
-
const next = get(debouncedBroadcastAtom.debouncedValueAtom);
|
|
36
|
-
if (next !== get(wrapperAtom)) set(wrapperAtom, next);
|
|
37
|
-
});
|
|
38
|
-
return baseAtom((get) => {
|
|
39
|
-
get(effectAtom);
|
|
40
|
-
return get(wrapperAtom);
|
|
41
|
-
}, (get, set, update) => {
|
|
42
|
-
set(wrapperAtom, update);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export { atomWithWebStorage, getWebStorage };
|
|
1
|
+
import{isAtom as e}from"../utilities/is-atom.mjs";import{baseAtom as t}from"./base-atom.mjs";import{atomWithBroadcast as n}from"./atom-with-broadcast.mjs";import{atomWithDebounce as r}from"./atom-with-debounce.mjs";import{atomWithEffect as i}from"./atom-with-effect.mjs";import{createWebStorage as a}from"../utilities/create-web-storage.mjs";import{isFunction as o}from"@stryke/type-checks/is-function";import{atomWithStorage as s}from"jotai/utils";const c=()=>a(()=>localStorage);function l(a,l,u=c(),d){let f=d?.debounceMs??500,p=d?.getOnInit??!0,m=e(l)?l:t(l),h=r(s(a,e(l)?void 0:l,u,{getOnInit:p}),f),g=r(n(a,e(l)?void 0:l),f),_=t(e=>e(m),(e,t,n)=>{let r=o(n)?n(e(m)):n;t(m,r),t(h.debouncedValueAtom,r),t(g.debouncedValueAtom,r)}),v=i((e,t)=>{let n=e(g.debouncedValueAtom);n!==e(_)&&t(_,n)});return t(e=>(e(v),e(_)),(e,t,n)=>{t(_,n)})}export{l as atomWithWebStorage,c as getWebStorage};
|
|
47
2
|
//# sourceMappingURL=atom-with-web-storage.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atom-with-web-storage.mjs","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"atom-with-web-storage.mjs","names":["getWebStorage","createWebStorage","atomWithWebStorage","debounceMs","options","getOnInit","valueAtom","isAtom","initialValueOrAtom","baseAtom","debouncedStorageAtom","atomWithDebounce","atomWithStorage","key","webStorage","debouncedBroadcastAtom","atomWithBroadcast","wrapperAtom","get","nextValue","isFunction","update","set","effectAtom","atomWithEffect","next"],"sources":[],"mappings":""}
|
|
@@ -1,24 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
let _stryke_type_checks_is_function = require("@stryke/type-checks/is-function");
|
|
3
|
-
|
|
4
|
-
// src/base/atoms/atom-with-wrapper.ts
|
|
5
|
-
const wrapFn = (fnOrValue) => (0, _stryke_type_checks_is_function.isFunction)(fnOrValue) ? { __fn: fnOrValue } : fnOrValue;
|
|
6
|
-
const unwrapFn = (wrappedFnOrValue) => wrappedFnOrValue && typeof wrappedFnOrValue === "object" && "__fn" in wrappedFnOrValue ? wrappedFnOrValue.__fn : wrappedFnOrValue;
|
|
7
|
-
/**
|
|
8
|
-
* Create an atom with a wrapper that allows functions as values.
|
|
9
|
-
*
|
|
10
|
-
* @remarks
|
|
11
|
-
* Jotai atoms don't allow functions as values by default. This function is a
|
|
12
|
-
* drop-in replacement for `atom` that wraps functions in an object while
|
|
13
|
-
* leaving non-functions unchanged. The wrapper object should be completely
|
|
14
|
-
* invisible to consumers of the atom.
|
|
15
|
-
*
|
|
16
|
-
* @param initialValue - The initial value of the atom
|
|
17
|
-
* @returns An atom with a wrapper that allows functions as values.
|
|
18
|
-
*/
|
|
19
|
-
const atomWithWrapper = (initialValue) => {
|
|
20
|
-
const rootAtom = require_base_atom.baseAtom(wrapFn(initialValue));
|
|
21
|
-
return require_base_atom.baseAtom((get) => unwrapFn(get(rootAtom)), (_get, set, value) => set(rootAtom, wrapFn(value)));
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
exports.atomWithWrapper = atomWithWrapper;
|
|
1
|
+
const e=require("./base-atom.cjs");let t=require("@stryke/type-checks/is-function");const n=e=>(0,t.isFunction)(e)?{__fn:e}:e,r=e=>e&&typeof e==`object`&&`__fn`in e?e.__fn:e,i=t=>{let i=e.baseAtom(n(t));return e.baseAtom(e=>r(e(i)),(e,t,r)=>t(i,n(r)))};exports.atomWithWrapper=i;
|
|
@@ -1,25 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { isFunction } from "@stryke/type-checks/is-function";
|
|
3
|
-
|
|
4
|
-
// src/base/atoms/atom-with-wrapper.ts
|
|
5
|
-
const wrapFn = (fnOrValue) => isFunction(fnOrValue) ? { __fn: fnOrValue } : fnOrValue;
|
|
6
|
-
const unwrapFn = (wrappedFnOrValue) => wrappedFnOrValue && typeof wrappedFnOrValue === "object" && "__fn" in wrappedFnOrValue ? wrappedFnOrValue.__fn : wrappedFnOrValue;
|
|
7
|
-
/**
|
|
8
|
-
* Create an atom with a wrapper that allows functions as values.
|
|
9
|
-
*
|
|
10
|
-
* @remarks
|
|
11
|
-
* Jotai atoms don't allow functions as values by default. This function is a
|
|
12
|
-
* drop-in replacement for `atom` that wraps functions in an object while
|
|
13
|
-
* leaving non-functions unchanged. The wrapper object should be completely
|
|
14
|
-
* invisible to consumers of the atom.
|
|
15
|
-
*
|
|
16
|
-
* @param initialValue - The initial value of the atom
|
|
17
|
-
* @returns An atom with a wrapper that allows functions as values.
|
|
18
|
-
*/
|
|
19
|
-
const atomWithWrapper = (initialValue) => {
|
|
20
|
-
const rootAtom = baseAtom(wrapFn(initialValue));
|
|
21
|
-
return baseAtom((get) => unwrapFn(get(rootAtom)), (_get, set, value) => set(rootAtom, wrapFn(value)));
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export { atomWithWrapper };
|
|
1
|
+
import{baseAtom as e}from"./base-atom.mjs";import{isFunction as t}from"@stryke/type-checks/is-function";const n=e=>t(e)?{__fn:e}:e,r=e=>e&&typeof e==`object`&&`__fn`in e?e.__fn:e,i=t=>{let i=e(n(t));return e(e=>r(e(i)),(e,t,r)=>t(i,n(r)))};export{i as atomWithWrapper};
|
|
25
2
|
//# sourceMappingURL=atom-with-wrapper.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atom-with-wrapper.mjs","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"atom-with-wrapper.mjs","names":["wrapFn","isFunction","fnOrValue","unwrapFn","wrappedFnOrValue","atomWithWrapper","rootAtom","baseAtom","initialValue","get","set","value"],"sources":[],"mappings":""}
|
|
@@ -1,24 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
let jotai_vanilla = require("jotai/vanilla");
|
|
3
|
-
|
|
4
|
-
// src/base/atoms/base-atom.ts
|
|
5
|
-
/**
|
|
6
|
-
* Create a "base" atom that can be used to create derived atoms.
|
|
7
|
-
* The base atom is a writable atom that can be used to create derived atoms.
|
|
8
|
-
*
|
|
9
|
-
* @remarks
|
|
10
|
-
* This function serves as a wrapper around the `atom` function from the Jotai library that adds debugging helpers.
|
|
11
|
-
*
|
|
12
|
-
* @param readOrInitialValue - The initial value of the atom or a read function
|
|
13
|
-
* @param write - The write function for the atom
|
|
14
|
-
* @returns The base atom
|
|
15
|
-
*/
|
|
16
|
-
function baseAtom(readOrInitialValue, write) {
|
|
17
|
-
const result = (0, jotai_vanilla.atom)(readOrInitialValue, write);
|
|
18
|
-
result.setDebugLabel = (label) => {
|
|
19
|
-
require_set_atom_debug.setAtomDebugLabel(result, label);
|
|
20
|
-
};
|
|
21
|
-
return result;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
exports.baseAtom = baseAtom;
|
|
1
|
+
const e=require("../utilities/set-atom-debug.cjs");let t=require("jotai/vanilla");function n(n,r){let i=(0,t.atom)(n,r);return i.setDebugLabel=t=>{e.setAtomDebugLabel(i,t)},i}exports.baseAtom=n;
|
|
@@ -1,25 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { atom } from "jotai/vanilla";
|
|
3
|
-
|
|
4
|
-
// src/base/atoms/base-atom.ts
|
|
5
|
-
/**
|
|
6
|
-
* Create a "base" atom that can be used to create derived atoms.
|
|
7
|
-
* The base atom is a writable atom that can be used to create derived atoms.
|
|
8
|
-
*
|
|
9
|
-
* @remarks
|
|
10
|
-
* This function serves as a wrapper around the `atom` function from the Jotai library that adds debugging helpers.
|
|
11
|
-
*
|
|
12
|
-
* @param readOrInitialValue - The initial value of the atom or a read function
|
|
13
|
-
* @param write - The write function for the atom
|
|
14
|
-
* @returns The base atom
|
|
15
|
-
*/
|
|
16
|
-
function baseAtom(readOrInitialValue, write) {
|
|
17
|
-
const result = atom(readOrInitialValue, write);
|
|
18
|
-
result.setDebugLabel = (label) => {
|
|
19
|
-
setAtomDebugLabel(result, label);
|
|
20
|
-
};
|
|
21
|
-
return result;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export { baseAtom };
|
|
1
|
+
import{setAtomDebugLabel as e}from"../utilities/set-atom-debug.mjs";import{atom as t}from"jotai/vanilla";function n(n,r){let i=t(n,r);return i.setDebugLabel=t=>{e(i,t)},i}export{n as baseAtom};
|
|
25
2
|
//# sourceMappingURL=base-atom.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-atom.mjs","names":["jotaiAtom"],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"base-atom.mjs","names":["jotaiAtom","baseAtom","result","atom","readOrInitialValue","write","setAtomDebugLabel","label"],"sources":[],"mappings":""}
|
|
@@ -1,24 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
const require_atom_with_compare = require("./atom-with-compare.cjs");
|
|
3
|
-
const require_atom_with_wrapper = require("./atom-with-wrapper.cjs");
|
|
4
|
-
const require_atom_with_debounce = require("./atom-with-debounce.cjs");
|
|
5
|
-
const require_atom_with_effect = require("./atom-with-effect.cjs");
|
|
6
|
-
const require_atom_with_listeners = require("./atom-with-listeners.cjs");
|
|
7
|
-
const require_atom_with_pending = require("./atom-with-pending.cjs");
|
|
8
|
-
const require_atom_with_refresh = require("./atom-with-refresh.cjs");
|
|
9
|
-
const require_atom_with_refresh_and_default = require("./atom-with-refresh-and-default.cjs");
|
|
10
|
-
const require_atom_with_toggle = require("./atom-with-toggle.cjs");
|
|
11
|
-
const require_atom_with_web_storage = require("./atom-with-web-storage.cjs");
|
|
12
|
-
|
|
13
|
-
exports.atomWithBroadcast = require_atom_with_broadcast.atomWithBroadcast;
|
|
14
|
-
exports.atomWithCompare = require_atom_with_compare.atomWithCompare;
|
|
15
|
-
exports.atomWithDebounce = require_atom_with_debounce.atomWithDebounce;
|
|
16
|
-
exports.atomWithEffect = require_atom_with_effect.atomWithEffect;
|
|
17
|
-
exports.atomWithListeners = require_atom_with_listeners.atomWithListeners;
|
|
18
|
-
exports.atomWithPending = require_atom_with_pending.atomWithPending;
|
|
19
|
-
exports.atomWithRefresh = require_atom_with_refresh.atomWithRefresh;
|
|
20
|
-
exports.atomWithRefreshAndDefault = require_atom_with_refresh_and_default.atomWithRefreshAndDefault;
|
|
21
|
-
exports.atomWithToggle = require_atom_with_toggle.atomWithToggle;
|
|
22
|
-
exports.atomWithWebStorage = require_atom_with_web_storage.atomWithWebStorage;
|
|
23
|
-
exports.atomWithWrapper = require_atom_with_wrapper.atomWithWrapper;
|
|
24
|
-
exports.getWebStorage = require_atom_with_web_storage.getWebStorage;
|
|
1
|
+
const e=require("./atom-with-broadcast.cjs"),t=require("./atom-with-compare.cjs"),n=require("./atom-with-wrapper.cjs"),r=require("./atom-with-debounce.cjs"),i=require("./atom-with-effect.cjs"),a=require("./atom-with-listeners.cjs"),o=require("./atom-with-pending.cjs"),s=require("./atom-with-refresh.cjs"),c=require("./atom-with-refresh-and-default.cjs"),l=require("./atom-with-toggle.cjs"),u=require("./atom-with-web-storage.cjs");exports.atomWithBroadcast=e.atomWithBroadcast,exports.atomWithCompare=t.atomWithCompare,exports.atomWithDebounce=r.atomWithDebounce,exports.atomWithEffect=i.atomWithEffect,exports.atomWithListeners=a.atomWithListeners,exports.atomWithPending=o.atomWithPending,exports.atomWithRefresh=s.atomWithRefresh,exports.atomWithRefreshAndDefault=c.atomWithRefreshAndDefault,exports.atomWithToggle=l.atomWithToggle,exports.atomWithWebStorage=u.atomWithWebStorage,exports.atomWithWrapper=n.atomWithWrapper,exports.getWebStorage=u.getWebStorage;
|
|
@@ -1,13 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { atomWithCompare } from "./atom-with-compare.mjs";
|
|
3
|
-
import { atomWithWrapper } from "./atom-with-wrapper.mjs";
|
|
4
|
-
import { atomWithDebounce } from "./atom-with-debounce.mjs";
|
|
5
|
-
import { atomWithEffect } from "./atom-with-effect.mjs";
|
|
6
|
-
import { atomWithListeners } from "./atom-with-listeners.mjs";
|
|
7
|
-
import { atomWithPending } from "./atom-with-pending.mjs";
|
|
8
|
-
import { atomWithRefresh } from "./atom-with-refresh.mjs";
|
|
9
|
-
import { atomWithRefreshAndDefault } from "./atom-with-refresh-and-default.mjs";
|
|
10
|
-
import { atomWithToggle } from "./atom-with-toggle.mjs";
|
|
11
|
-
import { atomWithWebStorage, getWebStorage } from "./atom-with-web-storage.mjs";
|
|
12
|
-
|
|
13
|
-
export { atomWithBroadcast, atomWithCompare, atomWithDebounce, atomWithEffect, atomWithListeners, atomWithPending, atomWithRefresh, atomWithRefreshAndDefault, atomWithToggle, atomWithWebStorage, atomWithWrapper, getWebStorage };
|
|
1
|
+
import{atomWithBroadcast as e}from"./atom-with-broadcast.mjs";import{atomWithCompare as t}from"./atom-with-compare.mjs";import{atomWithWrapper as n}from"./atom-with-wrapper.mjs";import{atomWithDebounce as r}from"./atom-with-debounce.mjs";import{atomWithEffect as i}from"./atom-with-effect.mjs";import{atomWithListeners as a}from"./atom-with-listeners.mjs";import{atomWithPending as o}from"./atom-with-pending.mjs";import{atomWithRefresh as s}from"./atom-with-refresh.mjs";import{atomWithRefreshAndDefault as c}from"./atom-with-refresh-and-default.mjs";import{atomWithToggle as l}from"./atom-with-toggle.mjs";import{atomWithWebStorage as u,getWebStorage as d}from"./atom-with-web-storage.mjs";export{e as atomWithBroadcast,t as atomWithCompare,r as atomWithDebounce,i as atomWithEffect,a as atomWithListeners,o as atomWithPending,s as atomWithRefresh,c as atomWithRefreshAndDefault,l as atomWithToggle,u as atomWithWebStorage,n as atomWithWrapper,d as getWebStorage};
|
|
@@ -1,9 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
const require_use_hydrate_molecule = require("./use-hydrate-molecule.cjs");
|
|
3
|
-
const require_use_prepare_atoms = require("./use-prepare-atoms.cjs");
|
|
4
|
-
const require_use_sync_molecule = require("./use-sync-molecule.cjs");
|
|
5
|
-
|
|
6
|
-
exports.useAtomEffect = require_use_atom_effect.useAtomEffect;
|
|
7
|
-
exports.useHydrateMolecule = require_use_hydrate_molecule.useHydrateMolecule;
|
|
8
|
-
exports.usePrepareAtoms = require_use_prepare_atoms.usePrepareAtoms;
|
|
9
|
-
exports.useSyncMolecule = require_use_sync_molecule.useSyncMolecule;
|
|
1
|
+
const e=require("./use-atom-effect.cjs"),t=require("./use-hydrate-molecule.cjs"),n=require("./use-prepare-atoms.cjs"),r=require("./use-sync-molecule.cjs");exports.useAtomEffect=e.useAtomEffect,exports.useHydrateMolecule=t.useHydrateMolecule,exports.usePrepareAtoms=n.usePrepareAtoms,exports.useSyncMolecule=r.useSyncMolecule;
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useHydrateMolecule } from "./use-hydrate-molecule.mjs";
|
|
3
|
-
import { usePrepareAtoms } from "./use-prepare-atoms.mjs";
|
|
4
|
-
import { useSyncMolecule } from "./use-sync-molecule.mjs";
|
|
5
|
-
|
|
6
|
-
export { useAtomEffect, useHydrateMolecule, usePrepareAtoms, useSyncMolecule };
|
|
1
|
+
import{useAtomEffect as e}from"./use-atom-effect.mjs";import{useHydrateMolecule as t}from"./use-hydrate-molecule.mjs";import{usePrepareAtoms as n}from"./use-prepare-atoms.mjs";import{useSyncMolecule as r}from"./use-sync-molecule.mjs";export{e as useAtomEffect,t as useHydrateMolecule,n as usePrepareAtoms,r as useSyncMolecule};
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
let jotai_utils = require("jotai/utils");
|
|
3
|
-
let _stryke_hooks_use_memo_stable = require("@stryke/hooks/use-memo-stable");
|
|
4
|
-
let jotai_react = require("jotai/react");
|
|
5
|
-
|
|
6
|
-
// src/base/hooks/use-atom-effect.ts
|
|
7
|
-
/**
|
|
8
|
-
* A hook that runs a side effect when the component mounts.
|
|
9
|
-
*
|
|
10
|
-
* @param effectFn - The side effect function.
|
|
11
|
-
*/
|
|
12
|
-
function useAtomEffect(effectFn, deps = []) {
|
|
13
|
-
(0, jotai_react.useAtomValue)((0, jotai_utils.loadable)((0, _stryke_hooks_use_memo_stable.useMemoStable)(() => require_atom_with_effect.atomWithEffect(effectFn), deps)));
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
exports.useAtomEffect = useAtomEffect;
|
|
1
|
+
const e=require("../atoms/atom-with-effect.cjs");let t=require("jotai/utils"),n=require("@stryke/hooks/use-memo-stable"),r=require("jotai/react");function i(i,a=[]){(0,r.useAtomValue)((0,t.loadable)((0,n.useMemoStable)(()=>e.atomWithEffect(i),a)))}exports.useAtomEffect=i;
|
|
@@ -1,17 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { loadable } from "jotai/utils";
|
|
3
|
-
import { useMemoStable } from "@stryke/hooks/use-memo-stable";
|
|
4
|
-
import { useAtomValue } from "jotai/react";
|
|
5
|
-
|
|
6
|
-
// src/base/hooks/use-atom-effect.ts
|
|
7
|
-
/**
|
|
8
|
-
* A hook that runs a side effect when the component mounts.
|
|
9
|
-
*
|
|
10
|
-
* @param effectFn - The side effect function.
|
|
11
|
-
*/
|
|
12
|
-
function useAtomEffect(effectFn, deps = []) {
|
|
13
|
-
useAtomValue(loadable(useMemoStable(() => atomWithEffect(effectFn), deps)));
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export { useAtomEffect };
|
|
1
|
+
import{atomWithEffect as e}from"../atoms/atom-with-effect.mjs";import{loadable as t}from"jotai/utils";import{useMemoStable as n}from"@stryke/hooks/use-memo-stable";import{useAtomValue as r}from"jotai/react";function i(i,a=[]){r(t(n(()=>e(i),a)))}export{i as useAtomEffect};
|
|
17
2
|
//# sourceMappingURL=use-atom-effect.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-atom-effect.mjs","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"use-atom-effect.mjs","names":["useAtomEffect","useAtomValue","loadable","useMemoStable","atomWithEffect","effectFn","deps"],"sources":[],"mappings":""}
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
let
|
|
2
|
-
|
|
3
|
-
// src/base/hooks/use-hydrate-molecule.ts
|
|
4
|
-
/**
|
|
5
|
-
* Hydrate atoms with initial values for SSR.
|
|
6
|
-
*/
|
|
7
|
-
const useHydrateMolecule = (atoms, initialValues, store) => {
|
|
8
|
-
const values = [];
|
|
9
|
-
for (const key of Object.keys(atoms)) {
|
|
10
|
-
const initialValue = initialValues[key];
|
|
11
|
-
if (initialValue !== void 0) values.push([atoms[key], initialValue]);
|
|
12
|
-
}
|
|
13
|
-
(0, jotai_utils.useHydrateAtoms)(values, { store });
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
exports.useHydrateMolecule = useHydrateMolecule;
|
|
1
|
+
let e=require("jotai/utils");const t=(t,n,r)=>{let i=[];for(let e of Object.keys(t)){let r=n[e];r!==void 0&&i.push([t[e],r])}(0,e.useHydrateAtoms)(i,{store:r})};exports.useHydrateMolecule=t;
|
|
@@ -1,17 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
// src/base/hooks/use-hydrate-molecule.ts
|
|
4
|
-
/**
|
|
5
|
-
* Hydrate atoms with initial values for SSR.
|
|
6
|
-
*/
|
|
7
|
-
const useHydrateMolecule = (atoms, initialValues, store) => {
|
|
8
|
-
const values = [];
|
|
9
|
-
for (const key of Object.keys(atoms)) {
|
|
10
|
-
const initialValue = initialValues[key];
|
|
11
|
-
if (initialValue !== void 0) values.push([atoms[key], initialValue]);
|
|
12
|
-
}
|
|
13
|
-
useHydrateAtoms(values, { store });
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export { useHydrateMolecule };
|
|
1
|
+
import{useHydrateAtoms as e}from"jotai/utils";const t=(t,n,r)=>{let i=[];for(let e of Object.keys(t)){let r=n[e];r!==void 0&&i.push([t[e],r])}e(i,{store:r})};export{t as useHydrateMolecule};
|
|
17
2
|
//# sourceMappingURL=use-hydrate-molecule.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-hydrate-molecule.mjs","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"use-hydrate-molecule.mjs","names":["useHydrateMolecule","values","key","atoms","initialValue","initialValues","useHydrateAtoms"],"sources":[],"mappings":""}
|
|
@@ -1,19 +1 @@
|
|
|
1
|
-
let
|
|
2
|
-
let react = require("react");
|
|
3
|
-
let jotai_react = require("jotai/react");
|
|
4
|
-
|
|
5
|
-
// src/base/hooks/use-prepare-atoms.ts
|
|
6
|
-
function useMemoList(list, compareFn = (a, b) => a === b) {
|
|
7
|
-
const [state, setState] = (0, react.useState)(list);
|
|
8
|
-
const listChanged = list.length !== state.length || list.some((arg, index) => !compareFn(arg, state[index]));
|
|
9
|
-
if (listChanged) setState(list);
|
|
10
|
-
return listChanged ? list : state;
|
|
11
|
-
}
|
|
12
|
-
function usePrepareAtoms(atoms, options) {
|
|
13
|
-
const stableAtoms = useMemoList(atoms);
|
|
14
|
-
(0, jotai_react.useAtomValue)((0, react.useMemo)(() => (0, jotai_vanilla.atom)((get) => {
|
|
15
|
-
stableAtoms.map((stableAtom) => get(stableAtom));
|
|
16
|
-
}), [stableAtoms]), options);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
exports.usePrepareAtoms = usePrepareAtoms;
|
|
1
|
+
let e=require("jotai/vanilla"),t=require("react"),n=require("jotai/react");function r(e,n=(e,t)=>e===t){let[r,i]=(0,t.useState)(e),a=e.length!==r.length||e.some((e,t)=>!n(e,r[t]));return a&&i(e),a?e:r}function i(i,a){let o=r(i);(0,n.useAtomValue)((0,t.useMemo)(()=>(0,e.atom)(e=>{o.map(t=>e(t))}),[o]),a)}exports.usePrepareAtoms=i;
|
|
@@ -1,20 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useMemo, useState } from "react";
|
|
3
|
-
import { useAtomValue } from "jotai/react";
|
|
4
|
-
|
|
5
|
-
// src/base/hooks/use-prepare-atoms.ts
|
|
6
|
-
function useMemoList(list, compareFn = (a, b) => a === b) {
|
|
7
|
-
const [state, setState] = useState(list);
|
|
8
|
-
const listChanged = list.length !== state.length || list.some((arg, index) => !compareFn(arg, state[index]));
|
|
9
|
-
if (listChanged) setState(list);
|
|
10
|
-
return listChanged ? list : state;
|
|
11
|
-
}
|
|
12
|
-
function usePrepareAtoms(atoms, options) {
|
|
13
|
-
const stableAtoms = useMemoList(atoms);
|
|
14
|
-
useAtomValue(useMemo(() => atom((get) => {
|
|
15
|
-
stableAtoms.map((stableAtom) => get(stableAtom));
|
|
16
|
-
}), [stableAtoms]), options);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { usePrepareAtoms };
|
|
1
|
+
import{atom as e}from"jotai/vanilla";import{useMemo as t,useState as n}from"react";import{useAtomValue as r}from"jotai/react";function i(e,t=(e,t)=>e===t){let[r,i]=n(e),a=e.length!==r.length||e.some((e,n)=>!t(e,r[n]));return a&&i(e),a?e:r}function a(n,a){let o=i(n);r(t(()=>e(e=>{o.map(t=>e(t))}),[o]),a)}export{a as usePrepareAtoms};
|
|
20
2
|
//# sourceMappingURL=use-prepare-atoms.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-prepare-atoms.mjs","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"use-prepare-atoms.mjs","names":["useMemoList","a","b","state","setState","useState","list","listChanged","compareFn","arg","index","usePrepareAtoms","stableAtoms","atoms","useAtomValue","useMemo","atom","get","stableAtom","options"],"sources":[],"mappings":""}
|
|
@@ -1,36 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
let _stryke_helpers_is_equal = require("@stryke/helpers/is-equal");
|
|
3
|
-
let jotai = require("jotai");
|
|
4
|
-
let react = require("react");
|
|
5
|
-
|
|
6
|
-
// src/base/hooks/use-sync-molecule.ts
|
|
7
|
-
/**
|
|
8
|
-
* Keep the previous reference while `value` is deeply equal to it, so callers
|
|
9
|
-
* passing a fresh object literal each render do not re-trigger effects.
|
|
10
|
-
*/
|
|
11
|
-
const useDeepStable = (value) => {
|
|
12
|
-
const ref = (0, react.useRef)(value);
|
|
13
|
-
if (!(0, _stryke_helpers_is_equal.isEqual)(ref.current, value)) ref.current = value;
|
|
14
|
-
return ref.current;
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Update atoms with new values on changes.
|
|
18
|
-
*
|
|
19
|
-
* @remarks
|
|
20
|
-
* Values are compared deeply, so a provider that re-renders with equivalent
|
|
21
|
-
* `initialState` does not write to its atoms again. Without this, two
|
|
22
|
-
* providers sharing a molecule scope overwrite each other on every render.
|
|
23
|
-
*/
|
|
24
|
-
const useSyncMolecule = (atoms, values, store) => {
|
|
25
|
-
for (const key of Object.keys(atoms)) {
|
|
26
|
-
let value = values[key];
|
|
27
|
-
if (require_is_atom.isAtom(value)) value = (0, jotai.useAtomValue)(value);
|
|
28
|
-
value = useDeepStable(value);
|
|
29
|
-
const setAtom = (0, jotai.useSetAtom)(atoms[key], { store });
|
|
30
|
-
(0, react.useEffect)(() => {
|
|
31
|
-
if (value !== void 0) setAtom(value);
|
|
32
|
-
}, [setAtom, value]);
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
exports.useSyncMolecule = useSyncMolecule;
|
|
1
|
+
const e=require("../utilities/is-atom.cjs");let t=require("@stryke/helpers/is-equal"),n=require("jotai"),r=require("react");const i=e=>{let n=(0,r.useRef)(e);return(0,t.isEqual)(n.current,e)||(n.current=e),n.current},a=(t,a,o)=>{for(let s of Object.keys(t)){let c=a[s];e.isAtom(c)&&(c=(0,n.useAtomValue)(c)),c=i(c);let l=(0,n.useSetAtom)(t[s],{store:o});(0,r.useEffect)(()=>{c!==void 0&&l(c)},[l,c])}};exports.useSyncMolecule=a;
|
|
@@ -1,37 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { isEqual } from "@stryke/helpers/is-equal";
|
|
3
|
-
import { useAtomValue, useSetAtom } from "jotai";
|
|
4
|
-
import { useEffect, useRef } from "react";
|
|
5
|
-
|
|
6
|
-
// src/base/hooks/use-sync-molecule.ts
|
|
7
|
-
/**
|
|
8
|
-
* Keep the previous reference while `value` is deeply equal to it, so callers
|
|
9
|
-
* passing a fresh object literal each render do not re-trigger effects.
|
|
10
|
-
*/
|
|
11
|
-
const useDeepStable = (value) => {
|
|
12
|
-
const ref = useRef(value);
|
|
13
|
-
if (!isEqual(ref.current, value)) ref.current = value;
|
|
14
|
-
return ref.current;
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Update atoms with new values on changes.
|
|
18
|
-
*
|
|
19
|
-
* @remarks
|
|
20
|
-
* Values are compared deeply, so a provider that re-renders with equivalent
|
|
21
|
-
* `initialState` does not write to its atoms again. Without this, two
|
|
22
|
-
* providers sharing a molecule scope overwrite each other on every render.
|
|
23
|
-
*/
|
|
24
|
-
const useSyncMolecule = (atoms, values, store) => {
|
|
25
|
-
for (const key of Object.keys(atoms)) {
|
|
26
|
-
let value = values[key];
|
|
27
|
-
if (isAtom(value)) value = useAtomValue(value);
|
|
28
|
-
value = useDeepStable(value);
|
|
29
|
-
const setAtom = useSetAtom(atoms[key], { store });
|
|
30
|
-
useEffect(() => {
|
|
31
|
-
if (value !== void 0) setAtom(value);
|
|
32
|
-
}, [setAtom, value]);
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export { useSyncMolecule };
|
|
1
|
+
import{isAtom as e}from"../utilities/is-atom.mjs";import{isEqual as t}from"@stryke/helpers/is-equal";import{useAtomValue as n,useSetAtom as r}from"jotai";import{useEffect as i,useRef as a}from"react";const o=e=>{let n=a(e);return t(n.current,e)||(n.current=e),n.current},s=(t,a,s)=>{for(let c of Object.keys(t)){let l=a[c];e(l)&&(l=n(l)),l=o(l);let u=r(t[c],{store:s});i(()=>{l!==void 0&&u(l)},[u,l])}};export{s as useSyncMolecule};
|
|
37
2
|
//# sourceMappingURL=use-sync-molecule.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-sync-molecule.mjs","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"use-sync-molecule.mjs","names":["useDeepStable","ref","useRef","value","isEqual","useSyncMolecule","key","atoms","values","isAtom","useAtomValue","setAtom","useSetAtom","useEffect"],"sources":[],"mappings":""}
|