theme.ts 663 B

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