toggle-corp/react-store

View on GitHub
components/View/RawTable.d.ts

Summary

Maintainability
A
0 mins
Test Coverage
import * as React from 'react';

interface DefaultHeader {
    key: string;
    label: React.ReactNode;
}

interface Props<Data, Header = DefaultHeader> {
    className?: string;
    pending?: boolean;
    isFiltered?: boolean;

    headers: Header[];
    data: Data[];

    dataModifier?(data: Data, key: keyof Data): React.ReactNode;
    headerModifier?(header: Header, headers: Header[]): React.ReactNode;

    expandRowId?: string | number;
    expandedRowModifier?(data: Data): React.ReactNode;

    keySelector(data: Data): string | number;

    onBodyClick?(rowKey: string, cellKey: string): void; // FIXME: third props is event
    onHeaderClick?(key: string | number): void; // FIXME: second props is event

    highlightCellKey?: {
        rowKey: string | number;
        columnKey: string | number;
    };
    highlightColumnKeys?: {
        [key: string]: boolean;
    };
    highlightRowKey?: string | number;

    onDataSort?(data: Data[]): void;
}

// eslint-disable-next-line react/prefer-stateless-function, @typescript-eslint/no-explicit-any
declare class RawTable<D, H> extends React.Component<Props<D, H>, any> {
}
export default RawTable;