diff --git a/src/partials/tagging/OtpAuthModal.tsx b/src/partials/tagging/OtpAuthModal.tsx new file mode 100644 index 0000000..66a8470 --- /dev/null +++ b/src/partials/tagging/OtpAuthModal.tsx @@ -0,0 +1,62 @@ +import { useState } from "react"; +import { Grid } from "../../components/Grid/Grid"; +import Button from "../../components/Button/Button"; +import AutoComplete from "../../components/AutoComplete/AutoComplete"; +import { useApiMutation, useApiRequest } from "../../utils/useApiRequest"; +import { useToast } from "../../hooks/useToast"; +import { useModalStore } from "../../context/zustand-store/appStore"; + +export const OtpAuthModal = ({ item, getData }: any) => { + const showToast = useToast(); + const { closeModal } = useModalStore(); + const [selectedUser, setSelectedUser] = useState<(string | number)[]>([]); + + const { data: usersData } = useApiRequest({ + api: `/auth/api/v1/organization/${item?.id}/org_users/`, + method: "get", + queryKey: ["orgUsers", item?.id], + }); + + const mutation = useApiMutation({ + api: `/tag/web/api/v1/tag_distribution_batch/${item?.id}/otp_auth/?otp_type=send`, + method: "post", + }); + + const usersOptions = + usersData?.results?.map((user: any) => ({ + key: user?.user_receiver, + value: `${user?.first_name} ${user?.last_name} - ${user?.mobile}`, + })) ?? []; + + const onSubmit = async () => { + if (selectedUser.length === 0) return; + + const selected = usersData?.results?.find( + (u: any) => u.user_receiver === selectedUser[0], + ); + + try { + await mutation.mutateAsync(selected); + showToast("ارسال با موفقیت انجام شد", "success"); + getData(); + closeModal(); + } catch (error: any) { + showToast(error?.response?.data?.message || "خطا در ارسال!", "error"); + } + }; + + return ( + + setSelectedUser(keys)} + title="انتخاب کاربر" + /> + + + + ); +}; diff --git a/src/partials/tagging/TagActiveDistributions.tsx b/src/partials/tagging/TagActiveDistributions.tsx index cd55870..fc42a61 100644 --- a/src/partials/tagging/TagActiveDistributions.tsx +++ b/src/partials/tagging/TagActiveDistributions.tsx @@ -23,6 +23,7 @@ import Table from "../../components/Table/Table"; import { BooleanQuestion } from "../../components/BooleanQuestion/BooleanQuestion"; import { TableButton } from "../../components/TableButton/TableButton"; import { DistributionSpeciesModal } from "./DistributionSpeciesModal"; +import { OtpAuthModal } from "./OtpAuthModal"; import { useNavigate } from "@tanstack/react-router"; import { TAG_DISTRIBUTION } from "../../routes/paths"; import { DocumentOperation } from "../../components/DocumentOperation/DocumentOperation"; @@ -234,6 +235,18 @@ export default function TagActiveDistributions() { ), + ,