File size: 754 Bytes
78d0e31 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
"use client"
import { useEffect, useState } from "react"
import { AudioHeartbeat } from "./audio-heartbeat"
import { VisualHeartbeat } from "./visual-heartbeat"
export function HeartbeatEffect() {
const [audioSupported, setAudioSupported] = useState<boolean | null>(null)
useEffect(() => {
// Check if Web Audio API is supported
const isAudioSupported =
typeof window !== "undefined" && (window.AudioContext || (window as any).webkitAudioContext)
setAudioSupported(!!isAudioSupported)
}, [])
// During SSR or before we check, don't render anything
if (audioSupported === null) return null
// Render the appropriate component based on browser support
return audioSupported ? <AudioHeartbeat /> : <VisualHeartbeat />
}
|