import { Tabs, TabsList, TabsContent, TabsTrigger } from '@/components/ui/tabs' import { ApiEndpoints } from '@/config/api' import httpBrowserClient from '@/lib/httpBrowserClient' import { useQuery } from '@tanstack/react-query' import { Heart } from 'lucide-react' import React, { useEffect, useState } from 'react' import CommunityAlert from './community-alert' import { Card, CardContent } from '@/components/ui/card' import { Phone, Clock, MessageSquare } from 'lucide-react' import { Spinner } from '@/components/ui/spinner' export function ReceivedSmsCard({ sms }) { const formattedDate = new Date(sms.receivedAt).toLocaleString('en-US', { hour: '2-digit', minute: '2-digit', day: 'numeric', month: 'short', year: 'numeric', }) return (
{sms.sender}
{formattedDate}

{sms.message}

) } export default function ReceivedSms() { const { data: devices, isLoading: isLoadingDevices, error: devicesError, } = useQuery({ queryKey: ['devices'], queryFn: () => httpBrowserClient .get(ApiEndpoints.gateway.listDevices()) .then((res) => res.data), }) const handleTabChange = (tab: string) => { setCurrentTab(tab) } const [currentTab, setCurrentTab] = useState('') useEffect(() => { if (devices?.data?.length) { setCurrentTab(devices?.data?.[0]?._id) } }, [devices]) const { data: receivedSms, isLoading: isLoadingReceivedSms, error: receivedSmsError, } = useQuery({ queryKey: ['received-sms', currentTab], enabled: !!currentTab, queryFn: () => httpBrowserClient .get(ApiEndpoints.gateway.getReceivedSMS(currentTab)) .then((res) => res.data), }) if (isLoadingDevices) return (
) if (devicesError) return (
Error: {devicesError.message}
) if (!devices?.data?.length) return (
No devices found
) return (
{devices?.data?.map((device) => ( {device.brand} {device.model} ))} {devices?.data?.map((device) => ( {isLoadingReceivedSms && (
)} {receivedSmsError && (
Error: {receivedSmsError.message}
)} {!isLoadingReceivedSms && !receivedSms?.data?.length && (
No messages found
)} {receivedSms?.data?.map((sms) => ( ))}
))}
) }