2023-12-13 14:32:57 +03:00
|
|
|
|
'use client';
|
|
|
|
|
|
2023-08-26 17:26:49 +03:00
|
|
|
|
import { useMemo } from 'react';
|
|
|
|
|
import { useIntl } from 'react-intl';
|
|
|
|
|
|
2023-12-13 14:32:57 +03:00
|
|
|
|
import DataTable, { createColumnHelper } from '@/components/DataTable';
|
|
|
|
|
import { useConceptNavigation } from '@/context/NagivationContext';
|
|
|
|
|
import { ILibraryItem } from '@/models/library';
|
2023-08-26 17:26:49 +03:00
|
|
|
|
|
|
|
|
|
interface ViewSubscriptionsProps {
|
|
|
|
|
items: ILibraryItem[]
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-09 20:36:55 +03:00
|
|
|
|
const columnHelper = createColumnHelper<ILibraryItem>();
|
|
|
|
|
|
2023-08-26 17:26:49 +03:00
|
|
|
|
function ViewSubscriptions({items}: ViewSubscriptionsProps) {
|
2023-12-13 14:32:57 +03:00
|
|
|
|
const router = useConceptNavigation();
|
2023-08-26 17:26:49 +03:00
|
|
|
|
const intl = useIntl();
|
|
|
|
|
|
2023-12-13 14:32:57 +03:00
|
|
|
|
const openRSForm = (item: ILibraryItem) => router.push(`/rsforms/${item.id}`);
|
2023-08-26 17:26:49 +03:00
|
|
|
|
|
|
|
|
|
const columns = useMemo(() =>
|
|
|
|
|
[
|
2023-09-09 20:36:55 +03:00
|
|
|
|
columnHelper.accessor('alias', {
|
2023-08-26 17:26:49 +03:00
|
|
|
|
id: 'alias',
|
2023-09-09 20:36:55 +03:00
|
|
|
|
header: 'Шифр',
|
|
|
|
|
size: 200,
|
|
|
|
|
minSize: 200,
|
|
|
|
|
maxSize: 200,
|
|
|
|
|
enableSorting: true
|
|
|
|
|
}),
|
|
|
|
|
columnHelper.accessor('title', {
|
2023-08-26 17:26:49 +03:00
|
|
|
|
id: 'title',
|
2023-09-09 20:36:55 +03:00
|
|
|
|
header: 'Название',
|
|
|
|
|
minSize: 200,
|
|
|
|
|
size: 800,
|
|
|
|
|
maxSize: 800,
|
|
|
|
|
enableSorting: true
|
|
|
|
|
}),
|
|
|
|
|
columnHelper.accessor('time_update', {
|
2023-08-26 17:26:49 +03:00
|
|
|
|
id: 'time_update',
|
2023-09-09 20:36:55 +03:00
|
|
|
|
header: 'Обновлена',
|
2023-09-11 21:06:51 +03:00
|
|
|
|
minSize: 150,
|
|
|
|
|
size: 150,
|
|
|
|
|
maxSize: 150,
|
2023-12-15 17:34:50 +03:00
|
|
|
|
cell: props =>
|
|
|
|
|
<div className='min-w-[8.25rem]'>
|
|
|
|
|
{new Date(props.cell.getValue()).toLocaleString(intl.locale)}
|
|
|
|
|
</div>,
|
2023-09-09 20:36:55 +03:00
|
|
|
|
enableSorting: true
|
|
|
|
|
})
|
2023-08-26 17:26:49 +03:00
|
|
|
|
], [intl]);
|
|
|
|
|
|
|
|
|
|
return (
|
2023-12-15 17:34:50 +03:00
|
|
|
|
<div className='max-h-[23.8rem] w-fit overflow-auto text-sm border'>
|
2023-11-27 11:33:34 +03:00
|
|
|
|
<DataTable dense noFooter
|
|
|
|
|
columns={columns}
|
|
|
|
|
data={items}
|
|
|
|
|
headPosition='0'
|
2023-09-30 12:47:27 +03:00
|
|
|
|
|
2023-11-27 11:33:34 +03:00
|
|
|
|
enableSorting
|
|
|
|
|
initialSorting={{
|
|
|
|
|
id: 'time_update',
|
|
|
|
|
desc: true
|
|
|
|
|
}}
|
|
|
|
|
noDataComponent={<div className='h-[10rem]'>Отслеживаемые схемы отсутствуют</div>}
|
2023-08-26 17:26:49 +03:00
|
|
|
|
|
2023-11-27 11:33:34 +03:00
|
|
|
|
onRowClicked={openRSForm}
|
|
|
|
|
/>
|
|
|
|
|
</div>);
|
2023-08-26 17:26:49 +03:00
|
|
|
|
}
|
|
|
|
|
|
2023-12-15 17:34:50 +03:00
|
|
|
|
export default ViewSubscriptions;
|