'use client'; import Link from 'next/link'; import { useState, useEffect } from 'react'; import { Button } from '@/components/ui/button'; import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card" import strings from "@/strings.json" import { PlusCircle, CircleAlert } from "lucide-react" export default function Posts() { const [totalPosts, setTotalPosts] = useState(0); const [postCardError, setPostCardError] = useState(false); const [postCardLoading, setPostCardLoading] = useState(true); useEffect(() => { console.log(strings.logsCalculatingPostCt); (async () => { try { const username = document.cookie.split('; ').find(row => row.startsWith('username='))?.split('=')[1] || ''; const key = document.cookie.split('; ').find(row => row.startsWith('key='))?.split('=')[1] || ''; const res = await fetch(`http://localhost:3001/api/admin/posts/totalPosts`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ username, key }), cache: 'no-store', }); if (!res.ok) { console.log(strings.errorsFetchTotalPostCtErr); setPostCardError(true); throw new Error(`${strings.errorsFetchTotalPostCtErr}: ${res.status}`); } const data = await res.json(); if (data.success === false) { if (data.message) { alert(data.message); setPostCardError(true); setPostCardLoading(false); throw new Error(data.message); } else { alert(strings.errorsUnknownError); setPostCardError(true); setPostCardLoading(false); throw new Error(strings.errorsUnknownError); } } else if (data.count || data.count === 0) { console.log(strings.logsTotalPosts, data.count); setTotalPosts(data.count); setPostCardLoading(false); } } catch (error) { alert(strings.errorsFetchTotalPostCtErr); setPostCardError(true); setPostCardLoading(false); console.error(strings.errorsFetchTotalPostCtErrFancy, error); } })(); }, []); return (
{strings.errorsSuperGeneric}