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}
)
}
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) => (
))}
))}
)
}