import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Select, SelectItem } from '@carbon/react'; import { useStandardRegimen } from '../hooks/useStandardRegimen'; import styles from './standard-regimen.scss'; import { usePatient } from '@openmrs/esm-framework'; import { calculateAge, filterRegimenData } from './utils'; interface StandardRegimenProps { category: string; setStandardRegimen: (value: string) => void; setStandardRegimenLine: (value: string) => void; selectedRegimenType: string; visitDate: Date; errors: { [key: string]: string }; } const StandardRegimen: React.FC = ({ category, setStandardRegimen, setStandardRegimenLine, selectedRegimenType, visitDate, errors, }) => { const { t } = useTranslation(); const { standardRegimen, isLoading, error } = useStandardRegimen(); const [selectedRegimenLine, setSelectedRegimenLine] = useState(''); const [selectedRegimen, setSelectedRegimen] = useState(''); const [selectedRegimens, setSelectedRegimens] = useState([]); const matchingCategory = standardRegimen.find((item) => item.categoryCode === category); const { patient } = usePatient(); const patientAge = calculateAge(patient?.birthDate, visitDate); const filteredRegimenLineByAge = filterRegimenData(matchingCategory?.category, patientAge); useEffect(() => { const matchingRegimenLine = matchingCategory?.category.find( (line) => line.regimenLineValue === selectedRegimenLine, ); if (matchingRegimenLine) { setSelectedRegimens(matchingRegimenLine.regimen); } else { setSelectedRegimens([]); } }, [selectedRegimenLine, standardRegimen, matchingCategory]); const handleRegimenLineChange = (e) => { setSelectedRegimenLine(e.target.value); setStandardRegimenLine(e.target.value); setSelectedRegimen(''); // Reset selected regimen when regimen line changes }; const handleRegimenChange = (e) => { setSelectedRegimen(e.target.value); setStandardRegimen(e.target.value); }; return (
<> {selectedRegimenType === 'standardUuid' ? ( ) : null} {selectedRegimenLine && ( )}
); }; export default StandardRegimen;