diff --git a/src/components/Survey.tsx b/src/components/Survey.tsx index 1762cb7..c9f7a32 100644 --- a/src/components/Survey.tsx +++ b/src/components/Survey.tsx @@ -12,6 +12,7 @@ export interface Question { for: string, header: string, question: string, + maxSelect?: number, optional: true, options: Option[] } @@ -35,14 +36,19 @@ const GreetingPage = ({updatePage}: { /** * Single question component for a guided survey */ -const QuestionPage = ({isLastPage, page, question, updatePage, formData, updateFormData}: { +const QuestionPage = ({isLastPage, page, question, updatePage, formData, updateFormData, dontCareData, setDontCareData}: { isLastPage: boolean, page: number, question: Question, updatePage: (pageNumber: number) => void, formData: Record, updateFormData: Dispatch>>, + dontCareData: Record, + setDontCareData: Dispatch>>, + }) => { + const dontCare = dontCareData[question.for] ?? false; + const OptionToggle = ({option}: {option: Option}) => { const selected = formData[question.for]?.includes(option.value) ?? false; @@ -64,6 +70,14 @@ const QuestionPage = ({isLastPage, page, question, updatePage, formData, updateF updateFormData(newFormData); } + if (dontCare) { + return ( + + ) + } + return ( + : undefined} ) @@ -152,6 +189,7 @@ const GuidedSurvey = ({questions}: { }) => { const [page, setPage] = useState(0); const [formData, setFormData] = useState<(Record)>({}); + const [dontCareData, setDoneCareData] = useState<(Record)>({}); const [previousPage, setPreviousPage] = useState(undefined); const updatePage = (pageNumber: number) => { @@ -180,7 +218,7 @@ const GuidedSurvey = ({questions}: { const isLastPage = pageNumber === questions.length return ( - + ); } diff --git a/src/pages/resources/survey.tsx b/src/pages/resources/survey.tsx index 2a757d0..19ae224 100644 --- a/src/pages/resources/survey.tsx +++ b/src/pages/resources/survey.tsx @@ -6,6 +6,7 @@ const questions: Question[] = [ for: "ages", header: "Age of Patient", question: "How old is the patient?", + maxSelect: 1, optional: true, options: [ {