index.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { configureStore } from '@reduxjs/toolkit'
  2. import { Provider } from 'react-redux'
  3. import { useDispatch as useDispatchRaw, useSelector as useSelectorRaw } from 'react-redux'
  4. import { sceneReducer, sceneName } from './scene'
  5. import { userReducers, userName } from './user'
  6. import { exampleReducer, exampleName } from './example'
  7. import { exampleFileName, exampleFileReducer } from './files'
  8. import type { TypedUseSelectorHook } from 'react-redux'
  9. export const store = configureStore({
  10. reducer: {
  11. [sceneName]: sceneReducer,
  12. [userName]: userReducers,
  13. [exampleName]: exampleReducer,
  14. [exampleFileName]: exampleFileReducer
  15. }
  16. })
  17. export type StoreState = ReturnType<typeof store.getState>
  18. export type AppDispatch = typeof store.dispatch
  19. export type AppSelector = TypedUseSelectorHook<StoreState>
  20. export const useDispatch = useDispatchRaw<AppDispatch>
  21. export const useSelector: AppSelector = useSelectorRaw
  22. export const AppStore = ({ children }: { children: any }) => (
  23. <Provider store={store}>
  24. { children }
  25. </Provider>
  26. )
  27. export default store
  28. export * from './scene'
  29. export * from './user'
  30. export * from './example'
  31. export * from './files'