Files
2023-08-17 15:52:35 -07:00

37 lines
1.1 KiB
TypeScript

import { createSlice, type PayloadAction } from '@reduxjs/toolkit';
import { TradeLayouts } from '@/constants/layout';
import { LocalStorageKey } from '@/constants/localStorage';
import { getLocalStorage, setLocalStorage } from '@/lib/localStorage';
export interface LayoutState {
selectedTradeLayout: TradeLayouts;
isSidebarOpen: boolean;
}
const initialState = {
isSidebarOpen: true,
selectedTradeLayout: getLocalStorage({
key: LocalStorageKey.SelectedTradeLayout,
defaultValue: TradeLayouts.Reverse,
}),
};
export const layoutSlice = createSlice({
name: 'Layout',
initialState,
reducers: {
setIsSidebarOpen: (state: LayoutState, { payload }: PayloadAction<boolean>) => ({
...state,
isSidebarOpen: payload,
}),
setSelectedTradeLayout: (state: LayoutState, { payload }: PayloadAction<TradeLayouts>) => {
setLocalStorage({ key: LocalStorageKey.SelectedTradeLayout, value: payload });
state.selectedTradeLayout = payload;
},
},
});
export const { setIsSidebarOpen, setSelectedTradeLayout } = layoutSlice.actions;