File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
import type {SearchParams} from "./searchParams.ts";
export type BreadcrumbItem = {
label: string;
url?: string;
};
export type Option = {
value: string;
label: string;
};
export type HeaderModel = {
title: string;
breadcrumb: BreadcrumbItem[];
homeUrl?: string;
};
export type StatusModel = {
isLoading: boolean;
error: unknown;
successMessage?: string;
};
export type SearchModel<TSearchParams extends SearchParams> = {
totalItems: number;
searchParams: TSearchParams;
onChange: (params: TSearchParams) => void;
searchOptions?: Option[];
pageSizeOptions?: Option[];
};
export type PaginationModel = {
totalItems: number;
totalPages: number;
currentPage: number;
size: number;
onPageChange: (pageIndex: number) => void;
};
export type TableCheckModel<TId extends string | number = string> = {
isAllChecked: boolean;
isPartiallyChecked: boolean;
isChecked: (id: TId) => boolean;
onCheck: (id: TId, checked: boolean) => void;
onCheckAll: (checked: boolean) => void;
};
export type TablePaginationModel = Pick<
PaginationModel,
"totalItems" | "currentPage" | "totalPages"
>;
export type ListTableModel<
TItem,
TSearchParams extends SearchParams,
TExtraData = unknown
> = {
items: TItem[];
extraData?: TExtraData | null;
params: TSearchParams;
onChange: (params: TSearchParams) => void;
pagination: TablePaginationModel;
};
export type CheckableTableModel<
TItem,
TSearchParams extends SearchParams,
TId extends string | number = string,
TExtraData = unknown
> = ListTableModel<TItem, TSearchParams, TExtraData> & {
check: TableCheckModel<TId>;
};
export type RowActionsModel<TActions> = {
rowActions: TActions;
};
export type ListActionsModel = {
disabled?: boolean;
onDelete?: () => void | Promise<void>;
onCreate?: () => void;
};
export type FormActionsModel<TMode extends string = "create" | "update"> = {
mode: TMode;
disabled?: boolean;
onCreate?: () => void | Promise<void>;
onUpdate?: () => void | Promise<void>;
onDelete?: () => void | Promise<void>;
onList?: () => void;
};
export type FormMode = 'create' | 'update'