phx-react
Version:
PHX REACT
60 lines (59 loc) • 1.63 kB
TypeScript
import { ReactNode } from 'react';
import { SelectedButtonIcon } from '../TableV3/SelectedAction';
import { ComplexAction } from '../types';
import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';
import { ReadonlyURLSearchParams } from 'next/navigation';
export interface THeader {
name: string | ReactNode;
col: number;
row: number;
children?: Array<THeader>;
}
export type TTableData = Record<string, any>;
export interface RowChildrenData {
headers: Array<string>;
body: Array<string>;
data: Array<Record<string, any>>;
}
export interface TBodyComponent {
[key: string]: (value: any, itemBody: any) => {
value: any;
row?: number;
children?: RowChildrenData;
};
}
export interface TMergeConfig {
isMergeRowData: boolean;
columnPosition: Array<{
key: string;
position: number;
}>;
}
export interface TSearch {
enable: boolean;
loading?: boolean;
onChange?(searchValue: string): void;
}
export interface TPagination {
enable: boolean;
dataAggregate: number;
setRowNumberInPage?(rowNumber: number): void;
rowNumberInPage: number;
loading?: boolean;
onChange?(page: number): void;
}
export interface TSelectedAllPeople {
enable: boolean;
selectedAction: {
label: string;
actions: Array<ComplexAction & {
icon?: SelectedButtonIcon;
}>;
};
maxSelectedPeople?: number;
hideSelectedAction?: boolean;
}
export interface NavigationUrlApply {
router?: AppRouterInstance;
searchParams: ReadonlyURLSearchParams;
}