|
|
@ -19,16 +19,18 @@ type Props = BaseProps &
|
|
|
|
Readonly<{
|
|
|
|
Readonly<{
|
|
|
|
onSelect: (option: TypeaheadOption | null) => void;
|
|
|
|
onSelect: (option: TypeaheadOption | null) => void;
|
|
|
|
selectedValues?: Set<string>;
|
|
|
|
selectedValues?: Set<string>;
|
|
|
|
|
|
|
|
value?: TypeaheadOption | null;
|
|
|
|
}>;
|
|
|
|
}>;
|
|
|
|
|
|
|
|
|
|
|
|
export default function ResumeExperienceTypeahead({
|
|
|
|
export default function ResumeExperienceTypeahead({
|
|
|
|
onSelect,
|
|
|
|
onSelect,
|
|
|
|
selectedValues = new Set(),
|
|
|
|
selectedValues = new Set(),
|
|
|
|
|
|
|
|
value,
|
|
|
|
...props
|
|
|
|
...props
|
|
|
|
}: Props) {
|
|
|
|
}: Props) {
|
|
|
|
const [query, setQuery] = useState('');
|
|
|
|
const [query, setQuery] = useState('');
|
|
|
|
const options = EXPERIENCES.filter(
|
|
|
|
const options = EXPERIENCES.filter(
|
|
|
|
({ value }) => !selectedValues.has(value),
|
|
|
|
(option) => !selectedValues.has(option.value),
|
|
|
|
).filter(
|
|
|
|
).filter(
|
|
|
|
({ label }) =>
|
|
|
|
({ label }) =>
|
|
|
|
label.toLocaleLowerCase().indexOf(query.toLocaleLowerCase()) > -1,
|
|
|
|
label.toLocaleLowerCase().indexOf(query.toLocaleLowerCase()) > -1,
|
|
|
@ -40,6 +42,7 @@ export default function ResumeExperienceTypeahead({
|
|
|
|
noResultsMessage="No available experiences."
|
|
|
|
noResultsMessage="No available experiences."
|
|
|
|
nullable={true}
|
|
|
|
nullable={true}
|
|
|
|
options={options}
|
|
|
|
options={options}
|
|
|
|
|
|
|
|
value={value}
|
|
|
|
onQueryChange={setQuery}
|
|
|
|
onQueryChange={setQuery}
|
|
|
|
onSelect={onSelect}
|
|
|
|
onSelect={onSelect}
|
|
|
|
{...props}
|
|
|
|
{...props}
|
|
|
|