Skip to content

Commit

Permalink
feat: identification for phone surveyUnit
Browse files Browse the repository at this point in the history
  • Loading branch information
Grafikart committed Feb 16, 2024
1 parent 11e8184 commit dbb80c4
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 16 deletions.
5 changes: 2 additions & 3 deletions src/ui/SurveyUnit/IdentificationCard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ import RadioGroup from '@mui/material/RadioGroup';
* @param {SurveyUnit} surveyUnit
*/
export function IdentificationCard({ surveyUnit }) {
const { questions, setQuestion, answers, question, setAnswer } = useIdentificationQuestions(
surveyUnit
);
const { questions, setQuestion, answers, question, setAnswer } =
useIdentificationQuestions(surveyUnit);
return (
<>
<Card p={2} elevation={0}>
Expand Down
14 changes: 7 additions & 7 deletions src/utils/enum/IdentificationAnswersEnum.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,13 @@ export const identificationAnswersEnum = {
label: `${D.categoryVacant}`,
concluding: true,
},
// CATEGORY_DK: {
// questionType: identificationAnswerTypeEnum.CATEGORY,
// type: 'CATEGORY_DK',
// value: 'DK',
// label: `${D.categoryDontKnow}`,
// concluding: false,
// },
CATEGORY_DK: {
questionType: identificationAnswerTypeEnum.CATEGORY,
type: 'CATEGORY_DK',
value: 'DK',
label: `${D.categoryDontKnow}`,
concluding: false,
},
OCCUPANT_IDENTIFIED: {
questionType: identificationAnswerTypeEnum.OCCUPANT,
type: 'OCCUPANT_IDENTIFIED',
Expand Down
1 change: 1 addition & 0 deletions src/utils/enum/IdentificationConfigurationEnum.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export const identificationConfigurationEnum = {
NOIDENT: 'NOIDENT',
IASCO: 'IASCO',
TEL: 'TEL',
};
10 changes: 10 additions & 0 deletions src/utils/functions/seeder.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { surveyUnitStateEnum } from '../enum/SUStateEnum';
import { contactOutcomeEnum } from '../enum/ContactOutcomeEnum';
import { surveyUnitIDBService } from '../indexeddb/services/surveyUnit-idb-service';
import userIdbService from '../indexeddb/services/user-idb-service';
import { identificationConfigurationEnum } from 'utils/enum/IdentificationConfigurationEnum';

const day = 60 * 60 * 1000 * 24;
const year = day * 365;
Expand Down Expand Up @@ -175,6 +176,15 @@ export async function seedData() {
},
});
}
// Create a fillable TEL surveyUnit
surverUnits.push({
...surverUnits[0],
id: 'sutel',
identification: {},
firstName: 'ET',
lastName: 'Telephone',
identificationConfiguration: identificationConfigurationEnum.TEL,
});
await userIdbService.insert({
id: 1,
title: 'MISTER',
Expand Down
17 changes: 11 additions & 6 deletions src/utils/hooks/useIdentificationQuestions.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ const getQuestions = config => {
switch (config) {
case identificationConfigurationEnum.IASCO:
return identificationQuestionsEnum;
case identificationConfigurationEnum.NOIDENT:
case identificationConfigurationEnum.TEL:
return {
SITUATION: identificationQuestionsEnum.SITUATION,
CATEGORY: identificationQuestionsEnum.CATEGORY,
};
default:
return {};
}
Expand All @@ -22,6 +26,8 @@ const getAnswersByQuestionType = (type, config) => {
switch (config) {
case identificationConfigurationEnum.IASCO:
return Object.values(identificationAnswersEnum).filter(a => a.questionType === type);
case identificationConfigurationEnum.TEL:
return Object.values(identificationAnswersEnum).filter(a => a.questionType === type);
case identificationConfigurationEnum.NOIDENT:
default:
return [];
Expand Down Expand Up @@ -64,10 +70,10 @@ export function useIdentificationQuestions(surveyUnit) {
});

/* @var {{questionType: string, value: string, label: string}[]} */
const answers = useMemo(() => getAnswersByQuestionType(question?.type, config), [
question,
config,
]);
const answers = useMemo(
() => getAnswersByQuestionType(question?.type, config),
[question, config]
);

/**
* @param {Answer} answer
Expand Down Expand Up @@ -97,7 +103,6 @@ export function useIdentificationQuestions(surveyUnit) {
// Automatically select the next unanswered question or close the current selected question
const currentIndex = questions.findIndex(q => q.type === question.type);
const nextIndex = questions.findIndex((q, k) => k > currentIndex && !q.answer);
console.log('aa', { currentIndex, nextIndex });
setQuestion(nextIndex ? questions[nextIndex] : undefined);
}

Expand Down

0 comments on commit dbb80c4

Please sign in to comment.