import { combineReducers as r } from "@reduxjs/toolkit"
import { appSlice as e } from "./app"
import { ROOM_STATE_KEY as m, roomReducer as o } from "./room"
import { memberListSlice as t } from "./member-list"
import {
MEMBER_STATE_KEY as i,
memberReducer as p,
createMemberSubscriptionMiddleware as d,
} from "./member"
import { networkSlice as f } from "./network"
import { CHAT_STATE_KEY as a, chatReducer as c } from "./chat"
import { createListViewMiddleware as n } from "./chat/list-view/list-view-middleware"
import { CALL_STATE_KEY as s, callReducer as u } from "./call"
import { deviceSlice as l } from "./media"
import { errorSlice as E } from "./error"
import { notificationSlice as T } from "./notification"
import { statsSlice as _ } from "./stats"
import { syslogReducer as g, SYSLOG_STATE_KEY as O, syslogMiddleware as b } from "./syslog"
import { PREFERENCES_STATE_KEY as w, preferencesReducer as C } from "./preferences"
import { FILE_STATE_KEY as N, fileReducer as x } from "./media/file"
import { uiMobileSlice as A } from "./ui-mobile"
import { identitySlice as K } from "./identity"
import { storeLoopStatsMiddleware as X } from "./debug/store-loop.middleware"
import { debugSlice as Y } from "./debug/debug.reducer"
import { REPORTED_MESSAGES_STATE_KEY as L, reportedMessagesReducer as P } from "./reported-messages"
import { UPLOADS_STATE_KEY as R, uploadsReducer as h } from "./uploads"
export {
APP_CONTEXT_KEY,
ENV_CONTEXT_KEY,
LOCAL_STORAGE_CONTEXT_KEY,
PLATFORM_CONTEXT_KEY,
} from "./constants"
export const getReducer = (d = {}) =>
r({
[A.name]: A.reducer,
[e.name]: e.reducer,
[m]: o,
[a]: c,
[s]: u,
[N]: x,
[E.name]: E.reducer,
[T.name]: T.reducer,
[f.name]: f.reducer,
[K.name]: K.reducer,
[l.name]: l.reducer,
[i]: p,
[t.name]: t.reducer,
[w]: C,
[_.name]: _.reducer,
[O]: g,
[Y.name]: Y.reducer,
[L]: P,
[R]: h,
...d,
})
export const getMiddleware = () => [b, X(), n(), d(5)]