in fronts-client/src/components/feed/RecipeSearchContainer.tsx [173:276]
uprateConfig: getUpdateConfig(),
limit: !!filters ? 300 : 100,
allSponsors: true,
});
break;
}
},
[selectedOption, searchText, page, dateField, orderingForce, filters],
);
const renderTheFeed = () => {
switch (selectedOption) {
case FeedType.recipes:
return recipeSearchIds.map((id) => (
<RecipeFeedItem
key={id}
id={id}
showTimes={forceDates || !!dateField}
/>
));
case FeedType.chefs:
//Fixing https://the-guardian.sentry.io/issues/5820707430/?project=35467&referrer=issue-stream&statsPeriod=90d&stream_index=0&utc=true
//It seems that some null values got into the `chefSearchIds` list
return chefSearchIds
.filter((chefId) => !!chefId)
.map((chefId) => <ChefFeedItem key={chefId} id={chefId} />);
}
};
return (
<React.Fragment>
<InputContainer>
<TextInputContainer>
<TextInput
placeholder={
selectedOption === FeedType.recipes
? 'Search recipes'
: 'Search chefs'
}
displaySearchIcon
onChange={(event) => {
setPage(1);
setSearchText(event.target.value);
}}
onClick={() => setShowAdvancedRecipes(true)}
value={searchText}
/>
</TextInputContainer>
<ClipboardHeader />
</InputContainer>
{showAdvancedRecipes && selectedOption === FeedType.recipes ? (
<>
<TopOptions>
<div>
<label htmlFor="celebrationSelector">Celebrations</label>
</div>
<div>
<select
style={{ textTransform: 'capitalize' }}
id="celebrationSelector"
value={celebrationFilter}
onChange={(evt) => setCelebrationFilter(evt.target.value)}
>
<option value={''}>Any</option>
{knownCelebrations.map((c) => (
<option value={c}>{c.replace(/-/g, ' ')}</option>
))}
</select>
</div>
</TopOptions>
<TopOptions>
<div>
<label htmlFor="dietSelector">Suitable for</label>{' '}
</div>
<div>
<select
style={{ textTransform: 'capitalize' }}
id="dietSelector"
value={dietFilter}
onChange={(evt) => setDietFilter(evt.target.value)}
>
<option value={''}>Any</option>
{knownDiets.map((d) => (
<option value={d}>{d.replace(/-/g, ' ')}</option>
))}
</select>
</div>
</TopOptions>
<TopOptions>
<div>
<label
htmlFor="dateSelector"
style={{ color: searchText == '' ? 'gray' : 'inherit' }}
>
Ordering priority
</label>
</div>
<div>
<select
id="dateSelector"
value={dateField}
disabled={searchText == ''}
onChange={(evt) => {