Skip to content

Commit 2e21a15

Browse files
committed
feat: new models
1 parent 7142cdd commit 2e21a15

25 files changed

+360
-3311
lines changed

packages/core/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
"name": "@effector/model",
33
"version": "0.0.8",
44
"type": "module",
5+
"scripts": {
6+
"test": "vitest"
7+
},
58
"peerDependencies": {
69
"effector": "^23.3.0"
710
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import { describe, test } from 'vitest';
2+
import { model } from '../model';
3+
import { define } from '../define';
4+
import { keyval } from '../keyval';
5+
import { relation } from '../relation';
6+
7+
describe('index', () => {
8+
test('first', async () => {
9+
const dialogModel = model({
10+
$visible: define.store(false),
11+
$params: define.store<object | null>(null),
12+
13+
open: define.event<object>(),
14+
opened: define.event<object>(),
15+
16+
close: define.event(),
17+
closed: define.event(),
18+
});
19+
20+
const dialogs = keyval({
21+
model: dialogModel,
22+
fn: ({ $visible, $params, open, opened, close, closed }) => {
23+
relation({
24+
clock: open,
25+
target: [opened, $params],
26+
});
27+
relation({
28+
clock: close,
29+
fn: () => null,
30+
target: [closed, $params],
31+
});
32+
33+
relation({
34+
clock: opened,
35+
fn: () => true,
36+
target: $visible,
37+
});
38+
39+
relation({
40+
clock: closed,
41+
fn: () => false,
42+
target: $visible,
43+
});
44+
}
45+
});
46+
47+
dialogs.__.factory?.();
48+
});
49+
});

0 commit comments

Comments
 (0)