import { Badge, TextWithNAFallback } from '@ballerine/ui'; import { createColumnHelper, RowData } from '@tanstack/react-table'; import dayjs from 'dayjs'; import timezone from 'dayjs/plugin/timezone'; import utc from 'dayjs/plugin/utc'; import { useMemo } from 'react'; import { TKybAndOwnershipAssessment } from '@/domains/assessments/fetchers'; import { KybAndOwnershipAssessmentStatus } from '../KybAndOwnershipAssessmentStatus/KybAndOwnershipAssessmentStatus'; dayjs.extend(utc); dayjs.extend(timezone); // https://tanstack.com/table/v8/docs/api/core/column-def#meta declare module '@tanstack/react-table' { interface ColumnMeta { conditional?: true; showColumn?: boolean; } } const columnHelper = createColumnHelper(); export const useColumns = () => { return useMemo( () => [ columnHelper.accessor('input.companyName', { cell: info => { const companyName = info.getValue(); const isExample = ('isExample' in info.row.original && info.row.original.isExample) ?? false; return (
{companyName} {isExample && ( example )}
); }, header: 'Company Name', }), columnHelper.accessor('input.registrationNumber', { cell: info => { const registrationNumber = info.getValue(); return {registrationNumber}; }, header: 'Registration Number', }), columnHelper.accessor('input.country', { cell: info => { const jurisdictionCode = info.getValue(); const country = jurisdictionCode?.replaceAll('/', ' '); return (
{country}
); }, header: 'Country / State', }), columnHelper.accessor('input.businessId', { cell: info => { const businessId = info.getValue(); return {businessId}; }, header: 'Merchant ID', }), columnHelper.accessor('createdAt', { cell: info => { const displayDate = info.getValue(); // Convert UTC time to local browser time const localDateTime = dayjs.utc(displayDate).local(); const date = localDateTime.format('MMM DD, YYYY'); const time = localDateTime.format('HH:mm'); return (
{date} {time}
); }, header: 'Created At', }), columnHelper.accessor('status', { cell: info => { const status = info.getValue(); return ( ); }, header: 'Status', }), ], [], ); };