schedule.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { createSlice } from "@reduxjs/toolkit";
  2. interface ScheduleState {
  3. scenario: string | null;
  4. schedule: {
  5. fast: {
  6. start_time: string | null;
  7. end_time: string | null;
  8. } | null;
  9. sleep: {
  10. start_time: string | null;
  11. end_time: string | null;
  12. } | null;
  13. } | null;
  14. }
  15. const initialState: ScheduleState = {
  16. scenario: null,
  17. schedule: null,
  18. }
  19. const scheduleSlice = createSlice({
  20. name: 'user',
  21. initialState,
  22. reducers: {
  23. setScenario(state, action) {
  24. state.scenario = action.payload;
  25. console.log(state.scenario);
  26. },
  27. setFastSchedule(state, action) {
  28. if (state.schedule == null){
  29. state.schedule = {
  30. fast: {
  31. start_time: null,
  32. end_time: null,
  33. },
  34. sleep: {
  35. start_time: null,
  36. end_time: null,
  37. }
  38. }
  39. }
  40. state.schedule!.fast = action.payload;
  41. },
  42. setSleepSchedule(state, action) {
  43. state.schedule!.sleep = action.payload;
  44. },
  45. }
  46. });
  47. export default scheduleSlice.reducer;
  48. export const { setScenario, setFastSchedule, setSleepSchedule } = scheduleSlice.actions;