import Link from "next/link"; import { useRouter } from "next/router"; import { t } from "@lingui/core/macro"; import { keepPreviousData } from "@tanstack/react-query"; import { useEffect, useState } from "react"; import { HiLink } from "react-icons/hi2"; import Modal from "~/components/modal"; import { PageHead } from "~/components/PageHead"; import PatternedBackground from "~/components/PatternedBackground"; import Popup from "~/components/Popup"; import ThemeToggle from "~/components/ThemeToggle"; import { useModal } from "~/providers/modal"; import { usePopup } from "~/providers/popup"; import { api } from "~/utils/api"; import { formatToArray } from "~/utils/helpers"; import Card from "~/views/board/components/Card"; import Filters from "~/views/board/components/Filters"; import { CardModal } from "./CardModal"; export default function PublicBoardView() { const router = useRouter(); const { showPopup } = usePopup(); const [isRouteLoaded, setIsRouteLoaded] = useState(false); const { openModal } = useModal(); const boardSlug = Array.isArray(router.query.boardSlug) ? router.query.boardSlug[0] : router.query.boardSlug; const { data, isLoading } = api.board.bySlug.useQuery( { boardSlug: boardSlug ?? "", members: formatToArray(router.query.members), labels: formatToArray(router.query.labels), }, { enabled: !!boardSlug, placeholderData: keepPreviousData }, ); const CopyBoardLink = () => { return ( ); }; const splitPath = router.asPath.split("/"); const cardPublicId = splitPath.length > 3 ? splitPath[3] : null; useEffect(() => { if (!isRouteLoaded && router.isReady) { setIsRouteLoaded(true); if (cardPublicId) { openModal("CARD"); } } }, [ router.isReady, isRouteLoaded, setIsRouteLoaded, cardPublicId, openModal, ]); return ( <>
{isLoading ? (
) : (

{data?.name}

)}
{isLoading ? (
) : (
{data?.lists.map((list) => (
{list.name}
{list.cards.map((card) => ( { openModal("CARD"); }} > ))}
))}
)}
kan.bn
); }