burdy
Version:
Open Source Headless Platform
37 lines (36 loc) • 1.49 kB
TypeScript
import { UseAsyncReturn } from 'react-async-hook';
import React, { Dispatch, SetStateAction } from 'react';
import { IUser } from '@shared/interfaces/model';
import { SelectionMode } from '@fluentui/react';
import { ModelState } from '@admin/helpers/hooks';
import ExtendedSelection, { ItemsOrKeys } from '@admin/helpers/selection';
export interface IUsersContext {
list: UseAsyncReturn<IUser[], []>;
get: UseAsyncReturn<IUser, [id: number]>;
create: UseAsyncReturn<any, [Partial<IUser & {
notify?: boolean;
}>]>;
deleteMany: UseAsyncReturn<any, [id: number[]]>;
update: UseAsyncReturn<any, [id: number, params: Partial<IUser>]>;
updateMany: UseAsyncReturn<Partial<IUser>[]>;
resetPassword: UseAsyncReturn<{
id: number;
password: string;
notify: boolean;
}>;
selectedUsers: IUser[];
selection: ExtendedSelection<IUser>;
users: IUser[];
usersState: ModelState<IUser>;
setListParams: Dispatch<SetStateAction<any>>;
listParams: any;
}
export declare const UsersContext: React.Context<IUsersContext>;
export interface IUsersContextProviderProps {
defaultSelectedUsers?: ItemsOrKeys<IUser>;
selectionMode?: SelectionMode;
}
declare const UsersContextProvider: React.FC<IUsersContextProviderProps>;
declare const useUsers: () => IUsersContext;
declare const withUsers: <T extends object>(Component: React.FC<T>) => (props: T) => JSX.Element;
export { useUsers, withUsers, UsersContextProvider };