Files
Crm-Client-Frontend/pages/marketplaces/components/MarketplacesTable/columns.tsx
2025-10-18 01:46:46 +03:00

58 lines
1.8 KiB
TypeScript

import { useMemo } from 'react';
import { IconSettings } from '@tabler/icons-react';
import { DataTableColumn } from 'mantine-datatable';
import { Center } from '@mantine/core';
import BaseTableActions from '@/components/Tables/Actions/BaseTableActions';
import { MarketplaceSchema } from '@/lib/client';
import { zMarketplaceSchema } from '@/lib/client/zod.gen';
import BaseMarketplaceColumnRender from '@/pages/marketplaces/components/BaseMarketplaceColumnRender/BaseMarketplaceColumnRender';
const useMarketplacesTableColumns = () => {
return useMemo(
() =>
[
{
accessor: 'id',
title: 'ID',
width: '0%',
},
{
accessor: 'baseMarketplace',
title: 'Базовый маркетплейс',
render: ({ baseMarketplace }: MarketplaceSchema) => (
<BaseMarketplaceColumnRender object={baseMarketplace} />
),
width: '0%',
},
{
accessor: 'name',
title: 'Название',
},
{
width: '0%',
accessor: 'actions',
title: (
<Center>
<IconSettings size={16} />
</Center>
),
render: (element) => (
<BaseTableActions
element={element}
onChange={async () => {
// const zodSchema = await zMarketplaceSchema.parseAsync(element)
Object.entries(zMarketplaceSchema.shape).forEach(([key, val], index, arr) => {
console.log(val.type);
});
}}
onDelete={async () => {}}
/>
),
},
] as DataTableColumn<MarketplaceSchema>[],
[]
);
};
export default useMarketplacesTableColumns;