Skip to content

Commit

Permalink
Move required fields text into expandable accordion
Browse files Browse the repository at this point in the history
  • Loading branch information
jtquach1 committed Jan 19, 2024
1 parent a7394e6 commit e8eb917
Showing 1 changed file with 43 additions and 8 deletions.
51 changes: 43 additions & 8 deletions src/views/Questionnaire/QuestionnaireForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,16 @@ import {
getDrugCodeableConceptFromMedicationRequest
} from './questionnaireUtil';
import './QuestionnaireForm.css';
import { Button, Typography } from '@mui/material';
import {
Accordion,
AccordionDetails,
AccordionSummary,
Button,
Chip,
Stack,
Typography
} from '@mui/material';
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
import Tooltip from '@mui/material/Tooltip';

import Client from 'fhirclient/lib/Client';
Expand Down Expand Up @@ -1038,7 +1047,7 @@ export function QuestionnaireForm(props: QuestionnaireProps) {
};

// Get missing fields to display
const getMissingFields = () => {
const getMissingFields = (): JSX.Element => {
const fields: string[] = [];
const requiredFieldErrors = formValidationErrors
? formValidationErrors.filter(error => {
Expand All @@ -1051,7 +1060,37 @@ export function QuestionnaireForm(props: QuestionnaireProps) {
fields.push(name);
});
}
return fields.join(', ');
return (
<Stack marginTop={1}>
<Accordion disableGutters>
<AccordionSummary expandIcon={<ExpandMoreIcon />}>
<Typography className="error-text">
You must include a value for the following missing fields (click to expand):
</Typography>
</AccordionSummary>
<AccordionDetails>
{fields.map((field, index) => (
<Chip
key={`field-${index}`}
sx={{
height: 'auto',
'& .MuiChip-label': {
display: 'block',
whiteSpace: 'normal'
},
width: 'unset',
mb: 1,
mr: 1
}}
label={field}
color="error"
variant="outlined"
/>
))}
</AccordionDetails>
</Accordion>
</Stack>
);
};

const getDisplayButtons = () => {
Expand Down Expand Up @@ -1084,11 +1123,7 @@ export function QuestionnaireForm(props: QuestionnaireProps) {
</span>
</Tooltip>
</div>
{!isFilledOut() ? (
<p className="error-text">You must include a value for {getMissingFields()}</p>
) : (
<></>
)}
{!isFilledOut() && getMissingFields()}
</div>
);
} else {
Expand Down

0 comments on commit e8eb917

Please sign in to comment.