Files
Fulfillment-Frontend/src/pages/BarcodePage/component/BarcodeTemplatesTable/BarcodeTemplatesTable.tsx
2024-05-07 08:07:18 +03:00

62 lines
2.6 KiB
TypeScript

import {CRUDTableProps} from "../../../../types/CRUDTable.tsx";
import {BarcodeTemplateSchema} from "../../../../client";
import {FC} from "react";
import {useBarcodeTemplatesTableColumns} from "./columns.tsx";
import {BaseTable} from "../../../../components/BaseTable/BaseTable.tsx";
import {modals} from "@mantine/modals";
import {ActionIcon, Flex, Tooltip} from "@mantine/core";
import {IconEdit, IconTrash} from "@tabler/icons-react";
const BarcodeTemplatesTable: FC<CRUDTableProps<BarcodeTemplateSchema>> = ({
items,
onDelete,
onChange
}) => {
const columns = useBarcodeTemplatesTableColumns();
const onEditClick = (template: BarcodeTemplateSchema) => {
if (!onChange) return;
modals.openContextModal({
modal: "barcodeTemplateFormModal",
title: 'Создание шаблона',
withCloseButton: false,
innerProps: {
onChange: (newTemplate) => onChange(newTemplate),
element: template,
}
});
}
return (
<>
<BaseTable
striped
data={items}
columns={columns}
restProps={{
enableColumnActions: false,
enableRowActions: true,
renderRowActions: ({row}) => (
<Flex gap="md">
<Tooltip label="Редактировать">
<ActionIcon
onClick={() => onEditClick(row.original)}
variant={"default"}
>
<IconEdit/>
</ActionIcon>
</Tooltip>
<Tooltip label="Удалить">
<ActionIcon onClick={() => {
if (onDelete) onDelete(row.original);
}} variant={"default"}>
<IconTrash/>
</ActionIcon>
</Tooltip>
</Flex>
)
}}
/>
</>
)
}
export default BarcodeTemplatesTable;