2019-12-07 16:58:52 +05:30
|
|
|
import { combineReducers } from 'redux';
|
|
|
|
|
2019-12-08 00:32:00 +05:30
|
|
|
import auth, { State as AuthState } from 'app/components/auth/reducer';
|
|
|
|
import user, { User } from 'app/components/user/reducer';
|
|
|
|
import accounts, {
|
|
|
|
State as AccountsState,
|
|
|
|
} from 'app/components/accounts/reducer';
|
|
|
|
import i18n, { State as I18nState } from 'app/components/i18n/reducer';
|
|
|
|
import popup, { State as PopupState } from 'app/components/ui/popup/reducer';
|
|
|
|
import bsod from 'app/components/ui/bsod/reducer';
|
|
|
|
import apps, { Apps } from 'app/components/dev/apps/reducer';
|
2019-12-07 16:58:52 +05:30
|
|
|
import { ThunkDispatch, ThunkAction as ReduxThunkAction } from 'redux-thunk';
|
|
|
|
import { Store as ReduxStore } from 'redux';
|
|
|
|
|
|
|
|
export interface RootState {
|
|
|
|
auth: AuthState;
|
|
|
|
accounts: AccountsState;
|
|
|
|
user: User;
|
|
|
|
popup: PopupState;
|
|
|
|
apps: Apps;
|
|
|
|
i18n: I18nState;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface Action<T = any> {
|
|
|
|
type: string;
|
|
|
|
payload?: T;
|
|
|
|
}
|
|
|
|
export type Dispatch<T extends Action = Action> = ThunkDispatch<
|
|
|
|
RootState,
|
|
|
|
undefined,
|
|
|
|
T
|
|
|
|
>;
|
|
|
|
export type GetState = () => RootState;
|
|
|
|
export type ThunkAction<T = any> = ReduxThunkAction<
|
|
|
|
T,
|
|
|
|
RootState,
|
|
|
|
undefined,
|
|
|
|
Action
|
|
|
|
>;
|
|
|
|
export type Store = ReduxStore<RootState> & {
|
|
|
|
dispatch: Dispatch;
|
|
|
|
};
|
|
|
|
|
|
|
|
export default combineReducers({
|
|
|
|
bsod,
|
|
|
|
auth,
|
|
|
|
user,
|
|
|
|
accounts,
|
|
|
|
i18n,
|
|
|
|
popup,
|
|
|
|
apps,
|
|
|
|
});
|