import React, { useRef, useState } from 'react' import { Form, Formik } from "formik"; import * as Yup from "yup"; import { Modal } from "bootstrap"; import { useMutation, useQueryClient } from "@tanstack/react-query"; import { updateLinks } from "../../services/services"; import queryKeys from '../../services/queryKeys'; const linksValidationSchema = Yup.object().shape({ facebook_url: Yup.string().matches(/^https:\/\/.+/,"URL must start with https://"), twitter_url: Yup.string().matches(/^https:\/\/.+/,"URL must start with https://"), blogger_url: Yup.string().matches(/^https:\/\/.+/,"URL must start with https://"), google_url: Yup.string().matches(/^https:\/\/.+/,"URL must start with https://"), linked_url: Yup.string().matches(/^https:\/\/.+/,"URL must start with https://"), website_url: Yup.string().matches(/^https:\/\/.+/,"URL must start with https://"), }) export default function LinksForm({data}) { const modalRef = useRef(null) const queryClient = useQueryClient() const [intialData] = useState(data) const [infoToUpdate, setInfoToUpdate] = useState({}) const dismissModal = () => { const body = document.querySelector('body') body.removeAttribute('style') // body.classList.toggle('modal-open') const modalBackdrop = document.querySelectorAll('.modal-backdrop') modalBackdrop.forEach(item => { if (item) { item.remove(); } }) const modal = Modal.getInstance(modalRef.current); modal && modal.hide(); }; // UPDATE LINKS MUTATION const updateLinksMutation = useMutation({ mutationFn: (fields) => { return updateLinks(fields) }, onSuccess: (res) => { if(res.data.resultCode != '0'){ throw({message: res?.data?.resultDescription ? res?.data?.resultDescription : 'En error occured'}) } }, onSettled: ()=>{ setTimeout(() => { dismissModal() //CLOSE MODAL HERE queryClient.refetchQueries({ queryKey: [...queryKeys.profile_data], // type: 'active', // exact: true, }) updateLinksMutation.reset() }, 3000); } }) const handleSetInfoToUpdate = (values, helpers) => { setInfoToUpdate(values) var modal = new Modal(document.getElementById('modal_links')); modal.show(); } const proceed = () => { let reqData = { token: localStorage.getItem('token'), // USER TOKEN uid: localStorage.getItem('uid'), // USER UID url_list: {...infoToUpdate} } // console.log(reqData) updateLinksMutation.mutate(reqData) } return ( <> {(props) => { return (
); }}
{/* Vertical Center Modal */} {/* END of Vertical Center Modal */} ) }