PK!A7��nimport React, { useEffect, useState } from "react"; import tw from "tailwind-styled-components"; import BookingSummaryComp from "../Components/Dashboard/BookingSummaryComp"; import RecentBookingComp from "../Components/Dashboard/RecentBookingComp"; import { useMutation, useQuery } from "react-query"; import axios from "axios"; import Config from "../Config"; import Loading from "../Components/Loading"; import { Page, ErrorText, Underline } from "../Components/Styles/PageStyles"; import { Update_User } from "../Redux/actions"; import { useDispatch, useSelector } from "react-redux"; import ErrorModel from "../Components/ErrorModel"; import ViewModel from "../Components/Campaigns/ViewModel"; import ActionComp from "../Components/Dashboard/ActionComp"; const DashBoard = () => { const dispatch = useDispatch(); const [activeTab, setActiveTab] = useState(1); const [filteredData, setFilteredData] = useState([]); const user = useSelector((state) => state.UserReducer.user); const [activeItemDetails, setActiveItemDetails] = useState(null); const [viewModel, setviewModel] = useState(false); const fetchFunction = async () => await axios.get( `${Config.nodeApiUrl}/customer/dashboard`, Config.AxiosConfig ); const { isLoading, error, data } = useQuery("dashboardData", fetchFunction); useEffect(() => { const creditData = { userCredit: { email: data?.data?.email?.balance, sms: data?.data?.sms?.balance, voice: data?.data?.voice?.balance, }, }; dispatch(Update_User(creditData)); }, [data]); useEffect(() => { const tempData = data?.data?.recentCampaigns; setFilteredData(tempData?.sms); }, [activeTab, data]); return ( {viewModel && ( )} {/* Summary */} {isLoading && } {error && !isLoading && } {!isLoading && !error && ( <> )} ); }; const Container = tw.div`Container`; const Title = tw.h1`text-xl text-gray-800 font-medium`; const TabWrapper = tw.div`flex items-center space-x-4 my-5 pb-4 border-b border-gray-100`; const Tab = tw.button` ${(p) => (p.$active ? "bg-red-500 text-white" : "bg-gray-100 text-gray-600")} px-6 py-2 text-md rounded-full`; export default DashBoard;