Something went wrong. Try again.
leaflet fork for copy edit / bug fixes forked from leaflet.pub/leaflet
Something went wrong. Try again.
TSX
at perf/paste
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950"use client";import { createContext, useContext } from "react";import type { PostPageData } from "app/(app)/lish/[did]/[publication]/[rkey]/getPostPageData";
// Derive types from PostPageDatatype NonNullPostPageData = NonNullable<PostPageData>;export type PublicationContext = NonNullPostPageData["publication"];
export type DocumentContextValue = Pick< NonNullPostPageData, | "uri" | "normalizedDocument" | "normalizedPublication" | "theme" | "prevNext" | "quotesAndMentions" | "publication" | "commentsCount" | "commentsCountByPage" | "mentions" | "leafletId" | "recommendsCount">;
const DocumentContext = createContext<DocumentContextValue | null>(null);
export function useDocument() { const ctx = useContext(DocumentContext); if (!ctx) throw new Error("useDocument must be used within DocumentProvider"); return ctx;}
export function useDocumentOptional() { return useContext(DocumentContext);}
export function DocumentProvider({ children, value,}: { children: React.ReactNode; value: DocumentContextValue;}) { return ( <DocumentContext.Provider value={value}> {children} </DocumentContext.Provider> );}