Packages
React inside Phoenix LiveView — async code splitting, client-side props diffing, and zero-config component discovery.
Retired package: Release invalid - Not production-ready
Current section
Files
Jump to
Current section
Files
assets/context.tsx
import { createContext, useContext, type ReactNode } from "react";
import type { HookProps } from "./types";
export const ReactPhxContext = createContext<HookProps | null>(null);
interface ReactPhxProviderProps extends HookProps {
children: ReactNode;
}
export function ReactPhxProvider({
children,
...props
}: ReactPhxProviderProps): React.JSX.Element {
return (
<ReactPhxContext.Provider value={props}>{children}</ReactPhxContext.Provider>
);
}
export function useLiveReact(): HookProps {
const ctx = useContext(ReactPhxContext);
if (!ctx) {
throw new Error("useLiveReact must be used within a ReactPhxProvider");
}
return ctx;
}