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 (
<>