damage-effect.tsx 592 B

123456789101112131415161718192021222324
  1. "use client";
  2. import { useState, useEffect } from "react";
  3. interface DamageEffectProps {
  4. lastDamageTime: number | null;
  5. }
  6. export function DamageEffect({ lastDamageTime }: DamageEffectProps) {
  7. const [show, setShow] = useState(false);
  8. useEffect(() => {
  9. if (!lastDamageTime) return;
  10. setShow(true);
  11. const timer = setTimeout(() => setShow(false), 400);
  12. return () => clearTimeout(timer);
  13. }, [lastDamageTime]);
  14. if (!show) return null;
  15. return (
  16. <div className="absolute inset-0 pointer-events-none z-20 animate-screen-flash bg-red-600/30 rounded-none" />
  17. );
  18. }