import { useEffect, useRef, useState } from "react"; import { Button } from "@/components/ui/button"; import type { IssueRecord, ProjectRecord } from "@issue/shared"; import { Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; function IssueRow({ issue }: { issue: IssueRecord }) { return ( {issue.id} {issue.title} {issue.description} ); } function Index() { const [projects, setProjects] = useState([]); const projectsRef = useRef(false); useEffect(() => { if (projectsRef.current) return; projectsRef.current = true; fetch("http://localhost:3000/projects/all") .then((res) => res.json()) .then((data: ProjectRecord[]) => { setProjects(data); console.log("fetched projects:", data); }) .catch((err) => { console.error("error fetching projects:", err); }); }, []); const [issues, setIssues] = useState([]); const issuesRef = useRef(false); const serverURL = import.meta.env.SERVER_URL?.trim() || "http://localhost:3000"; useEffect(() => { if (issuesRef.current) return; issuesRef.current = true; fetch(`${serverURL}/issues/all`) .then((res) => res.json()) .then((data: IssueRecord[]) => { setIssues(data); console.log("fetched issues:", data); }) .catch((err) => { console.error("error fetching issues:", err); }); }, []); return (
All Issues a a a a {issues.map((issue) => ( ))}
); } export default Index;