ConceptPortal-public/rsconcept/frontend/src/features/oss/components/info-operation.tsx

89 lines
2.2 KiB
TypeScript
Raw Normal View History

'use client';
import { createColumnHelper } from '@tanstack/react-table';
2025-03-12 11:55:43 +03:00
import { DataTable } from '@/components/data-table';
2025-03-12 12:04:50 +03:00
import { IconPageRight } from '@/components/icons';
2024-07-26 00:34:08 +03:00
import { type ICstSubstituteInfo, OperationType } from '../backend/types';
2025-02-11 20:56:24 +03:00
import { labelOperationType } from '../labels';
import { type IOperation } from '../models/oss';
interface InfoOperationProps {
operation: IOperation;
2024-07-26 00:34:08 +03:00
}
const columnHelper = createColumnHelper<ICstSubstituteInfo>();
export function InfoOperation({ operation }: InfoOperationProps) {
const columns = [
columnHelper.accessor('substitution_term', {
id: 'substitution_term',
size: 200
}),
columnHelper.accessor('substitution_alias', {
id: 'substitution_alias',
size: 50
}),
columnHelper.display({
id: 'status',
header: '',
size: 40,
cell: () => <IconPageRight size='1.2rem' />
}),
columnHelper.accessor('original_alias', {
id: 'original_alias',
size: 50
}),
columnHelper.accessor('original_term', {
id: 'original_term',
size: 200
})
];
2024-07-26 00:34:08 +03:00
return (
<>
<h2>{operation.alias}</h2>
2024-07-26 00:34:08 +03:00
<p>
<b>Тип:</b> {labelOperationType(operation.operation_type)}
2024-07-26 00:34:08 +03:00
</p>
{!operation.is_owned ? (
<p>
<b>КС не принадлежит ОСС</b>
</p>
) : null}
{operation.is_consolidation ? (
2024-08-17 12:17:13 +03:00
<p>
<b>Ромбовидный синтез</b>
</p>
) : null}
{operation.title ? (
2024-07-26 00:34:08 +03:00
<p>
<b>Название: </b>
{operation.title}
2024-07-26 00:34:08 +03:00
</p>
) : null}
{operation.description ? (
2024-07-26 00:34:08 +03:00
<p>
<b>Описание: </b>
{operation.description}
2024-07-26 00:34:08 +03:00
</p>
) : null}
{operation.substitutions.length > 0 ? (
<DataTable
dense
noHeader
noFooter
className='text-sm border-x select-none mb-2'
data={operation.substitutions}
columns={columns}
/>
) : operation.operation_type !== OperationType.INPUT ? (
<p>
<b>Отождествления:</b> Отсутствуют
</p>
) : null}
</>
2024-07-26 00:34:08 +03:00
);
}