"use client"; import React, { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { Input } from "@/components/ui/input"; import { useRouter } from "next/navigation"; import { useToast } from "@/components/ui/use-toast"; import { Dialog, DialogContent, DialogHeader, DialogFooter, DialogTitle, } from "@/components/ui/dialog"; interface PageEntry { title: string; slug: string; content: string; } const MultiLogs = () => { const [pages, setPages] = useState([]); const { toast } = useToast(); const router = useRouter(); const [loading, setLoading] = useState(false); const [open, setOpen] = useState(false); const [pageTitle, setPageTitle] = useState(""); useEffect(() => { fetch("/api/mdx/pages") .then((response) => response.json()) .then((data) => setPages(data)) .catch((error) => console.error("Failed to load pages", error)); }, []); const createPage = async () => { setLoading(true); const slug = pageTitle.toLowerCase().replace(/\s+/g, "-"); const response = await fetch("/api/mdx/pages", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ title: pageTitle, slug, content: "" }), }); if (response.ok) { const newPage = await response.json(); setPages([...pages, newPage]); setPageTitle(""); setOpen(false); router.push(`/admin/multi-pages/${slug}`); toast({ description: "Page created successfully" }); } else { const errorData = await response.json(); console.error("Failed to create page:", errorData); toast({ description: `Error: ${errorData.message}` }); } setLoading(false); }; const deletePage = async (slug: string) => { setLoading(true); const response = await fetch(`/api/mdx/pages/${slug}`, { method: "DELETE", }); if (response.ok) { setPages(pages.filter((page) => page.slug !== slug)); toast({ description: "Page deleted successfully" }); } else { const errorData = await response.json(); console.error("Failed to delete page:", errorData); toast({ description: `Error: ${errorData.message}` }); } setLoading(false); }; return (

Create New Page

Enter Page Title setPageTitle(e.target.value)} placeholder="Page Title" />

Existing Pages

Total Pages: {pages.length}

Slug Actions {pages.map((page) => ( {page.slug} ))}
); }; export default MultiLogs;