2022-01-04 12:16:09 +00:00
|
|
|
import clsx from 'clsx';
|
|
|
|
import { PropsWithChildren } from 'react';
|
|
|
|
|
2023-06-22 14:11:10 +00:00
|
|
|
import { AutomationTestingProps } from '@/types';
|
|
|
|
|
2022-09-02 15:30:34 +00:00
|
|
|
import { TableContainer } from './TableContainer';
|
2022-08-11 04:33:29 +00:00
|
|
|
import { TableActions } from './TableActions';
|
2023-05-02 06:42:16 +00:00
|
|
|
import { TableFooter } from './TableFooter';
|
2022-08-11 04:33:29 +00:00
|
|
|
import { TableTitleActions } from './TableTitleActions';
|
|
|
|
import { TableSettingsMenu } from './TableSettingsMenu';
|
|
|
|
import { TableTitle } from './TableTitle';
|
2023-05-02 06:42:16 +00:00
|
|
|
import { TableContent } from './TableContent';
|
|
|
|
import { TableHeaderCell } from './TableHeaderCell';
|
2022-08-11 04:33:29 +00:00
|
|
|
import { TableHeaderRow } from './TableHeaderRow';
|
|
|
|
import { TableRow } from './TableRow';
|
2022-01-04 12:16:09 +00:00
|
|
|
|
2023-06-22 14:11:10 +00:00
|
|
|
interface Props extends AutomationTestingProps {
|
2023-05-02 06:42:16 +00:00
|
|
|
className?: string;
|
|
|
|
}
|
|
|
|
|
2023-06-22 14:11:10 +00:00
|
|
|
function MainComponent({
|
|
|
|
children,
|
|
|
|
className,
|
|
|
|
'data-cy': dataCy,
|
|
|
|
}: PropsWithChildren<Props>) {
|
2022-01-04 12:16:09 +00:00
|
|
|
return (
|
|
|
|
<div className="table-responsive">
|
|
|
|
<table
|
2023-06-22 14:11:10 +00:00
|
|
|
data-cy={dataCy}
|
2022-01-04 12:16:09 +00:00
|
|
|
className={clsx(
|
2023-02-12 21:04:24 +00:00
|
|
|
'table-hover table-filters nowrap-cells table',
|
2022-01-04 12:16:09 +00:00
|
|
|
className
|
|
|
|
)}
|
|
|
|
>
|
|
|
|
{children}
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
2022-08-11 04:33:29 +00:00
|
|
|
|
2022-11-22 12:16:34 +00:00
|
|
|
MainComponent.displayName = 'Table';
|
|
|
|
|
2022-08-11 04:33:29 +00:00
|
|
|
interface SubComponents {
|
|
|
|
Container: typeof TableContainer;
|
|
|
|
Actions: typeof TableActions;
|
|
|
|
TitleActions: typeof TableTitleActions;
|
|
|
|
HeaderCell: typeof TableHeaderCell;
|
|
|
|
SettingsMenu: typeof TableSettingsMenu;
|
|
|
|
Title: typeof TableTitle;
|
|
|
|
Row: typeof TableRow;
|
|
|
|
HeaderRow: typeof TableHeaderRow;
|
|
|
|
Content: typeof TableContent;
|
|
|
|
Footer: typeof TableFooter;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const Table: typeof MainComponent & SubComponents =
|
|
|
|
MainComponent as typeof MainComponent & SubComponents;
|
|
|
|
|
|
|
|
Table.Actions = TableActions;
|
|
|
|
Table.TitleActions = TableTitleActions;
|
|
|
|
Table.Container = TableContainer;
|
|
|
|
Table.HeaderCell = TableHeaderCell;
|
|
|
|
Table.SettingsMenu = TableSettingsMenu;
|
|
|
|
Table.Title = TableTitle;
|
|
|
|
Table.Row = TableRow;
|
|
|
|
Table.HeaderRow = TableHeaderRow;
|
|
|
|
Table.Content = TableContent;
|
|
|
|
Table.Footer = TableFooter;
|