fix tags
This commit is contained in:
parent
32f87910ea
commit
05d0a12527
|
|
@ -54,6 +54,13 @@ const SelectTag: React.FC = () => {
|
||||||
formik?.values?.tags?.map((item: any) => item?.id ?? item) ?? [];
|
formik?.values?.tags?.map((item: any) => item?.id ?? item) ?? [];
|
||||||
|
|
||||||
const AllOptions = [...options, ...additionalData,NewAdditionalData];
|
const AllOptions = [...options, ...additionalData,NewAdditionalData];
|
||||||
|
const uniqueOptions = Array.from(
|
||||||
|
new Map(
|
||||||
|
AllOptions
|
||||||
|
.filter(item => Object.keys(item).length > 0) // Filter out empty objects
|
||||||
|
.map(item => [item.id, item]) // Create [id, item] pairs to ensure uniqueness
|
||||||
|
).values()
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="SelectTag">
|
<div className="SelectTag">
|
||||||
|
|
@ -65,7 +72,7 @@ const SelectTag: React.FC = () => {
|
||||||
placeholder=""
|
placeholder=""
|
||||||
fieldNames={{ label: "name", value: "id" }}
|
fieldNames={{ label: "name", value: "id" }}
|
||||||
onChange={handleChange}
|
onChange={handleChange}
|
||||||
options={AllOptions}
|
options={uniqueOptions}
|
||||||
filterOption={false}
|
filterOption={false}
|
||||||
loading={isLoading}
|
loading={isLoading}
|
||||||
notFoundContent={isLoading ? <Spin /> : t("practical.not_found")}
|
notFoundContent={isLoading ? <Spin /> : t("practical.not_found")}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,16 @@ const MaltySelectTag = ({ parent_index }: { parent_index: number }) => {
|
||||||
const [fieldValue, setFieldValue] = useState<string>("");
|
const [fieldValue, setFieldValue] = useState<string>("");
|
||||||
const formik = useFormikContext<any>();
|
const formik = useFormikContext<any>();
|
||||||
const values = formik?.values?.Questions?.[parent_index]?.tags;
|
const values = formik?.values?.Questions?.[parent_index]?.tags;
|
||||||
const handleChange = (value: string[]) => {
|
const [NewAdditionalData, setNewAdditionalData] = useState({})
|
||||||
|
|
||||||
|
const handleChange = (value: string[],option:any) => {
|
||||||
|
const newSelectedOption = option?.pop()
|
||||||
|
const newObject = {
|
||||||
|
id:newSelectedOption?.id,
|
||||||
|
name:newSelectedOption?.name
|
||||||
|
}
|
||||||
|
setNewAdditionalData(newObject)
|
||||||
|
|
||||||
formik.setFieldValue(`Questions.[${parent_index}].tags`, value);
|
formik.setFieldValue(`Questions.[${parent_index}].tags`, value);
|
||||||
setSearchValue("");
|
setSearchValue("");
|
||||||
setFieldValue("");
|
setFieldValue("");
|
||||||
|
|
@ -46,7 +55,15 @@ const MaltySelectTag = ({ parent_index }: { parent_index: number }) => {
|
||||||
(item: any) => item?.id ?? item,
|
(item: any) => item?.id ?? item,
|
||||||
) ?? [];
|
) ?? [];
|
||||||
|
|
||||||
const AllOptions = [...options, ...additionalData];
|
const AllOptions = [...options, ...additionalData,NewAdditionalData];
|
||||||
|
|
||||||
|
const uniqueOptions = Array.from(
|
||||||
|
new Map(
|
||||||
|
AllOptions
|
||||||
|
.filter(item => Object.keys(item).length > 0) // Filter out empty objects
|
||||||
|
.map(item => [item.id, item]) // Create [id, item] pairs to ensure uniqueness
|
||||||
|
).values()
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="SelectTag">
|
<div className="SelectTag">
|
||||||
|
|
@ -58,7 +75,7 @@ const MaltySelectTag = ({ parent_index }: { parent_index: number }) => {
|
||||||
placeholder=""
|
placeholder=""
|
||||||
fieldNames={{ label: "name", value: "id" }}
|
fieldNames={{ label: "name", value: "id" }}
|
||||||
onChange={handleChange}
|
onChange={handleChange}
|
||||||
options={AllOptions}
|
options={uniqueOptions}
|
||||||
filterOption={false}
|
filterOption={false}
|
||||||
loading={isLoading}
|
loading={isLoading}
|
||||||
notFoundContent={isLoading ? <Spin /> : t("practical.not_found")}
|
notFoundContent={isLoading ? <Spin /> : t("practical.not_found")}
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,16 @@ import { handelImageState } from "../../../../utils/DataToSendImageState";
|
||||||
import LayoutModel from "../../../../Layout/Dashboard/LayoutModel";
|
import LayoutModel from "../../../../Layout/Dashboard/LayoutModel";
|
||||||
import { QueryStatusEnum } from "../../../../enums/QueryStatus";
|
import { QueryStatusEnum } from "../../../../enums/QueryStatus";
|
||||||
import ModelForm from "./ModelForm";
|
import ModelForm from "./ModelForm";
|
||||||
|
import { useParams } from "react-router-dom";
|
||||||
|
import { ParamsEnum } from "../../../../enums/params";
|
||||||
|
|
||||||
const ModalForm: React.FC = () => {
|
const ModalForm: React.FC = () => {
|
||||||
const { objectToEdit } = useObjectToEdit((state) => state);
|
const { objectToEdit } = useObjectToEdit((state) => state);
|
||||||
|
|
||||||
const { mutate, status } = useUpdateSubject();
|
const { mutate, status } = useUpdateSubject();
|
||||||
|
const {subject_id} = useParams<ParamsEnum>()
|
||||||
const handleSubmit = (values: any) => {
|
const handleSubmit = (values: any) => {
|
||||||
const Data_to_send = { ...values };
|
const Data_to_send = { ...values,subject_id };
|
||||||
const handelImage = handelImageState(Data_to_send, "icon");
|
const handelImage = handelImageState(Data_to_send, "icon");
|
||||||
mutate(handelImage);
|
mutate(handelImage);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -9,14 +9,14 @@ const Dummy = () => {
|
||||||
return (
|
return (
|
||||||
<div className="DummyHomePage">
|
<div className="DummyHomePage">
|
||||||
|
|
||||||
<FilterButton/>
|
{/* <FilterButton/>
|
||||||
<FilterBody>
|
<FilterBody>
|
||||||
karim
|
karim
|
||||||
</FilterBody>
|
</FilterBody>
|
||||||
<Select
|
<Select
|
||||||
style={{width:"200px"}}
|
style={{width:"200px"}}
|
||||||
showSearch
|
showSearch
|
||||||
/>
|
/> */}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user