"use client"; import { useState, useEffect } from "react"; import { useMediaQuery } from "../../hooks/useMediaQuery"; import HeaderLockup from "../../components/type/HeaderLockup"; import Upload from "../../components/controls/Upload"; import { useCreateFlow } from "../context/CreateFlowContext"; /** * Upload page for the create flow * * Displays upload functionality using HeaderLockup and Upload components. * Responsive layout: centered at 640px+, left-aligned below 640px. * Responsive sizing: uses L/M for HeaderLockup based on 640px breakpoint. */ export default function UploadPage() { const { markCreateFlowInteraction } = useCreateFlow(); const [isMounted, setIsMounted] = useState(false); const isMdOrLarger = useMediaQuery("(min-width: 640px)"); // Avoid flash: only use breakpoint after mount so SSR and first paint use same layout (desktop). useEffect(() => { // eslint-disable-next-line react-hooks/set-state-in-effect -- intentional: defer layout breakpoint until after mount to prevent flash setIsMounted(true); }, []); const effectiveMdOrLarger = !isMounted || isMdOrLarger; const handleUploadClick = () => { markCreateFlowInteraction(); // TODO: Handle upload button click (e.g. open file picker) }; return (