import Header from "@components/header/header" import PageSeo from "@components/page-seo" import VisibilityBadge from "@components/badges/visibility-badge" import DocumentComponent from '@components/view-document' import styles from './post-page.module.css' import homeStyles from '@styles/Home.module.css' import type { File, Post } from "@lib/types" import { Page, Button, Text, Badge, Tooltip, Spacer, ButtonDropdown, ButtonGroup, useMediaQuery } from "@geist-ui/core" import { useCallback, useEffect, useMemo, useState } from "react" import { timeAgo, timeUntil } from "@lib/time-ago" import Archive from '@geist-ui/icons/archive' import FileDropdown from "@components/file-dropdown" import ScrollToTop from "@components/scroll-to-top" import { useRouter } from "next/router" import ExpirationBadge from "@components/badges/expiration-badge" import CreatedAgoBadge from "@components/badges/created-ago-badge" import Cookies from "js-cookie" type Props = { post: Post } const PostPage = ({ post }: Props) => { const router = useRouter() const download = async () => { const downloadZip = (await import("client-zip")).downloadZip const blob = await downloadZip(post.files.map((file: any) => { return { name: file.title, input: file.content, lastModified: new Date(file.updatedAt) } })).blob() const link = document.createElement("a") link.href = URL.createObjectURL(blob) link.download = `${post.title}.zip` link.click() link.remove() } const isMobile = useMediaQuery("mobile") const isExpired = useMemo(() => { return post.expiresAt && new Date(post.expiresAt) < new Date() }, [post.expiresAt]) const onExpires = useCallback(() => { const isOwner = post.users ? post.users[0].id === Cookies.get("drift-userid") : false if (isExpired && !isOwner) { router.push("/expired") return <> } }, [isExpired, post.users, router]) return (
{/* {!isLoading && } */}
{post.title} {/* If it hasn't expired, the badge can be too long */}
{/* {post.files.length > 1 && } */} {post.files.map(({ id, content, title }: File) => ( ))}
) } export default PostPage