lobe-chat

Форк
0
33 строки · 1.2 Кб
1
import { subscribeWithSelector } from 'zustand/middleware';
2
import { shallow } from 'zustand/shallow';
3
import { createWithEqualityFn } from 'zustand/traditional';
4
import { StateCreator } from 'zustand/vanilla';
5

6
import { isDev } from '@/utils/env';
7

8
import { createDevtools } from '../middleware/createDevtools';
9
import { SessionStoreState, initialState } from './initialState';
10
import { SessionAction, createSessionSlice } from './slices/session/action';
11
import { SessionGroupAction, createSessionGroupSlice } from './slices/sessionGroup/action';
12

13
//  ===============  聚合 createStoreFn ============ //
14

15
export interface SessionStore extends SessionAction, SessionGroupAction, SessionStoreState {}
16

17
const createStore: StateCreator<SessionStore, [['zustand/devtools', never]]> = (...parameters) => ({
18
  ...initialState,
19
  ...createSessionSlice(...parameters),
20
  ...createSessionGroupSlice(...parameters),
21
});
22

23
//  ===============  implement useStore ============ //
24
const devtools = createDevtools('session');
25

26
export const useSessionStore = createWithEqualityFn<SessionStore>()(
27
  subscribeWithSelector(
28
    devtools(createStore, {
29
      name: 'LobeChat_Session' + (isDev ? '_DEV' : ''),
30
    }),
31
  ),
32
  shallow,
33
);
34

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

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

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

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