Browse Source

refactor(patient): enhance createListSlices with initial Filter and apply to workSlice

Allow createListSlices table state factory method to accept initial Filter values
Pass initial Filter when creating workSlice using createListSlices
Update WorklistTable to use Filter created by createListSlices
dengdx 3 days ago
parent
commit
569aed3e9e

+ 1 - 1
src/pages/patient/components/WorklistTable.tsx

@@ -383,7 +383,7 @@ const WorklistTable: React.FC = () => {
   const worklistData = useSelector(
   const worklistData = useSelector(
     (state: RootState) => state.workEntities.data
     (state: RootState) => state.workEntities.data
   );
   );
-  const filters = useSelector((state: RootState) => state.search);
+  const filters = useSelector((state: RootState) => state.workFilters);
   const page = useSelector((state: RootState) => state.workPagination.page);
   const page = useSelector((state: RootState) => state.workPagination.page);
   const pageSize = useSelector(
   const pageSize = useSelector(
     (state: RootState) => state.workPagination.pageSize
     (state: RootState) => state.workPagination.pageSize

+ 3 - 2
src/states/list_template/createListSlices.ts

@@ -11,7 +11,8 @@ export function createEntityListSlices<T, F extends object>(
   namespace: string,
   namespace: string,
   fetchThunk,
   fetchThunk,
   deleteThunk,
   deleteThunk,
-  extraReducersForFilter?: (builder) => void
+  extraReducersForFilter?: (builder) => void,
+  initialFilter?: F
 ) {
 ) {
   const entitiesSlice = createSlice({
   const entitiesSlice = createSlice({
     name: `${namespace}/entities`,
     name: `${namespace}/entities`,
@@ -43,7 +44,7 @@ export function createEntityListSlices<T, F extends object>(
 
 
   const filtersSlice = createSlice({
   const filtersSlice = createSlice({
     name: `${namespace}/filters`,
     name: `${namespace}/filters`,
-    initialState: {} as FiltersState<F>,
+    initialState: initialFilter as FiltersState<F>,
     reducers: {
     reducers: {
       setFilters(state, action: PayloadAction<Partial<FiltersState<F>>>) {
       setFilters(state, action: PayloadAction<Partial<FiltersState<F>>>) {
         return { ...state, ...action.payload };
         return { ...state, ...action.payload };

+ 12 - 1
src/states/patient/worklist/slices/workSlice.ts

@@ -23,6 +23,7 @@ import { fetchTaskList } from '../../../../API/patient/workActions';
 export const fetchWorkThunk = createFetchThunk<WorkFilter, work>(
 export const fetchWorkThunk = createFetchThunk<WorkFilter, work>(
   'worklist',
   'worklist',
   async ({ page, pageSize, filters }) => {
   async ({ page, pageSize, filters }) => {
+    // const filtersEx: WorkFilter = { ...filters, status: 'Arrived' }
     const { items, total } = await fetchTaskList(page, pageSize, filters);
     const { items, total } = await fetchTaskList(page, pageSize, filters);
     return { data: items, total };
     return { data: items, total };
   }
   }
@@ -105,7 +106,17 @@ const {
   'worklist',
   'worklist',
   fetchWorkThunk,
   fetchWorkThunk,
   deleteWorkThunk,
   deleteWorkThunk,
-  extraReducersForFilter
+  extraReducersForFilter,
+  {
+    patient_id: '',
+    patient_name: '',
+    start_time: '',
+    end_time: '',
+    access_number: '',
+    status: 'Arrived',
+    page: 1,
+    page_size: 10,
+  } satisfies WorkFilter
 );
 );
 
 
 export const workEntitiesSlice = entitiesSlice;
 export const workEntitiesSlice = entitiesSlice;