back in fixed category

This commit is contained in:
hamid zarghami
2026-01-04 16:38:04 +03:30
parent 6ebefa6a52
commit 86aebd7a9f
4 changed files with 27 additions and 17 deletions
+9 -8
View File
@@ -44,13 +44,14 @@ const MenuIndex = () => {
useEffect(() => {
if (isInitialMount) {
setSearch(null);
setSelectedCategory(null);
// category را نگه می‌داریم تا در بک زدن حفظ شود
// setSelectedCategory(null);
setSelectedIngredients(null);
setSelectedDeliveryId(null);
setSorting(null);
setIsInitialMount(false);
}
}, [isInitialMount, setSearch, setSelectedCategory, setSelectedIngredients, setSelectedDeliveryId, setSorting]);
}, [isInitialMount, setSearch, setSelectedIngredients, setSelectedDeliveryId, setSorting]);
const onScroll = useCallback(() => {
if (!wrapperRef?.current?.parentElement?.parentElement?.scrollTop || !smallCategoriesRef.current?.offsetTop) return;
@@ -80,8 +81,8 @@ const MenuIndex = () => {
setSearch(e.target.value);
}, [setSearch]);
const updateCategory = useCallback((index: number) => {
setSelectedCategory(String(index));
const updateCategory = useCallback((categoryId: string) => {
setSelectedCategory(categoryId);
}, [setSelectedCategory]);
const sortingIndex = Number(sorting);
@@ -106,10 +107,10 @@ const MenuIndex = () => {
if (!foods.length) return [];
const lowerSearch = search.toLowerCase();
const lowerIngredients = selectedIngredients ? selectedIngredients.toLowerCase() : "";
const selectedCatId = categories[+selectedCategory]?.id;
const selectedCatId = selectedCategory === '0' ? null : selectedCategory;
const filtered = foods.filter((item) => {
const matchesCategory = item.category?.id === selectedCatId;
const matchesCategory = !selectedCatId || item.category?.id === selectedCatId;
const itemName = item.name || item.title || item.foodName || "";
const matchesSearch =
!search || itemName.toLowerCase().includes(lowerSearch);
@@ -150,7 +151,7 @@ const MenuIndex = () => {
return 0;
}
});
}, [selectedCategory, search, selectedIngredients, selectedDeliveryId, foods, categories, sorting]);
}, [selectedCategory, search, selectedIngredients, selectedDeliveryId, foods, sorting]);
if (isLoading) {
return <MenuSkeleton />;
@@ -170,7 +171,7 @@ const MenuIndex = () => {
<section className="w-full">
<div className="flex gap-2 justify-between items-center relative" ref={smallCategoriesRef} >
<span className="sm:text-base text-sm font-medium">
{categories[+selectedCategory]?.title || ''}
{selectedCategory === '0' ? '' : categories.find(c => c.id === selectedCategory)?.title || ''}
</span>
<div className="inline-flex min-w-[247px] gap-2 justify-around items-center">
<button onClick={toggleFilterModal} className="rounded-xl h-8 bg-container ps-4 pe-2 py-1.5 inline-flex items-center justify-between gap-[7px]">