examWorksCacheSlice.ts 829 B

1234567891011121314151617181920212223242526272829303132
  1. import { createSlice, PayloadAction } from '@reduxjs/toolkit';
  2. import { Task as Work } from '../../API/patient/workActions';
  3. interface ExamWorksCacheState {
  4. works: Work[];
  5. }
  6. const initialState: ExamWorksCacheState = {
  7. works: [],
  8. };
  9. const examWorksCacheSlice = createSlice({
  10. name: 'examWorksCache',
  11. initialState,
  12. reducers: {
  13. addWork: (state, action: PayloadAction<Work>) => {
  14. state.works.push(action.payload);
  15. },
  16. removeWork: (state, action: PayloadAction<string>) => {
  17. state.works = state.works.filter(
  18. (work) => work.AccessionNumber !== action.payload
  19. );
  20. },
  21. clearWorks: (state) => {
  22. state.works = [];
  23. },
  24. },
  25. });
  26. export const { addWork, removeWork, clearWorks } = examWorksCacheSlice.actions;
  27. export default examWorksCacheSlice.reducer;
  28. export type { Work };