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 } from '../../services/siteServices' import queryKeys from '../../services/queryKeys' import getDateTimeFromDateString from '../../helpers/getDateTimeFromDateString'; export default function SubscriptionViewCom() { const {state} = useLocation() const navigate = useNavigate() const [reqStatus, setReqStatus] = useState({loading: false, type: '', error: false, success: false}) 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 templateUpdate = useMutation({ mutationFn: (fields) => { setReqStatus(prev => ({...prev, loading: true})) return updateTemplate(fields) }, onError: (error) => { setReqStatus(prev => ({...prev, loading: false, error: true})) }, onSuccess: (res) => { setReqStatus(prev => ({...prev, loading: false, error: false, success: true})) }, onSettled: () => { setTimeout(()=>{ setReqStatus({loading: false, type: '', error: false, success: false}) }, 3000) } }) const handleUpdateTemplate = ({target:{name}}) => { setReqStatus({loading: false, type: name, error: false, success: false}) const reqData = {Subscrtiption_uid: state?.subscriptionUID} if(name == 'template'){ reqData.template_uid = values.template_uid }else if (name == 'custom_template'){ reqData.custom_id = values.custom_id }else{ return } templateUpdate.mutate(reqData) } return (
{isFetching ? <>

Loading...

: isError ?

{error.message}

: <>
{getDateTimeFromDateString(selectedSubscription?.added)}
{selectedSubscription?.product_id}
{selectedSubscription?.internal_url}
Template : {selectedSubscription?.product_template}
Custom : {selectedSubscription?.custom_template}
{selectedSubscription?.status}
{(reqStatus.type == 'template' && (reqStatus.error || reqStatus.success)) &&

{reqStatus.success ? 'Template updated' : 'Unable to complete request, try again'}

}
{(reqStatus.type == 'custom_template' && (reqStatus.error || reqStatus.success)) &&

{reqStatus.success ? 'Template updated' : 'Unable to complete request, try again'}

}
}
) }