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 />
}