Files
TheGame/packages/web/lib/hooks/useFirstViewportEntry.ts
Sero 38c3dc059e Sero/wc v2 (#1735)
* wc/wagmi/viem

* replace

* profile

* replace context (,:

* testing, clean up

* wallet connect deploy

* connect

* remove type slive

* podcast

* podcast

* heck yeah

* feat: connect button

* chore

* trying siwe, network switch

* redirect

* prettying, cleaning up SIWE endpoints, & passing linting 🕊

* switching minting to Optimism & converting `ethers` to `wagmi` for contract access 🥧

* simplified onboarding & successfully minted 

* typo

* api key

---------

Co-authored-by: Udit Takkar <udit222001@gmail.com>
Co-authored-by: dysbulic <dys@dhappy.org>
2024-03-21 06:09:12 -04:00

25 lines
589 B
TypeScript

import { useEffect, useRef, useState } from 'react';
const useFirstViewportEntry: any = (ref: any, observerOptions: any) => {
const [entered, setEntered] = useState(false);
const observer = useRef(
new IntersectionObserver(
([entry]) => setEntered(entry.isIntersecting),
observerOptions,
),
);
useEffect(() => {
const element = ref.current;
const ob = observer.current;
if (entered) {
ob.disconnect();
}
if (element && !entered) ob.observe(element);
}, [entered, ref]);
return entered;
};
export default useFirstViewportEntry;