Initial commit

This commit is contained in:
James Jia - Test
2023-09-08 13:52:13 -07:00
commit 4b86068d8f
584 changed files with 59963 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
import { AbacusApiState } from '@/constants/abacus';
import { LocalStorageKey } from '@/constants/localStorage';
import {
DEFAULT_APP_ENVIRONMENT,
isValidDydxNetwork,
type DydxNetwork,
} from '@/constants/networks';
import { getLocalStorage } from '@/lib/localStorage';
export interface AppState {
apiState: AbacusApiState | undefined;
pageLoaded: boolean;
selectedNetwork: DydxNetwork;
}
const initialState: AppState = {
apiState: undefined,
pageLoaded: false,
selectedNetwork: getLocalStorage({
key: LocalStorageKey.SelectedNetwork,
defaultValue: DEFAULT_APP_ENVIRONMENT,
validateFn: isValidDydxNetwork,
}),
};
export const appSlice = createSlice({
name: 'App',
initialState,
reducers: {
initializeLocalization: (state: AppState) => ({
...state,
pageLoaded: true,
}),
initializeWebsocket: (state: AppState) => state,
setApiState: (state: AppState, action: PayloadAction<AbacusApiState>) => ({
...state,
apiState: action.payload,
}),
setSelectedNetwork: (state: AppState, action: PayloadAction<DydxNetwork>) => ({
...state,
selectedNetwork: action.payload,
}),
},
});
export const {
initializeLocalization,
initializeWebsocket,
setApiState,
setSelectedNetwork,
} = appSlice.actions;