import * as React from "react"; // credits: https://github.com/sergiodxa/remix-utils/blob/main/src/react/use-hydrated.ts function subscribe() { return () => {}; } /** * Return a boolean indicating if the JS has been hydrated already. * When doing Server-Side Rendering, the result will always be false. * When doing Client-Side Rendering, the result will always be false on the * first render and true from then on. Even if a new component renders it will * always start with true. * * Example: Disable a button that needs JS to work. * ```tsx * let hydrated = useHydrated(); * return ( * * ); * ``` */ export function useHydrated() { return React.useSyncExternalStore( subscribe, () => true, () => false, ); }