'use client' import { trpc } from "~/app/_trpc/Client"; import * as Card from "~/components/ui/card"; import { Badge } from "~/components/ui/badge"; import { StackBadge } from "~/components/StackBadge"; import Markdown from "react-markdown"; import { ScrollArea } from "~/components/ui/scroll-area"; import AnimatedPageTitle from "../_components/Animated/AnimatedPageTitle"; import AnimateTextIn from "../_components/Animated/AnimateIn"; import { useTimeLine } from "../_providers/GsapProvicer"; import AnimatePopUp from "../_components/Animated/AnimatePopUp"; import { Button } from "~/components/ui/button"; import remarkGfm from "remark-gfm" export default function ProjectsPage() { const { data: projects, isLoading } = trpc.projectv2.listWithStack.useQuery(); useTimeLine(projects) if (isLoading) { return (
Loading...
); } if (!projects?.length) { return (
No projects yet.
); } return ( Project I've Been Working on
{projects.map((project, i) => (
{project.title}
{project.sourceType && ( {project.sourceType === "open" ? "Open Source" : "Closed Source"} )} {project.releaseStatus && ( {project.releaseStatus === "released" ? "Released" : "Unreleased"} )}
{(project.description || project.sourceLink || project.releaseLink || project.techStack?.stackItems?.length) && ( {project.description && (
{project.description}
)}
{project.techStack?.stackItems && project.techStack.stackItems.length > 0 && (
{project.techStack.stackItems.map((item, k) => ( ))}
)} {(project.sourceLink || project.releaseLink) && (
{project.sourceLink && } {project.releaseLink && }
)}
)}
))} ); }