theme.ts 600 B

12345678910111213141516171819202122232425262728
  1. import { createSlice, PayloadAction } from "@reduxjs/toolkit";
  2. import type { RootState } from "../store";
  3. export type TTheme = "dark" | "ant" | undefined;
  4. interface IState {
  5. theme?: TTheme;
  6. }
  7. const initialState: IState = { theme: "ant" };
  8. export const slice = createSlice({
  9. name: "theme",
  10. initialState,
  11. reducers: {
  12. refresh: (state, action: PayloadAction<TTheme>) => {
  13. state.theme = action.payload;
  14. },
  15. },
  16. });
  17. export const { refresh } = slice.actions;
  18. export const currTheme = (state: RootState): TTheme | undefined =>
  19. state.theme.theme;
  20. export default slice.reducer;