Skip to content

Commit 90944c8

Browse files
committed
fix: jotai sub
1 parent 505e419 commit 90944c8

File tree

5 files changed

+28
-16
lines changed

5 files changed

+28
-16
lines changed

packages/core/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,10 @@
3030
"immer": "^10.0.3"
3131
},
3232
"peerDependencies": {
33-
"loro-crdt": "^1.5.12"
33+
"loro-crdt": "^1.6.0"
3434
},
3535
"devDependencies": {
3636
"@types/node": "^20.10.5",
37-
"loro-crdt": "^1.5.12",
3837
"typescript": "^5.3.3"
3938
}
4039
}

packages/jotai/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"peerDependencies": {
3030
"loro-mirror": "workspace:*",
3131
"jotai": "^2.0.0",
32-
"loro-crdt": "^1.5.12"
32+
"loro-crdt": "^1.6.0"
3333
},
3434
"devDependencies": {
3535
"@testing-library/jest-dom": "^6.1.5",

packages/jotai/src/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,22 @@ export function loroMirrorAtom<T = any>(
8585
): WritableAtom<T, [T | ((prev: T) => T)], void> {
8686
const store = createStore(config);
8787
const stateAtom = atom(store.getState());
88+
const subAtom = atom(null, (_get, set, update) => {
89+
set(stateAtom, update);
90+
});
91+
92+
subAtom.onMount = (set) => {
93+
const sub = store.subscribe((state) => {
94+
set(state);
95+
});
96+
return () => {
97+
sub?.();
98+
}
99+
}
100+
88101
const base = atom(
89102
(get) => {
103+
get(subAtom);
90104
return get(stateAtom);
91105
},
92106
(get, set, update) => {

packages/react/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,13 @@
3232
"loro-mirror": "workspace:*"
3333
},
3434
"peerDependencies": {
35-
"loro-crdt": "^1.5.12",
35+
"loro-crdt": "^1.6.0",
3636
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
3737
},
3838
"devDependencies": {
3939
"@types/node": "^20.10.5",
4040
"@types/react": "^18.2.45",
4141
"react": "^18.2.0",
42-
"loro-crdt": "^1.5.12",
4342
"typescript": "^5.3.3"
4443
}
4544
}

pnpm-lock.yaml

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)