added sorting2
This commit is contained in:
@@ -32,12 +32,24 @@ export const brandsApi = baseApi.injectEndpoints({
|
||||
return `/brands/${params}/products`;
|
||||
}
|
||||
|
||||
const { id, page = 1, limit } = params;
|
||||
const { id, page = 1, limit, sorting, min_price, max_price, brands } = params;
|
||||
let url = `/brands/${id}/products?page=${page}`;
|
||||
|
||||
if (limit) {
|
||||
url += `&limit=${limit}`;
|
||||
}
|
||||
if (sorting) {
|
||||
url += `&sorting=${encodeURIComponent(sorting)}`;
|
||||
}
|
||||
if (min_price) {
|
||||
url += `&min_price=${encodeURIComponent(min_price)}`;
|
||||
}
|
||||
if (max_price) {
|
||||
url += `&max_price=${encodeURIComponent(max_price)}`;
|
||||
}
|
||||
if (brands) {
|
||||
url += `&brands=${encodeURIComponent(brands)}`;
|
||||
}
|
||||
|
||||
return url;
|
||||
},
|
||||
|
||||
@@ -19,7 +19,7 @@ const CategoryFilters = ({
|
||||
onBrandSelect,
|
||||
onBrandDeselect,
|
||||
onBrandSearchChange,
|
||||
sorting = "price_amount-descending",
|
||||
sorting = "",
|
||||
onSortingChange = () => {},
|
||||
className,
|
||||
}) => {
|
||||
@@ -35,8 +35,14 @@ const CategoryFilters = ({
|
||||
];
|
||||
|
||||
const handlePricePreset = (preset) => {
|
||||
// Eğer zaten aktifse, sıfırla
|
||||
if (minPrice === preset.min.toString() && maxPrice === preset.max.toString()) {
|
||||
onMinPriceChange("");
|
||||
onMaxPriceChange("");
|
||||
} else {
|
||||
onMinPriceChange(preset.min.toString());
|
||||
onMaxPriceChange(preset.max.toString());
|
||||
}
|
||||
};
|
||||
|
||||
const sortOptions = [
|
||||
@@ -173,8 +179,12 @@ const CategoryFilters = ({
|
||||
key={option.value}
|
||||
className={`${styles.sortingBtn} ${sorting === option.value ? styles.activeSorting : ""}`}
|
||||
onClick={() => onSortingChange(option.value)}
|
||||
aria-pressed={sorting === option.value}
|
||||
>
|
||||
{option.label}
|
||||
{sorting === option.value && (
|
||||
<span style={{ marginLeft: 4, fontWeight: "bold" }}></span>
|
||||
)}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
|
||||
@@ -29,7 +29,7 @@ const CategoryPage = () => {
|
||||
currentPage: 1,
|
||||
minPrice: "",
|
||||
maxPrice: "",
|
||||
sorting: "price_amount-ascending",
|
||||
sorting: "",
|
||||
});
|
||||
|
||||
const [filterState, setFilterState] = useState({
|
||||
@@ -314,22 +314,31 @@ const CategoryPage = () => {
|
||||
minPrice={pageState.minPrice}
|
||||
maxPrice={pageState.maxPrice}
|
||||
onMinPriceChange={(value) => {
|
||||
setPageState((prev) => ({
|
||||
setPageState((prev) => {
|
||||
// Sadece aktif bir değer girilirse ürünleri sıfırla
|
||||
if (value !== "") {
|
||||
setAllProducts([]);
|
||||
setHasMore(true);
|
||||
}
|
||||
return {
|
||||
...prev,
|
||||
minPrice: value,
|
||||
currentPage: 1,
|
||||
}));
|
||||
setAllProducts([]);
|
||||
setHasMore(true);
|
||||
};
|
||||
});
|
||||
}}
|
||||
onMaxPriceChange={(value) => {
|
||||
setPageState((prev) => ({
|
||||
setPageState((prev) => {
|
||||
if (value !== "") {
|
||||
setAllProducts([]);
|
||||
setHasMore(true);
|
||||
}
|
||||
return {
|
||||
...prev,
|
||||
maxPrice: value,
|
||||
currentPage: 1,
|
||||
}));
|
||||
setAllProducts([]);
|
||||
setHasMore(true);
|
||||
};
|
||||
});
|
||||
}}
|
||||
onCategorySelect={handleFilterCategorySelect}
|
||||
onCategoryDeselect={handleFilterCategoryDeselect}
|
||||
@@ -340,9 +349,19 @@ const CategoryPage = () => {
|
||||
}
|
||||
sorting={pageState.sorting}
|
||||
onSortingChange={(value) => {
|
||||
setPageState((prev) => ({ ...prev, sorting: value, currentPage: 1 }));
|
||||
setPageState((prev) => {
|
||||
const newSorting = prev.sorting === value ? "" : value;
|
||||
// Sadece aktif bir sort seçilirse ürünleri sıfırla
|
||||
if (newSorting !== "") {
|
||||
setAllProducts([]);
|
||||
setHasMore(true);
|
||||
}
|
||||
return {
|
||||
...prev,
|
||||
sorting: newSorting,
|
||||
currentPage: 1,
|
||||
};
|
||||
});
|
||||
}}
|
||||
/>
|
||||
</Drawer>
|
||||
@@ -358,22 +377,30 @@ const CategoryPage = () => {
|
||||
minPrice={pageState.minPrice}
|
||||
maxPrice={pageState.maxPrice}
|
||||
onMinPriceChange={(value) => {
|
||||
setPageState((prev) => ({
|
||||
setPageState((prev) => {
|
||||
if (value !== "") {
|
||||
setAllProducts([]);
|
||||
setHasMore(true);
|
||||
}
|
||||
return {
|
||||
...prev,
|
||||
minPrice: value,
|
||||
currentPage: 1,
|
||||
}));
|
||||
setAllProducts([]);
|
||||
setHasMore(true);
|
||||
};
|
||||
});
|
||||
}}
|
||||
onMaxPriceChange={(value) => {
|
||||
setPageState((prev) => ({
|
||||
setPageState((prev) => {
|
||||
if (value !== "") {
|
||||
setAllProducts([]);
|
||||
setHasMore(true);
|
||||
}
|
||||
return {
|
||||
...prev,
|
||||
maxPrice: value,
|
||||
currentPage: 1,
|
||||
}));
|
||||
setAllProducts([]);
|
||||
setHasMore(true);
|
||||
};
|
||||
});
|
||||
}}
|
||||
onCategorySelect={handleFilterCategorySelect}
|
||||
onCategoryDeselect={handleFilterCategoryDeselect}
|
||||
@@ -384,9 +411,18 @@ const CategoryPage = () => {
|
||||
}
|
||||
sorting={pageState.sorting}
|
||||
onSortingChange={(value) => {
|
||||
setPageState((prev) => ({ ...prev, sorting: value, currentPage: 1 }));
|
||||
setPageState((prev) => {
|
||||
const newSorting = prev.sorting === value ? "" : value;
|
||||
if (newSorting) {
|
||||
setAllProducts([]);
|
||||
setHasMore(true);
|
||||
}
|
||||
return {
|
||||
...prev,
|
||||
sorting: newSorting,
|
||||
currentPage: 1,
|
||||
};
|
||||
});
|
||||
}}
|
||||
/>
|
||||
|
||||
|
||||
@@ -11,12 +11,12 @@ const DeliveryTerms = () => {
|
||||
<p>Eltip bermek hyzmaty Aşgabat şäheriniň çägi bilen bir hatarda Büzmeýine we Änew şäherine hem elýeterlidir;</p>
|
||||
</div>
|
||||
|
||||
<div className={styles.termItem}>
|
||||
{/* <div className={styles.termItem}>
|
||||
<p>
|
||||
Sargydyň iň pes çägi <span className={styles.highlight}>50 manat</span> bolmaly;
|
||||
sargydyňyz <span className={styles.highlight}>150 manatdan</span> geçse eltip bermek hyzmaty mugt;
|
||||
</p>
|
||||
</div>
|
||||
</div> */}
|
||||
|
||||
<div className={styles.termItem}>
|
||||
<p>Saýtdan sargyt edeniňizden soňra operator size jaň edip sargyt tassyklar (eger hemişelik müşderi bolsaňyz sargytlaryňyz islegiňize göra awtomatik usulda hem tassyklanýar);</p>
|
||||
|
||||
Reference in New Issue
Block a user