2023-12-13 14:32:57 +03:00
|
|
|
import { useConceptTheme } from '@/context/ThemeContext';
|
|
|
|
import { ExpressionStatus } from '@/models/rsform';
|
|
|
|
import { colorbgCstStatus } from '@/utils/color';
|
|
|
|
import { prefixes } from '@/utils/constants';
|
|
|
|
import { describeExpressionStatus, labelExpressionStatus } from '@/utils/labels';
|
2023-08-15 21:43:15 +03:00
|
|
|
|
2023-08-16 10:11:22 +03:00
|
|
|
interface InfoCstStatusProps {
|
2023-08-15 21:43:15 +03:00
|
|
|
title?: string
|
|
|
|
}
|
|
|
|
|
2023-08-16 10:11:22 +03:00
|
|
|
function InfoCstStatus({ title }: InfoCstStatusProps) {
|
2023-08-27 00:19:19 +03:00
|
|
|
const { colors } = useConceptTheme();
|
|
|
|
|
2023-08-15 21:43:15 +03:00
|
|
|
return (
|
2023-11-27 11:33:34 +03:00
|
|
|
<div className='flex flex-col gap-1 mb-2 h-fit'>
|
|
|
|
{title ? <h1>{title}</h1> : null}
|
|
|
|
{Object.values(ExpressionStatus)
|
|
|
|
.filter(status => status !== ExpressionStatus.UNDEFINED)
|
|
|
|
.map(
|
|
|
|
(status, index) => {
|
|
|
|
return (
|
|
|
|
<p key={`${prefixes.cst_status_list}${index}`}>
|
|
|
|
<span
|
|
|
|
className='px-1 inline-block font-semibold min-w-[7rem] text-center border text-sm small-caps'
|
|
|
|
style={{backgroundColor: colorbgCstStatus(status, colors)}}
|
|
|
|
>
|
|
|
|
{labelExpressionStatus(status)}
|
|
|
|
</span>
|
|
|
|
<span> - </span>
|
|
|
|
<span>
|
|
|
|
{describeExpressionStatus(status)}
|
|
|
|
</span>
|
|
|
|
</p>);
|
|
|
|
}
|
|
|
|
)}
|
|
|
|
</div>);
|
2023-08-15 21:43:15 +03:00
|
|
|
}
|
|
|
|
|
2023-08-16 10:11:22 +03:00
|
|
|
export default InfoCstStatus;
|