Files
SnowLuma/.pnpm-store/v11/files/a1/e59157e18e78021d7c4ced7744a11ef99feed713d30f92a582e69a71f4b9b5bf7db5a88d6b787202aa73f607b70ab156d147768f766ba69b6511fad0035b0e
TanTan 2a69b23b47
Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

26 lines
801 B
Plaintext

"use client";
import { useState, useEffect } from 'react';
import { inView } from '../render/dom/viewport/index.mjs';
function useInView(ref, { root, margin, amount, once = false, initial = false, } = {}) {
const [isInView, setInView] = useState(initial);
useEffect(() => {
if (!ref.current || (once && isInView))
return;
const onEnter = () => {
setInView(true);
return once ? undefined : () => setInView(false);
};
const options = {
root: (root && root.current) || undefined,
margin,
amount,
};
return inView(ref.current, onEnter, options);
}, [root, ref, margin, once, amount]);
return isInView;
}
export { useInView };
//# sourceMappingURL=use-in-view.mjs.map