diff --git a/src/Components/CustomFields/SelectTag.tsx b/src/Components/CustomFields/SelectTag.tsx
index abdc83f..4aafca7 100644
--- a/src/Components/CustomFields/SelectTag.tsx
+++ b/src/Components/CustomFields/SelectTag.tsx
@@ -43,13 +43,11 @@ const SelectTag: React.FC = () => {
: [];
- console.log(options);
-console.log(formik?.values?.tags);
+
const value = formik?.values?.tags?.map((item: any) => item?.id ?? item) ?? [];
const AllOptions = [...options, ...additionalData]
- console.log(AllOptions);
return (
diff --git a/src/Components/DataTable/SearchField.tsx b/src/Components/DataTable/SearchField.tsx
index 93eb200..51fb041 100644
--- a/src/Components/DataTable/SearchField.tsx
+++ b/src/Components/DataTable/SearchField.tsx
@@ -2,6 +2,8 @@ import React, { useState, useEffect, useRef } from "react";
import { useTranslation } from "react-i18next";
import { IoSearch } from "react-icons/io5";
import { useLocation, useNavigate } from "react-router-dom";
+import { useFilterStateState } from "../../zustand/Filter";
+import { useDebounce } from "../../utils/useDebounce";
interface Props {
placeholder: string;
@@ -11,36 +13,25 @@ interface Props {
const SearchField: React.FC
= ({ placeholder, searchBy }) => {
const [isOpen, setIsOpen] = useState(false);
const [searchQuery, setSearchQuery] = useState("");
- const location = useLocation();
- const navigate = useNavigate();
const inputRef = useRef(null);
- const timeoutRef = useRef(null);
- const DEBOUNCE_DELAY = 500; // Adjust the debounce delay as needed
- useEffect(() => {
- const searchParams = new URLSearchParams(location.search);
- setSearchQuery(searchParams.get(searchBy) || "");
- }, [location.search, searchBy]);
+
+ const {setFilter} = useFilterStateState()
const handleInputChange = (value: string) => {
setSearchQuery(value);
- if (timeoutRef.current) {
- clearTimeout(timeoutRef.current);
- }
-
- timeoutRef.current = setTimeout(() => {
- if (value.trim() !== "") {
- navigate(`${location.pathname}?${searchBy}=${value.trim()}`);
- } else {
- const params = new URLSearchParams(location.search);
- params.delete(searchBy);
- navigate(`${location.pathname}`);
- }
- }, DEBOUNCE_DELAY);
};
+ const handleInputChangeWithDebounce = useDebounce(
+ (value: string) => {
+ setFilter({
+ name:value
+ })
+ }
+ )
+
const handleToggleDropdown = () => {
setIsOpen(!isOpen);
};
@@ -69,7 +60,7 @@ const SearchField: React.FC = ({ placeholder, searchBy }) => {
className="search__input"
placeholder={t(placeholder)}
value={searchQuery}
- onChange={(e) => handleInputChange(e.target.value)}
+ onChange={(e) => {handleInputChange(e.target.value) ; handleInputChangeWithDebounce(e.target.value)}}
/>
diff --git a/src/Components/Filter/OrderBySelect.tsx b/src/Components/Filter/OrderBySelect.tsx
index 19cbd4f..1689b38 100644
--- a/src/Components/Filter/OrderBySelect.tsx
+++ b/src/Components/Filter/OrderBySelect.tsx
@@ -1,54 +1,36 @@
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import { Divider, Select } from "antd";
-import SearchFieldWithSelect from "../../Components/DataTable/SearchFieldWithSelect";
-import { translateOptions } from "../../utils/translatedOptions";
-import { search_array } from "../../Routes";
-import { useFilterStateState } from "../../zustand/Filter";
-import { useSearchParams } from "react-router-dom";
import { TbReorder } from "react-icons/tb";
+import { useFilterStateState } from "../../zustand/Filter";
const OrderBySelect = () => {
const { t } = useTranslation();
- const { Filter, setFilter } = useFilterStateState();
- const [searchParams, setSearchParams] = useSearchParams();
-
- const type_param = searchParams.get("type");
- const [type, setType] = useState(type_param);
- const translateArray = translateOptions(search_array, t);
+ const {setFilter} = useFilterStateState()
const handleChange = (value: string) => {
- const newArray = Filter?.filter((item: any) => item.select !== true);
- setFilter([
- ...newArray,
- { name: value, index: Filter.length, select: true },
- ]);
- if (type_param) {
- searchParams.delete("type");
- setSearchParams(searchParams);
- }
- setType(value);
+ setFilter({
+ sort_by:value
+ })
};
- // send this with api request
- // type: type,
- // page: currentPage,
return (
}
onChange={handleChange}
options={[
- { value: "تصاعديا", label: t("تصاعديا") },
- { value: "تنازليا", label: t("تنازليا") },
- { value: "شوهدت مؤخرا", label: t("شوهدت مؤخرا") },
- { value: "وصلت مؤخرا", label: t("وصلت مؤخرا") },
+ { value: "ascending", label: t("select.array.order.ascending") },
+ { value: "descending", label: t("select.array.order.descending") },
+ { value: "recently_viewed", label: t("select.array.order.recently_viewed") },
+ { value: "recently_arrived", label: t("select.array.order.recently_arrived") },
]}
/>
diff --git a/src/Components/Filter/PaginationColumn.tsx b/src/Components/Filter/PaginationColumn.tsx
index 48e5a0f..2006728 100644
--- a/src/Components/Filter/PaginationColumn.tsx
+++ b/src/Components/Filter/PaginationColumn.tsx
@@ -1,36 +1,19 @@
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import { Divider, Select } from "antd";
-import SearchFieldWithSelect from "../../Components/DataTable/SearchFieldWithSelect";
-import { translateOptions } from "../../utils/translatedOptions";
-import { search_array } from "../../Routes";
-import { useFilterStateState } from "../../zustand/Filter";
-import { useSearchParams } from "react-router-dom";
+import usePagination from "../../Layout/Dashboard/usePagination";
+import { useNavigate } from "react-router-dom";
+
const PaginationColumn = () => {
const { t } = useTranslation();
- const { Filter, setFilter } = useFilterStateState();
- const [searchParams, setSearchParams] = useSearchParams();
+ const navigate = useNavigate();
- const type_param = searchParams.get("type");
- const [type, setType] = useState(type_param);
- const translateArray = translateOptions(search_array, t);
const handleChange = (value: string) => {
- const newArray = Filter?.filter((item: any) => item.select !== true);
- setFilter([
- ...newArray,
- { name: value, index: Filter.length, select: true },
- ]);
- if (type_param) {
- searchParams.delete("type");
- setSearchParams(searchParams);
- }
- setType(value);
+ navigate(`?per_page=${value}`);
};
- // send this with api request
- // type: type,
- // page: currentPage,
+
return (