sanity-plugin-media
Version:
This version of `sanity-plugin-media` is for Sanity Studio V3.
125 lines (119 loc) • 3.42 kB
text/typescript
import {
type ActionFromReducersMapObject,
type Reducer,
type StateFromReducersMapObject,
combineReducers
} from '@reduxjs/toolkit'
import {combineEpics} from 'redux-observable'
import assetsReducer, {
assetsDeleteEpic,
assetsFetchAfterDeleteAllEpic,
assetsFetchEpic,
assetsFetchNextPageEpic,
assetsFetchPageIndexEpic,
assetsListenerCreateQueueEpic,
assetsListenerDeleteQueueEpic,
assetsListenerUpdateQueueEpic,
assetsOrderSetEpic,
assetsSearchEpic,
assetsSortEpic,
assetsTagsAddEpic,
assetsTagsRemoveEpic,
assetsUnpickEpic,
assetsUpdateEpic
} from './assets'
import debugReducer from './debug'
import dialogReducer, {
dialogClearOnAssetUpdateEpic,
dialogTagCreateEpic,
dialogTagDeleteEpic
} from './dialog'
import selectedReducer from './selected'
import notificationsReducer, {
notificationsAssetsDeleteErrorEpic,
notificationsAssetsDeleteCompleteEpic,
notificationsAssetsTagsAddCompleteEpic,
notificationsAssetsTagsRemoveCompleteEpic,
notificationsAssetsUpdateCompleteEpic,
notificationsGenericErrorEpic,
notificationsTagCreateCompleteEpic,
notificationsTagDeleteCompleteEpic,
notificationsTagUpdateCompleteEpic
} from './notifications'
import searchReducer, {searchFacetTagUpdateEpic} from './search'
import tagsReducer, {
tagsCreateEpic,
tagsDeleteEpic,
tagsFetchEpic,
tagsListenerCreateQueueEpic,
tagsListenerDeleteQueueEpic,
tagsListenerUpdateQueueEpic,
tagsSortEpic,
tagsUpdateEpic
} from './tags'
import uploadsReducer, {
uploadsAssetStartEpic,
uploadsAssetUploadEpic,
uploadsCheckRequestEpic,
uploadsCompleteQueueEpic
} from './uploads'
export const rootEpic = combineEpics(
assetsDeleteEpic,
assetsFetchEpic,
assetsFetchAfterDeleteAllEpic,
assetsFetchNextPageEpic,
assetsFetchPageIndexEpic,
assetsListenerCreateQueueEpic,
assetsListenerDeleteQueueEpic,
assetsListenerUpdateQueueEpic,
assetsOrderSetEpic,
assetsSearchEpic,
assetsSortEpic,
assetsTagsAddEpic,
assetsTagsRemoveEpic,
assetsUnpickEpic,
assetsUpdateEpic,
dialogClearOnAssetUpdateEpic,
dialogTagCreateEpic,
dialogTagDeleteEpic,
notificationsAssetsDeleteErrorEpic,
notificationsAssetsDeleteCompleteEpic,
notificationsAssetsTagsAddCompleteEpic,
notificationsAssetsTagsRemoveCompleteEpic,
notificationsAssetsUpdateCompleteEpic,
notificationsGenericErrorEpic,
notificationsTagCreateCompleteEpic,
notificationsTagDeleteCompleteEpic,
notificationsTagUpdateCompleteEpic,
searchFacetTagUpdateEpic,
tagsCreateEpic,
tagsDeleteEpic,
tagsFetchEpic,
tagsListenerCreateQueueEpic,
tagsListenerDeleteQueueEpic,
tagsListenerUpdateQueueEpic,
tagsSortEpic,
tagsUpdateEpic,
uploadsAssetStartEpic,
uploadsAssetUploadEpic,
uploadsCheckRequestEpic,
uploadsCompleteQueueEpic
)
const reducers = {
assets: assetsReducer,
debug: debugReducer,
dialog: dialogReducer,
notifications: notificationsReducer,
search: searchReducer,
selected: selectedReducer,
tags: tagsReducer,
uploads: uploadsReducer
}
type ReducersMapObject = typeof reducers
// Workaround to avoid `$CombinedState` ts errors
// source: https://github.com/reduxjs/redux-toolkit/issues/2068#issuecomment-1130796500
// TODO: remove once we use `redux-toolkit` v2
export const rootReducer: Reducer<
StateFromReducersMapObject<ReducersMapObject>,
ActionFromReducersMapObject<ReducersMapObject>
> = combineReducers(reducers)