finalized link card

This commit is contained in:
daniel31x13
2023-12-23 19:00:53 -05:00
parent 848a33a53e
commit e27fb90f14
13 changed files with 271 additions and 92 deletions
+20
View File
@@ -0,0 +1,20 @@
import { RefObject, useEffect, useMemo, useState } from "react";
export default function useOnScreen(ref: RefObject<HTMLElement>) {
const [isIntersecting, setIntersecting] = useState(false);
const observer = useMemo(
() =>
new IntersectionObserver(([entry]) =>
setIntersecting(entry.isIntersecting)
),
[ref]
);
useEffect(() => {
observer.observe(ref.current as HTMLElement);
return () => observer.disconnect();
}, []);
return isIntersecting;
}