import {useLocation, useNavigate, Link} from 'react-router-dom' import {useQuery, useMutation} from '@tanstack/react-query' import {FaCaretDown} from "react-icons/fa"; import BreadcrumbCom from '../breadcrumb/BreadcrumbCom' import {useEffect, useState} from 'react'; import RouteLinks from '../../RouteLinks'; import {getSubscriptionsView, updateTemplate, updateCustomTemplate, rebuildTemplate} from '../../services/siteServices' import queryKeys from '../../services/queryKeys' import getDateTimeFromDateString from '../../helpers/getDateTimeFromDateString'; import RebuildModal from './RebuildModal'; export default function SubscriptionViewCom() { const {state} = useLocation() const navigate = useNavigate() const [rebuildStatus, setRebuildStatus] = useState({status: false, data: {}}) const [values, setValues] = useState({custom_id: '', template_uid: ''}) const handleValueChange = ({target: {name, value}}) => { if (name == 'custom_template') { setValues(prev => ({...prev, custom_id: value})) } else if (name == 'template') { setValues(prev => ({...prev, template_uid: value})) } else { setValues(prev => ({...prev})) } } useEffect(() => { if (!state?.subscriptionUID) { navigate(RouteLinks.homePage, {replace: true}) } }, []) const {data, isFetching, isError, error} = useQuery({ queryKey: queryKeys.subscriptions_view, queryFn: () => { // const filterData = filter?.type ? {[filter?.type]: filter.id} : {} const reqData = { subscription_uid: state?.subscriptionUID // page, // ...filterData } return getSubscriptionsView(reqData) }, staleTime: 0 //0 mins }) const subscriptionViewData = data?.data // ACCOUNT VIEW DATA const customTemplates = subscriptionViewData?.available_custom_templates const availableTemplates = subscriptionViewData?.available_templates const selectedSubscription = subscriptionViewData?.subscription const currentCustomTem = subscriptionViewData?.available_custom_templates?.filter(item => item?.custom_id == subscriptionViewData?.subscription?.custom_template)[0]?.custom_id const currentTemplate = subscriptionViewData?.available_templates?.filter(item => item?.template_uid == subscriptionViewData?.subscription?.product_template)[0]?.template_uid // // console.log('subscriptionViewData', subscriptionViewData, currentCustomTem, currentTemplate) // useEffect(()=>{ // if(data){ // const currentCustomTem = subscriptionViewData?.available_custom_templates?.filter(item => item?.custom_id == subscriptionViewData?.subscription?.custom_template)[0]?.custom_id // const currentTemplate = subscriptionViewData?.available_templates?.filter(item => item?.template_uid == subscriptionViewData?.subscription?.product_template)[0]?.template_uid // setValues({custom_id: currentCustomTem || '', template_uid: currentTemplate || ''}) // } // },[data]) const templateRebuild = useMutation({ mutationFn: (fields) => { return rebuildTemplate(fields) }, onSettled: () => { setTimeout(() => { setRebuildStatus({status: false, data: {}}) templateRebuild.reset() }, 3000) } }) const templateUpdate = useMutation({ mutationFn: (fields) => { return updateTemplate(fields) }, // onError: (error) => { // }, // onSuccess: (res) => { // }, onSettled: () => { setTimeout(() => { templateUpdate.reset() }, 3000) } }) const customTemplateUpdate = useMutation({ mutationFn: (fields) => { return updateCustomTemplate(fields) }, // onError: (error) => { // }, // onSuccess: (res) => { // }, onSettled: () => { setTimeout(() => { customTemplateUpdate.reset() }, 3000) } }) const handleUpdateTemplate = () => { const reqData = { subscrtiption_uid: state?.subscriptionUID, template_uid: values.template_uid } templateUpdate.mutate(reqData) } const handleRebuildTemplate = () => { const reqData = { subscription_uid: state?.subscriptionUID, } templateRebuild.mutate(reqData) } const handleUpdateCustomTemplate = () => { const reqData = { subscrtiption_uid: state?.subscriptionUID, custom_id: values.custom_id } customTemplateUpdate.mutate(reqData) } return (
{isFetching ? <>

Loading...

: isError ?

{error.message}

: <>
{getDateTimeFromDateString(selectedSubscription?.added)}
{getDateTimeFromDateString(selectedSubscription?.updated)}
ID: {selectedSubscription?.id}
{selectedSubscription?.internal_url}
{selectedSubscription?.external_url}

Template : {selectedSubscription?.product_template}
Custom : {selectedSubscription?.custom_template}
{selectedSubscription?.status}

{templateUpdate.isSuccess ? 'Template updated' : templateUpdate.isSuccess ? 'Unable to complete request, try again' : ''}

{customTemplateUpdate.isSuccess ? 'Custom Template updated' : customTemplateUpdate.isSuccess ? 'Unable to complete request, try again' : ''}

} {rebuildStatus?.status && setRebuildStatus({status: false, data: {}})}/>}
) }