stonex

Форк
0
/
StoreBinder.ts 
29 строк · 915.0 Байт
1

2
import { StonexModules, StonexStore } from '.'
3

4
/**
5
 * StoreBinder it is structure which helps Stonex Module to connect with Store
6
 */
7
export declare interface StoreBinder<State, MP = any> {
8
  getState: () => State,
9
  moduleName: string
10
  modules: StonexModules<MP>
11
  resetState: (callback?: (state: any) => any) => void
12
  setState: (changes: (((state: State) => Partial<State>) | Partial<State>), callback?: (state: State) => any) => any
13
}
14

15
/**
16
 * Function which creates and returns StoreBinder
17
 *
18
 * @param {string} moduleName
19
 * @param {StonexStore<MP>} store
20
 */
21
export const createStoreBinder = <MP, State>(
22
    moduleName: string,
23
    store: StonexStore<MP>,
24
  ): StoreBinder<State, MP> => ({
25
    getState: store.getState.bind(store, moduleName),
26
    moduleName,
27
    modules: store.modules,
28
    resetState: store.resetState.bind(store, moduleName),
29
    setState: store.setState.bind(store, moduleName),
30
  })
31

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

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

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

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