import { useEffect, useState } from "react"; import { AccessibilityInfo } from "react-native"; // Q-4:對應 apps/web 的 `prefers-reduced-motion`,兩處視覺母題動畫(HeartbeatWave/HeartbeatDot) // 都要在系統開啟「減少動態」時關閉動畫,改為靜態呈現。 export function useReduceMotion(): boolean { const [reduceMotion, setReduceMotion] = useState(false); useEffect(() => { let mounted = true; AccessibilityInfo.isReduceMotionEnabled().then((enabled) => { if (mounted) { setReduceMotion(enabled); } }); const subscription = AccessibilityInfo.addEventListener("reduceMotionChanged", (enabled: boolean) => { setReduceMotion(enabled); }); return () => { mounted = false; subscription.remove(); }; }, []); return reduceMotion; }