sms entegrasyonu ve ana sayfa işlemleri
This commit is contained in:
65
app/(dashboard)/dashboard/sms/logs/page.tsx
Normal file
65
app/(dashboard)/dashboard/sms/logs/page.tsx
Normal file
@@ -0,0 +1,65 @@
|
||||
import { getSmsLogs } from "@/lib/sms/actions"
|
||||
import {
|
||||
Table,
|
||||
TableBody,
|
||||
TableCell,
|
||||
TableHead,
|
||||
TableHeader,
|
||||
TableRow,
|
||||
} from "@/components/ui/table"
|
||||
import { Badge } from "@/components/ui/badge"
|
||||
import { format } from "date-fns"
|
||||
import { tr } from "date-fns/locale"
|
||||
|
||||
export default async function SmsLogsPage() {
|
||||
const { data: logs, error } = await getSmsLogs(100)
|
||||
|
||||
if (error) {
|
||||
return <div className="p-8">Hata: {error}</div>
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="flex-1 space-y-4 p-8 pt-6">
|
||||
<h2 className="text-3xl font-bold tracking-tight">SMS Geçmişi</h2>
|
||||
<p className="text-muted-foreground">Son gönderilen mesajların durumu.</p>
|
||||
|
||||
<div className="rounded-md border">
|
||||
<Table>
|
||||
<TableHeader>
|
||||
<TableRow>
|
||||
<TableHead className="w-[180px]">Tarih</TableHead>
|
||||
<TableHead>Numara</TableHead>
|
||||
<TableHead>Mesaj</TableHead>
|
||||
<TableHead>Durum</TableHead>
|
||||
<TableHead className="text-right">Kod</TableHead>
|
||||
</TableRow>
|
||||
</TableHeader>
|
||||
<TableBody>
|
||||
{logs?.length === 0 && (
|
||||
<TableRow>
|
||||
<TableCell colSpan={5} className="h-24 text-center">
|
||||
Kayıt bulunamadı.
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
)}
|
||||
{logs?.map((log) => (
|
||||
<TableRow key={log.id}>
|
||||
<TableCell className="font-medium">
|
||||
{log.created_at ? format(new Date(log.created_at), "dd MMM yyyy HH:mm", { locale: tr }) : "-"}
|
||||
</TableCell>
|
||||
<TableCell>{log.phone}</TableCell>
|
||||
<TableCell className="max-w-[300px] truncate" title={log.message}>{log.message}</TableCell>
|
||||
<TableCell>
|
||||
<Badge variant={log.status === 'success' ? 'default' : 'destructive'}>
|
||||
{log.status === 'success' ? 'Başarılı' : 'Hatalı'}
|
||||
</Badge>
|
||||
</TableCell>
|
||||
<TableCell className="text-right font-mono text-xs">{log.response_code}</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
9
app/(dashboard)/dashboard/sms/page.tsx
Normal file
9
app/(dashboard)/dashboard/sms/page.tsx
Normal file
@@ -0,0 +1,9 @@
|
||||
import { getCustomers } from "@/lib/customers/actions"
|
||||
import SmsPageClient from "@/components/dashboard/sms-page-client"
|
||||
|
||||
export default async function SmsPage() {
|
||||
// Fetch all customers to show in the list
|
||||
const { data: customers } = await getCustomers()
|
||||
|
||||
return <SmsPageClient customers={customers || []} />
|
||||
}
|
||||
Reference in New Issue
Block a user