bazarr/frontend/src/components/tables/SimpleTable.tsx

24 lines
764 B
TypeScript
Raw Normal View History

2022-05-31 15:49:04 +00:00
import { PluginHook, TableInstance, TableOptions, useTable } from "react-table";
import BaseTable, { TableStyleProps } from "./BaseTable";
2021-03-25 14:22:43 +00:00
import { useDefaultSettings } from "./plugins";
2022-05-31 15:49:04 +00:00
export type SimpleTableProps<T extends object> = TableOptions<T> & {
plugins?: PluginHook<T>[];
instanceRef?: React.MutableRefObject<TableInstance<T> | null>;
tableStyles?: TableStyleProps<T>;
};
2021-03-25 14:22:43 +00:00
2022-05-31 15:49:04 +00:00
export default function SimpleTable<T extends object>(
props: SimpleTableProps<T>
) {
const { plugins, instanceRef, tableStyles, ...options } = props;
2021-03-25 14:22:43 +00:00
const instance = useTable(options, useDefaultSettings, ...(plugins ?? []));
2022-05-31 15:49:04 +00:00
if (instanceRef) {
instanceRef.current = instance;
}
2021-03-25 14:22:43 +00:00
2022-05-31 15:49:04 +00:00
return <BaseTable tableStyles={tableStyles} {...instance}></BaseTable>;
2021-03-25 14:22:43 +00:00
}