"use client"; import DarkButton from "@/components/buttons/DarkButton"; import LightButton from "@/components/buttons/LightButton"; import ACard from "@/components/cards/ACard"; import { Center } from "@/components/Center"; import { createFolder, deleteFolderById, getFoldersWithTextPairsCountByOwner, } from "@/lib/controllers/FolderController"; import { useEffect, useState } from "react"; import InFolder from "./InFolder"; interface Folder { id: number; name: string; text_pairs_count: number; } interface FolderProps { folder: Folder; deleteCallback: () => void; openCallback: () => void; } const FolderCard = ({ folder, deleteCallback, openCallback }: FolderProps) => { return (
ID: {folder.id}
Name: {folder.name}
Text Pairs Count: {folder.text_pairs_count}
open delete
); }; export default function FoldersClient({ username }: { username: string }) { const [folders, setFolders] = useState([]); const [page, setPage] = useState<"folders" | "in folder">("folders"); const [folderId, setFolderId] = useState(0); useEffect(() => { getFoldersWithTextPairsCountByOwner(username).then((folders) => { setFolders(folders as Folder[]); }); }, [username]); const updateFolders = async () => { const updatedFolders = await getFoldersWithTextPairsCountByOwner(username); setFolders(updatedFolders as Folder[]); }; if (page === "folders") return (

Your Folders

{ const folderName = prompt("Enter folder name:"); if (!folderName) return; await createFolder(folderName, username); await updateFolders(); }} > Create Folder
{folders.map((folder) => ( { const confirm = prompt( "Input folder's name to delete this folder.", ); if (confirm === folder.name) { deleteFolderById(folder.id).then(updateFolders); } }} openCallback={() => { setFolderId(folder.id); setPage("in folder"); }} /> ))}
); else if (page === "in folder") { return ; } }