| 123456789101112131415161718192021222324252627 |
- import { createAsyncThunk } from '@reduxjs/toolkit';
- export function createFetchThunk<TFilter, TItem>(
- namespace: string,
- fetcher: (args: {
- page: number;
- pageSize: number;
- filters: TFilter;
- }) => Promise<{ data: TItem[]; total: number }>
- ) {
- return createAsyncThunk(
- `${namespace}/fetch`,
- async (args: { page: number; pageSize: number; filters: TFilter }) => {
- return await fetcher(args);
- }
- );
- }
- export function createDeleteThunk(
- namespace: string,
- deleter: (ids: string[]) => Promise<void>
- ) {
- return createAsyncThunk(`${namespace}/delete`, async (ids: string[]) => {
- await deleter(ids);
- return ids;
- });
- }
|