ConceptPortal-public/rsconcept/frontend/src/components/Help/InfoCstStatus.tsx

41 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-08-27 00:19:19 +03:00
import { useConceptTheme } from '../../context/ThemeContext';
2023-09-21 14:58:01 +03:00
import { ExpressionStatus } from '../../models/rsform';
import { colorbgCstStatus } from '../../utils/color';
2023-08-15 21:43:15 +03:00
import { prefixes } from '../../utils/constants';
2023-09-21 14:58:01 +03:00
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-24 18:03:10 +03:00
<div className='flex flex-col gap-1 h-fit mb-2'>
2023-08-15 21:43:15 +03:00
{ title && <h1>{title}</h1>}
2023-10-02 23:43:29 +03:00
{ Object.values(ExpressionStatus)
.filter(status => status !== ExpressionStatus.UNDEFINED)
.map(
(status, index) => {
return (
<p key={`${prefixes.cst_status_list}${index}`}>
<span
2023-11-05 18:41:28 +03:00
className='px-1 inline-block font-semibold min-w-[7rem] text-center border text-sm small-caps'
2023-10-02 23:43:29 +03:00
style={{backgroundColor: colorbgCstStatus(status, colors)}}
>
{labelExpressionStatus(status)}
</span>
<span> - </span>
<span>
{describeExpressionStatus(status)}
</span>
</p>);
}
)}
2023-08-16 00:39:16 +03:00
</div>
2023-08-15 21:43:15 +03:00
);
}
2023-08-16 10:11:22 +03:00
export default InfoCstStatus;