Files
NapCatQQ/.pnpm-store/v3/files/3f/b72cbc5b8dae20f759ab90c694aff3f1d3daf3bc4445fa88f53a395fcc5967c7fb874cde0229bbbc3597f1781dbff4f4af95e3c43e890788dc4a3cc7c3140a
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

30 lines
792 B
Plaintext

"use client";
// src/use-ripple.ts
import { getUniqueID } from "@heroui/shared-utils";
import { useCallback, useState } from "react";
function useRipple(props = {}) {
const [ripples, setRipples] = useState([]);
const onPress = useCallback((event) => {
const trigger = event.target;
const size = Math.max(trigger.clientWidth, trigger.clientHeight);
setRipples((prevRipples) => [
...prevRipples,
{
key: getUniqueID(prevRipples.length.toString()),
size,
x: event.x - size / 2,
y: event.y - size / 2
}
]);
}, []);
const onClear = useCallback((key) => {
setRipples((prevState) => prevState.filter((ripple) => ripple.key !== key));
}, []);
return { ripples, onClear, onPress, ...props };
}
export {
useRipple
};