request list + structure

This commit is contained in:
hamid zarghami
2025-10-20 12:28:48 +03:30
commit dbe37e371e
89 changed files with 9547 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
export interface RowDataType {
id: string | number;
[key: string]: unknown;
}
export interface ColumnType<T extends RowDataType> {
title: string;
key: string;
align?: "left" | "center" | "right";
className?: string;
width?: string | number;
render?: (item: T, index?: number) => React.ReactNode;
}
export interface PaginationType {
currentPage: number;
totalPages: number;
onPageChange: (page: number) => void;
}
export interface ActionType {
label: string;
onClick: () => void;
icon?: React.ReactNode;
className?: string;
disabled?: boolean;
}
export interface TableProps<T extends RowDataType> {
columns: ColumnType<T>[];
data?: T[];
isLoading?: boolean;
onRowClick?: (id: string | number, item: T) => void;
className?: string;
rowClassName?: string | ((item: T, index: number) => string);
noDataMessage?: string;
headerClassName?: string;
emptyRowsCount?: number;
showHeader?: boolean;
actions?: React.ReactNode;
actionsPosition?: "top" | "above-header" | "bottom" | "header-replace";
selectable?: boolean;
selectedActions?: React.ReactNode;
onSelectionChange?: (selectedRows: T[]) => void;
rowActions?: (item: T) => ActionType[];
pagination?: PaginationType;
}