import { createAsyncThunk } from '@reduxjs/toolkit'; export function createFetchThunk( 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 ) { return createAsyncThunk(`${namespace}/delete`, async (ids: string[]) => { await deleter(ids); return ids; }); }