todo-app

Форк
0
/
pagination-config.ts 
39 строк · 883.0 Байт
1
import { createStore, createEvent } from 'effector';
2
import { useUnit } from 'effector-react';
3
import { persist } from 'effector-storage';
4
import { createStorageAdapter } from '@/shared/utils';
5

6
export interface PaginationConfig {
7
  page: number;
8
  size: number;
9
}
10

11
const setPaginationConfig = createEvent<Partial<PaginationConfig>>();
12

13
const resetPaginationConfig = createEvent();
14

15
export const $paginationConfig = createStore<PaginationConfig>({
16
  page: 1,
17
  size: 10,
18
})
19
  .on(setPaginationConfig, (store, payload) => ({ ...store, ...payload }))
20
  .reset(resetPaginationConfig);
21

22
persist({
23
  key: 'pagination-config',
24
  store: $paginationConfig,
25
  adapter: createStorageAdapter(),
26
});
27

28
const usePagination = () => {
29
  return useUnit($paginationConfig);
30
};
31

32
export const events = {
33
  setPaginationConfig,
34
  resetPaginationConfig,
35
};
36

37
export const selectors = {
38
  usePagination,
39
};
40

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.