Files
spsays-training/app/u/[handle]/profile-context.tsx
T
2026-05-31 00:26:05 +05:30

20 lines
634 B
TypeScript

"use client";
import { createContext, useContext } from "react";
import type { PublicProfile } from "@/lib/social";
/** Set by the /u/[handle] layout after it fetches the profile. Child
* pages read it to render content (e.g. the Collections tab needs the
* profile's `public_collections` array) without a second fetch. */
export const PublicProfileContext = createContext<PublicProfile | null>(null);
export function usePublicProfile(): PublicProfile {
const v = useContext(PublicProfileContext);
if (!v) {
throw new Error(
"usePublicProfile must be used inside the /u/[handle] layout",
);
}
return v;
}