diff --git a/components/admin/AdminAnalytics.tsx b/components/admin/AdminAnalytics.tsx index dfa3a92..3aa294b 100644 --- a/components/admin/AdminAnalytics.tsx +++ b/components/admin/AdminAnalytics.tsx @@ -438,7 +438,7 @@ export default function AdminAnalytics() { Today: {analyticsData?.orders?.totalToday || 0} diff --git a/components/audio-preloader.tsx b/components/audio-preloader.tsx index faff29e..51adb02 100644 --- a/components/audio-preloader.tsx +++ b/components/audio-preloader.tsx @@ -12,9 +12,16 @@ export function AudioPreloader() { audio.preload = 'auto' // Try to load it immediately - audio.load().catch(err => { + try { + const loadPromise = audio.load(); + if (loadPromise !== undefined) { + loadPromise.catch(err => { + console.log('Audio preload failed (non-critical):', err) + }); + } + } catch (err) { console.log('Audio preload failed (non-critical):', err) - }) + } return () => { // Cleanup diff --git a/components/dashboard/ChatDetail.tsx b/components/dashboard/ChatDetail.tsx index 67e6ec7..017d176 100644 --- a/components/dashboard/ChatDetail.tsx +++ b/components/dashboard/ChatDetail.tsx @@ -153,21 +153,24 @@ export default function ChatDetail({ chatId }: { chatId: string }) { const playNotificationSound = () => { if (audioRef.current) { audioRef.current.currentTime = 0; - audioRef.current.play().catch(err => { - console.log('Error playing sound:', err); - // Fallback to simple beep if audio file fails - try { - const context = new (window.AudioContext || (window as any).webkitAudioContext)(); - const oscillator = context.createOscillator(); - oscillator.type = 'sine'; - oscillator.frequency.setValueAtTime(800, context.currentTime); - oscillator.connect(context.destination); - oscillator.start(); - oscillator.stop(context.currentTime + 0.2); - } catch (e) { - console.error('Could not play fallback audio', e); - } - }); + const playPromise = audioRef.current.play(); + if (playPromise !== undefined) { + playPromise.catch(err => { + console.log('Error playing sound:', err); + // Fallback to simple beep if audio file fails + try { + const context = new (window.AudioContext || (window as any).webkitAudioContext)(); + const oscillator = context.createOscillator(); + oscillator.type = 'sine'; + oscillator.frequency.setValueAtTime(800, context.currentTime); + oscillator.connect(context.destination); + oscillator.start(); + oscillator.stop(context.currentTime + 0.2); + } catch (e) { + console.error('Could not play fallback audio', e); + } + }); + } } else { // Fallback to simple beep if audio element is not available try { diff --git a/components/dashboard/ChatTable.tsx b/components/dashboard/ChatTable.tsx index d3b981b..ff63394 100644 --- a/components/dashboard/ChatTable.tsx +++ b/components/dashboard/ChatTable.tsx @@ -92,9 +92,12 @@ export default function ChatTable() { // Play notification sound const playNotificationSound = () => { if (audioRef.current) { - audioRef.current.play().catch(e => { - console.log("Failed to play notification sound:", e); - }); + const playPromise = audioRef.current.play(); + if (playPromise !== undefined) { + playPromise.catch(e => { + console.log("Failed to play notification sound:", e); + }); + } } }; diff --git a/components/notifications/OrderNotifications.tsx b/components/notifications/OrderNotifications.tsx index b1eae7f..d10f488 100644 --- a/components/notifications/OrderNotifications.tsx +++ b/components/notifications/OrderNotifications.tsx @@ -51,21 +51,24 @@ export default function OrderNotifications() { const playNotificationSound = () => { if (audioRef.current) { audioRef.current.currentTime = 0; - audioRef.current.play().catch(err => { - console.log('Error playing sound:', err); - // Fallback to simple beep if audio file fails - try { - const context = new (window.AudioContext || (window as any).webkitAudioContext)(); - const oscillator = context.createOscillator(); - oscillator.type = 'sine'; - oscillator.frequency.setValueAtTime(800, context.currentTime); - oscillator.connect(context.destination); - oscillator.start(); - oscillator.stop(context.currentTime + 0.2); - } catch (e) { - console.error('Could not play fallback audio', e); - } - }); + const playPromise = audioRef.current.play(); + if (playPromise !== undefined) { + playPromise.catch(err => { + console.log('Error playing sound:', err); + // Fallback to simple beep if audio file fails + try { + const context = new (window.AudioContext || (window as any).webkitAudioContext)(); + const oscillator = context.createOscillator(); + oscillator.type = 'sine'; + oscillator.frequency.setValueAtTime(800, context.currentTime); + oscillator.connect(context.destination); + oscillator.start(); + oscillator.stop(context.currentTime + 0.2); + } catch (e) { + console.error('Could not play fallback audio', e); + } + }); + } } }; diff --git a/lib/notification-context.tsx b/lib/notification-context.tsx index daeb11e..9b97c74 100644 --- a/lib/notification-context.tsx +++ b/lib/notification-context.tsx @@ -147,21 +147,24 @@ export function NotificationProvider({ children }: NotificationProviderProps) { const playNotificationSound = () => { if (audioRef.current) { audioRef.current.currentTime = 0; - audioRef.current.play().catch(err => { - console.log('Error playing sound:', err); - // Fallback beep if audio file fails - try { - const context = new (window.AudioContext || (window as any).webkitAudioContext)(); - const oscillator = context.createOscillator(); - oscillator.type = 'sine'; - oscillator.frequency.setValueAtTime(800, context.currentTime); - oscillator.connect(context.destination); - oscillator.start(); - oscillator.stop(context.currentTime + 0.2); - } catch (e) { - console.error('Could not play fallback audio', e); - } - }); + const playPromise = audioRef.current.play(); + if (playPromise !== undefined) { + playPromise.catch(err => { + console.log('Error playing sound:', err); + // Fallback beep if audio file fails + try { + const context = new (window.AudioContext || (window as any).webkitAudioContext)(); + const oscillator = context.createOscillator(); + oscillator.type = 'sine'; + oscillator.frequency.setValueAtTime(800, context.currentTime); + oscillator.connect(context.destination); + oscillator.start(); + oscillator.stop(context.currentTime + 0.2); + } catch (e) { + console.error('Could not play fallback audio', e); + } + }); + } } };