@alepha/react 0.11.6 → 0.11.7
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/LICENSE +1 -1
- package/README.md +0 -4
- package/dist/index.browser.js +7 -9
- package/dist/index.browser.js.map +1 -1
- package/dist/index.d.ts +31 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -11
- package/dist/index.js.map +1 -1
- package/package.json +14 -14
- package/src/hooks/useStore.ts +22 -10
- package/src/providers/ReactServerProvider.ts +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alepha/react",
|
|
3
3
|
"description": "Build server-side rendered (SSR) or single-page React applications.",
|
|
4
|
-
"version": "0.11.
|
|
4
|
+
"version": "0.11.7",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=22.0.0"
|
|
@@ -17,23 +17,23 @@
|
|
|
17
17
|
"src"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@alepha/core": "0.11.
|
|
21
|
-
"@alepha/datetime": "0.11.
|
|
22
|
-
"@alepha/logger": "0.11.
|
|
23
|
-
"@alepha/router": "0.11.
|
|
24
|
-
"@alepha/server": "0.11.
|
|
25
|
-
"@alepha/server-cache": "0.11.
|
|
26
|
-
"@alepha/server-links": "0.11.
|
|
27
|
-
"@alepha/server-static": "0.11.
|
|
20
|
+
"@alepha/core": "0.11.7",
|
|
21
|
+
"@alepha/datetime": "0.11.7",
|
|
22
|
+
"@alepha/logger": "0.11.7",
|
|
23
|
+
"@alepha/router": "0.11.7",
|
|
24
|
+
"@alepha/server": "0.11.7",
|
|
25
|
+
"@alepha/server-cache": "0.11.7",
|
|
26
|
+
"@alepha/server-links": "0.11.7",
|
|
27
|
+
"@alepha/server-static": "0.11.7"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@alepha/testing": "0.11.
|
|
31
|
-
"@biomejs/biome": "^2.3.
|
|
32
|
-
"@types/react": "^19.2.
|
|
33
|
-
"@types/react-dom": "^19.2.
|
|
30
|
+
"@alepha/testing": "0.11.7",
|
|
31
|
+
"@biomejs/biome": "^2.3.5",
|
|
32
|
+
"@types/react": "^19.2.4",
|
|
33
|
+
"@types/react-dom": "^19.2.3",
|
|
34
34
|
"react": "^19.2.0",
|
|
35
35
|
"react-dom": "^19.2.0",
|
|
36
|
-
"tsdown": "^0.16.
|
|
36
|
+
"tsdown": "^0.16.4",
|
|
37
37
|
"typescript": "^5.9.3",
|
|
38
38
|
"vitest": "^4.0.8"
|
|
39
39
|
},
|
package/src/hooks/useStore.ts
CHANGED
|
@@ -1,29 +1,37 @@
|
|
|
1
|
-
import type { State } from "@alepha/core";
|
|
1
|
+
import type { State, Static, TAtomObject } from "@alepha/core";
|
|
2
|
+
import { Atom } from "@alepha/core";
|
|
2
3
|
import { useEffect, useMemo, useState } from "react";
|
|
3
4
|
import { useAlepha } from "./useAlepha.ts";
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Hook to access and mutate the Alepha state.
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
function useStore<T extends TAtomObject>(
|
|
10
|
+
target: Atom<T>,
|
|
11
|
+
defaultValue?: Static<T>,
|
|
12
|
+
): UseStoreReturn<Static<T>>;
|
|
13
|
+
function useStore<Key extends keyof State>(
|
|
14
|
+
target: Key,
|
|
10
15
|
defaultValue?: State[Key],
|
|
11
|
-
):
|
|
16
|
+
): UseStoreReturn<State[Key]>;
|
|
17
|
+
function useStore(target: any, defaultValue?: any): any {
|
|
12
18
|
const alepha = useAlepha();
|
|
13
19
|
|
|
14
20
|
useMemo(() => {
|
|
15
|
-
if (defaultValue != null && alepha.state.get(
|
|
16
|
-
alepha.state.set(
|
|
21
|
+
if (defaultValue != null && alepha.state.get(target) == null) {
|
|
22
|
+
alepha.state.set(target, defaultValue);
|
|
17
23
|
}
|
|
18
24
|
}, [defaultValue]);
|
|
19
25
|
|
|
20
|
-
const [state, setState] = useState(alepha.state.get(
|
|
26
|
+
const [state, setState] = useState(alepha.state.get(target));
|
|
21
27
|
|
|
22
28
|
useEffect(() => {
|
|
23
29
|
if (!alepha.isBrowser()) {
|
|
24
30
|
return;
|
|
25
31
|
}
|
|
26
32
|
|
|
33
|
+
const key = target instanceof Atom ? target.key : target;
|
|
34
|
+
|
|
27
35
|
return alepha.events.on("state:mutate", (ev) => {
|
|
28
36
|
if (ev.key === key) {
|
|
29
37
|
setState(ev.value);
|
|
@@ -33,8 +41,12 @@ export const useStore = <Key extends keyof State>(
|
|
|
33
41
|
|
|
34
42
|
return [
|
|
35
43
|
state,
|
|
36
|
-
(value:
|
|
37
|
-
alepha.state.set(
|
|
44
|
+
(value: any) => {
|
|
45
|
+
alepha.state.set(target, value);
|
|
38
46
|
},
|
|
39
47
|
] as const;
|
|
40
|
-
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export type UseStoreReturn<T> = [T, (value: T) => void];
|
|
51
|
+
|
|
52
|
+
export { useStore };
|