import { useCallback } from "react"; import { ChevronRight } from "lucide-react"; import { DocumentPage } from "@/client/components/editor/document-page"; import { CanvasPage } from "@/client/components/canvas/canvas-page"; import { DEFAULT_PAGE_TITLE } from "@/shared/constants"; import { PageBreadcrumbs } from "@/client/components/ui/page-breadcrumbs"; import { PageChrome, PageEmojiIcon } from "@/client/components/ui/page-chrome"; import { PageCover } from "@/client/components/ui/page-cover"; import { PageErrorState } from "@/client/components/ui/page-error-state"; import { PageLoadingSkeleton } from "@/client/components/ui/page-loading-skeleton"; import { Skeleton } from "@/client/components/ui/skeleton"; import { useDocumentTitle } from "@/client/hooks/use-document-title"; import { useOnline } from "@/client/hooks/use-online"; import { useActivePageActions, useActivePageState, useActivePageSync, } from "@/client/components/active-page/use-active-page"; import { useSharedPagePresentation } from "@/client/components/share/use-share-view"; import { deriveSharePageAffordance } from "@/client/lib/affordance/share-page"; function SharedBreadcrumbSkeleton() { return (
); } export function SharePageView() { const activePageState = useActivePageState(); const { patchPage } = useActivePageActions(); const { setSyncProvider } = useActivePageSync(); const presentation = useSharedPagePresentation(); const online = useOnline(); const handleTitleChange = useCallback( (titleOverride: string) => { patchPage({ title: titleOverride }); }, [patchPage], ); useDocumentTitle(presentation.displayTitle || DEFAULT_PAGE_TITLE); if (activePageState.kind === "unavailable") { return (