Skip to content

Commit

Permalink
Fix picker answer search
Browse files Browse the repository at this point in the history
  • Loading branch information
simonfernandes committed Jul 1, 2024
1 parent b2cef1d commit 75ae9ee
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { QuestionaryComponentTechniquePicker } from './QuestionaryComponentTechn
import { QuestionTechniquePickerForm } from './QuestionTechniquePickerForm';
import { QuestionTemplateRelationTechniquePickerForm } from './QuestionTemplateRelationTechniquePickerForm';
import TechniquePickerAnswerRenderer from './TechniquePickerAnswerRenderer';
import TechniquePickerSearchCriteriaComponent from './TechniquePickerSearchCriteriaComponent';
import { QuestionaryComponentDefinition } from '../../QuestionaryComponentRegistry';

export const techniquePickerDefinition: QuestionaryComponentDefinition = {
Expand All @@ -27,6 +28,7 @@ export const techniquePickerDefinition: QuestionaryComponentDefinition = {
},
createYupValidationSchema: instrumentPickerValidationSchema,
getYupInitialValue: ({ answer }) => answer.value || null,
searchCriteriaComponent: TechniquePickerSearchCriteriaComponent,
};

export {};
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import { Grid, TextField, Autocomplete } from '@mui/material';
import React, { useState } from 'react';

import {
Call,
InstrumentOption,
QuestionFilterCompareOperator,
TechniquePickerConfig,
} from 'generated/sdk';

import { SearchCriteriaInputProps } from '../../../proposal/SearchCriteriaInputProps';

function TechniquePickerSearchCriteriaComponent({
onChange,
questionTemplateRelation,
}: SearchCriteriaInputProps) {
const [value, setValue] = useState<InstrumentOption | null>(null);
const techniques = (questionTemplateRelation.config as TechniquePickerConfig)
.techniques;

return (
<Grid container spacing={2}>
<Grid item xs={12}>
<Autocomplete
id="answer"
options={techniques}
getOptionLabel={(option) => option.name as string}
renderInput={(params) => (
<TextField {...params} margin="none" label="Answer" />
)}
onChange={(_event, newValue) => {
if (!newValue) return;
setValue(newValue);
onChange(
QuestionFilterCompareOperator.EQUALS,
newValue.id as Call['id']
);
}}
value={value}
data-cy="value"
/>
</Grid>
</Grid>
);
}

export default TechniquePickerSearchCriteriaComponent;

0 comments on commit 75ae9ee

Please sign in to comment.