Skip to content

Commit a431ec1

Browse files
committed
useMemo should be outside of the map
1 parent 59390f3 commit a431ec1

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

website/src/components/SearchPage/ReferenceSelector.tsx

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -144,28 +144,30 @@ export const ReferenceSelector: FC<ReferenceSelectorProps> = ({
144144
}, {});
145145
}, [filterSchema, referenceIdentifierField, referenceGenomesInfo]);
146146

147+
const optionsProvidersBySegment = useMemo(() => {
148+
return multiRefSegments.reduce<Record<string, OptionsProvider>>((acc, segment) => {
149+
const identifier = identifierBySegment[segment];
150+
if (!identifier) return acc;
151+
152+
acc[segment] = {
153+
type: 'generic' as const,
154+
lapisUrl,
155+
lapisSearchParameters,
156+
fieldName: identifier,
157+
};
158+
159+
return acc;
160+
}, {});
161+
}, [multiRefSegments, identifierBySegment, lapisUrl, lapisSearchParameters]);
162+
147163
return (
148164
<>
149165
{multiRefSegments.map((segment) => {
150-
const selectId = `${baseSelectId}-${segment}`;
151-
const identifier = identifierBySegment[segment];
152-
const label = labelsBySegment[segment];
153-
154-
const optionsProvider = useMemo(
155-
() => ({
156-
type: 'generic' as const,
157-
lapisUrl,
158-
lapisSearchParameters,
159-
fieldName: identifier!,
160-
}),
161-
[lapisUrl, lapisSearchParameters, identifier],
162-
);
163-
164166
return (
165167
<SegmentReferenceSelector
166168
key={segment}
167-
label={label}
168-
selectId={selectId}
169+
label={labelsBySegment[segment]}
170+
selectId={`${baseSelectId}-${segment}`}
169171
value={selectedReferences[segment]}
170172
onChange={(e) =>
171173
setSelectedReferences({
@@ -179,7 +181,7 @@ export const ReferenceSelector: FC<ReferenceSelectorProps> = ({
179181
[segment]: null,
180182
})
181183
}
182-
optionsProvider={optionsProvider}
184+
optionsProvider={optionsProvidersBySegment[segment]}
183185
/>
184186
);
185187
})}

0 commit comments

Comments
 (0)