desmy-react
Version:
Introducing an easy-to-use, lightning-fast React.js component that streamlines your development process. Our solution prioritizes simplicity, speed, and optimization, making it a breeze to build projects in React.
204 lines (202 loc) • 5.6 kB
TypeScript
import { default as React, Component, ChangeEvent, ReactNode, KeyboardEvent } from 'react';
interface DataTableProps {
settings: {
default_sorted_column: string;
onURLClick: (url: any) => void;
header: {
title: string;
class: string;
hint: string;
};
deleteinfo: {
name: string;
id: string;
};
breadcrumb?: {
name: string;
url: string;
}[];
request_url: string;
handleOnViewClick: (user: any) => void;
handleOnClickExtra: (user: any, name: string) => void;
image?: {
placeholder?: string;
rounded?: boolean;
};
read_more_limit?: number;
extra_handle?: Array<{
name: string;
icon: React.ReactNode;
}>;
headers: any[];
columns: string[];
table_data?: {
name: string;
class: string;
}[];
filter?: {
title: string;
data: {
name: string;
data: string;
defaults?: {
[key: string]: string;
};
}[];
};
url: string;
handleEdit: (user: any) => void;
};
className?: string;
onRef?: (ref: DesmyDataTable | null) => void;
}
interface DataTableState {
isFocused?: boolean;
searchText?: string;
dtablemodal: React.ReactNode | null;
hasRequest: boolean;
exceptionalColumns: string[];
selected: number;
isLoading: boolean;
filterhead: {
name: string;
data: string;
}[];
filters: {
search?: {
[key: string]: {
id: string;
name: string;
};
};
data: {
name: string;
data: string;
defaults?: {
[key: string]: string;
};
}[];
};
input: {
search: string;
is_searching: boolean;
};
entities: {
data: any[];
meta: {
current_page: number;
next_page: number | null;
from: number;
last_page: number;
per_page: number;
to: number;
total: number;
};
};
custom_settings: {
sorted_column: string;
order: "asc" | "desc";
first_page: number;
current_page: number;
offset: number;
};
settings: {
default_sorted_column: string;
header: {
title: string;
class: string;
hint: string;
};
breadcrumb?: {
name: string;
url: string;
}[];
headers: any[];
columns: string[];
table_data?: {
name: string;
class: string;
}[];
};
error: {
state?: boolean;
message?: string;
type?: string;
color?: string;
retry?: boolean;
};
alerterror: {
state: boolean;
message: string;
type: string;
color: string;
};
}
declare class DesmyDataTable extends Component<DataTableProps, DataTableState> {
renderedSettings: any[];
dataCollection: any[];
chunkSize: number;
currentIndex: number;
hasClear: boolean;
isLoading: boolean;
hasLoadLastData: boolean;
current_page: number;
search: string;
filterloaded: boolean;
constructor(props: DataTableProps);
componentDidMount(): Promise<void>;
componentDidUpdate: (_prevProps: DataTableProps, _prevState: DataTableState) => Promise<void>;
handleScroll(event: React.UIEvent<HTMLDivElement>): void;
errors: (data: {
state: boolean;
message: string;
type: string;
color: string;
}) => void;
handleReset: () => void;
handleError: (message?: string, retry?: boolean) => void;
fetchEntities(): Promise<void>;
columnHead(value: string): string;
sortByColumn(column: string): void;
tableHeads: () => ReactNode[];
handleClear: () => void;
initialChunck(): void;
addHeaderAndColumn: (header: string, column: string) => void;
removeHeaderAndColumn: (header: string) => void;
clearFetchEntities: () => void;
handleSearch: (event: KeyboardEvent<HTMLInputElement>) => void;
searchFilter: (filters: {
search: {
[key: string]: {
id: string;
name: string;
};
};
data: {
name: string;
data: string;
defaults?: {
[key: string]: string;
};
}[];
}) => Promise<void>;
handleInput: (event: ChangeEvent<HTMLInputElement>) => void;
loadNextPage: () => void;
handleFocus: () => void;
handleBlur: () => void;
onChangeValue: (event: React.ChangeEvent<HTMLInputElement>) => void;
handleKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
loadNextBatch: () => void;
renderChunk(): void;
handleSearhing(): void;
removeFilterByName: (data: string) => void;
handleFiltered: () => void;
handleRetry: () => void;
handleHint: () => string;
handleOnSuccess: (index: number) => void;
handleEdit: (user: any) => void;
handleBreadCrumbNavigations(e: React.MouseEvent, url: string): void;
renderBreadcrumb(): import("react/jsx-runtime").JSX.Element | null;
render(): import("react/jsx-runtime").JSX.Element;
}
export { DesmyDataTable };