1 | import { createStore, createApi, createEvent } from 'effector' |
||
2 | import { persist } from 'effector-storage/local' |
||
3 | |||
4 | const $page = createStore<number>(1) |
||
5 | persist({ store: $page, key: 'page' }) |
||
6 | |||
7 | const { prevPage, nextPage, setPage } = createApi($page, { |
||
8 | prevPage: page => (page > 1 ? page - 1 : 1), |
||
9 | nextPage: page => page + 1, |
||
10 | setPage: (page, nextPage: number) => { |
||
11 | if (nextPage > page) { |
||
12 | setAscending() |
||
13 | } else { |
||
14 | setDescending() |
||
15 | } |
||
16 | return nextPage |
||
17 | }, |
||
18 | }) |
||
19 | |||
20 | const setAscending = createEvent() |
||
21 | const setDescending = createEvent() |
||
22 | const $isAscending = createStore<boolean>(false) |
||
23 | |||
24 | $isAscending |
||
25 | .on([setAscending, nextPage], state => (state = true)) |
||
0 ignored issues
–
show
introduced
by
![]() |
|||
26 | .on([setDescending, prevPage], state => (state = false)) |
||
0 ignored issues
–
show
|
|||
27 | |||
28 | export { $page, prevPage, nextPage, setPage, $isAscending } |
||
29 |