From 21cbcc91bbdea0413a532bb08e95eede035e0370 Mon Sep 17 00:00:00 2001 From: karimaldeen Date: Sun, 15 Sep 2024 11:28:51 +0300 Subject: [PATCH] change tag --- .../ImageBoxField/ImageBoxField.scss | 1 + src/Layout/Dashboard/PageHeader.tsx | 8 +- src/Pages/Admin/Tags/Model/ModelForm.tsx | 2 +- src/Pages/Admin/Tags/field/SelectTag.tsx | 81 +++++++++++++++++++ src/Pages/Admin/Tags/synonyms/DynamicTags.tsx | 21 ++++- src/Pages/Admin/Tags/synonyms/Tag.tsx | 33 ++++---- src/Styles/Pages/exercise.scss | 14 +++- 7 files changed, 130 insertions(+), 30 deletions(-) create mode 100644 src/Pages/Admin/Tags/field/SelectTag.tsx diff --git a/src/Components/CustomFields/ImageBoxField/ImageBoxField.scss b/src/Components/CustomFields/ImageBoxField/ImageBoxField.scss index 66e2f2f..6ac8a4e 100644 --- a/src/Components/CustomFields/ImageBoxField/ImageBoxField.scss +++ b/src/Components/CustomFields/ImageBoxField/ImageBoxField.scss @@ -9,6 +9,7 @@ margin-block: 10px; border-radius: 5px; z-index: 9999999 !important; + cursor: pointer; .ImageBoxIcon { cursor: pointer; } diff --git a/src/Layout/Dashboard/PageHeader.tsx b/src/Layout/Dashboard/PageHeader.tsx index 85085c8..79773e4 100644 --- a/src/Layout/Dashboard/PageHeader.tsx +++ b/src/Layout/Dashboard/PageHeader.tsx @@ -1,10 +1,8 @@ -import { Button } from "antd"; import { BsPlusCircleFill } from "react-icons/bs"; import { useNavigate } from "react-router-dom"; import { useTranslation } from "react-i18next"; import useModalHandler from "../../utils/useModalHandler"; -import { MdOutlineArrowForwardIos } from "react-icons/md"; import { deletePathSegments } from "../../utils/deletePathSegments"; import { getPrevPathRoute } from "../../utils/getPrevPathRoute"; import PageTitleComponent from "./PageTitle"; @@ -33,10 +31,10 @@ const PageHeader = ({ if (PrevPath === 0) { return; } - // navigate(deletePathSegments(location.pathname, PrevPath)); + navigate(deletePathSegments(location.pathname, PrevPath)); }; const handleNavigateToPage = (location: string) => { - // navigate(location); + navigate(location); }; console.log(); @@ -46,7 +44,7 @@ const PageHeader = ({

{t(`PageTitle.${pageTitle}`)}

- +
{ addModal ? canAdd && ( diff --git a/src/Pages/Admin/Tags/Model/ModelForm.tsx b/src/Pages/Admin/Tags/Model/ModelForm.tsx index 20abab5..a8e5c27 100644 --- a/src/Pages/Admin/Tags/Model/ModelForm.tsx +++ b/src/Pages/Admin/Tags/Model/ModelForm.tsx @@ -9,7 +9,7 @@ const Form = () => { -
+
diff --git a/src/Pages/Admin/Tags/field/SelectTag.tsx b/src/Pages/Admin/Tags/field/SelectTag.tsx new file mode 100644 index 0000000..5a307cb --- /dev/null +++ b/src/Pages/Admin/Tags/field/SelectTag.tsx @@ -0,0 +1,81 @@ +import React, { useState, useMemo } from "react"; +import { Select, Spin } from "antd"; +import { useTranslation } from "react-i18next"; +import { useFormikContext } from "formik"; +import { useDebounce } from "../../../../utils/useDebounce"; +import { useGetAllTag } from "../../../../api/tags"; + +const SelectTag: React.FC = () => { + const [searchValue, setSearchValue] = useState(""); + + const [fieldValue, setFieldValue] = useState(""); + const formik = useFormikContext(); + const handleChange = (value: string[]) => { + console.log(value); + + formik.setFieldValue("tags", value); + setSearchValue(""); + setFieldValue(""); + }; + + const handleSearch = useDebounce((value: string) => { + setSearchValue(value); + }); + + const handleFieldChange = (value: string) => { + setFieldValue(value); + }; + + const handleBlur = () => { + setSearchValue(""); + setFieldValue(""); + }; + + const { data, isLoading } = useGetAllTag({ + name: searchValue, + }); + + const [t] = useTranslation(); + + const options = data?.data ?? []; + const additionalData = + options.length < 1 && searchValue.length > 1 && !isLoading + ? [{ id: searchValue, name: searchValue }] + : []; + + const value = + formik?.values?.tags?.map((item: any) => item?.id ?? item) ?? []; + + const AllOptions = [...options, ...additionalData]; + + return ( +
+ +
); }; -export default Tag; +export default Tag; \ No newline at end of file diff --git a/src/Styles/Pages/exercise.scss b/src/Styles/Pages/exercise.scss index 2ba2a34..6a2078e 100644 --- a/src/Styles/Pages/exercise.scss +++ b/src/Styles/Pages/exercise.scss @@ -42,6 +42,9 @@ .exercise_add_main { background: var(--bg); padding: 10px 2vw; + max-height: 84vh; + overflow-y: scroll; + @include Scrollbar(); } .exercise_add_buttons { display: flex; @@ -90,19 +93,24 @@ background: rgba(49, 130, 206, 0.15); color: #3182ce; min-width: 50px; - padding: 3px 10px; + padding: 5px 10px; border-radius: 5px; + display: flex; + align-items: center; + svg { } } .tagInput { all: unset; - min-width: 50px; + min-width: 30px; padding: 3px 10px; text-align: center; font-size: 13px; } - +.DynamicTags{ + padding: 2px 15px; +} .suggests { display: flex; gap: 20px;