import { RefObject, useEffect, useState } from "react"; export default function useScrollToBottom( scrollRef: RefObject, detach: boolean = false, ) { // for auto-scroll const [autoScroll, setAutoScroll] = useState(true); function scrollDomToBottom() { const dom = scrollRef.current; if (dom) { requestAnimationFrame(() => { setAutoScroll(true); dom.scrollTo(0, dom.scrollHeight); }); } } // auto scroll useEffect(() => { if (autoScroll && !detach) { scrollDomToBottom(); } }); return { scrollRef, autoScroll, setAutoScroll, scrollDomToBottom, }; }