diff --git a/.changeset/twelve-crews-join.md b/.changeset/twelve-crews-join.md new file mode 100644 index 0000000..59837fd --- /dev/null +++ b/.changeset/twelve-crews-join.md @@ -0,0 +1,5 @@ +--- +"@wethegit/react-hooks": patch +--- + +Adds SSR support diff --git a/packages/wethegit-react-hooks/src/lib/hooks/use-in-view.ts b/packages/wethegit-react-hooks/src/lib/hooks/use-in-view.ts index 5788e77..105d036 100644 --- a/packages/wethegit-react-hooks/src/lib/hooks/use-in-view.ts +++ b/packages/wethegit-react-hooks/src/lib/hooks/use-in-view.ts @@ -60,12 +60,13 @@ export function useInView( [once, setInViewIfScrolledPast] ) - const observer = useMemo(() => { + const observer = useMemo(() => { + if (typeof IntersectionObserver !== "function") return return new IntersectionObserver(observerCallback, settings) }, [settings, observerCallback]) useEffect(() => { - if (!targetRef) return + if (!targetRef || !observer) return observer.observe(targetRef) diff --git a/packages/wethegit-react-hooks/src/main.jsx b/packages/wethegit-react-hooks/src/main.jsx index 9995f54..fb6c9ba 100644 --- a/packages/wethegit-react-hooks/src/main.jsx +++ b/packages/wethegit-react-hooks/src/main.jsx @@ -1,5 +1,5 @@ import React, { useCallback, useState } from "react" -import ReactDOM from "react-dom" +import { createRoot } from "react-dom/client" import { useAnimatePresence, useAsync, @@ -121,11 +121,11 @@ function App() { ) } -ReactDOM.render( +const root = createRoot(document.getElementById("root")) +root.render( - , - document.getElementById("root") + )