2025-04-02 20:42:47 -03:00
|
|
|
"use client";
|
2025-03-30 16:42:51 -03:00
|
|
|
import React, { useEffect, useState } from 'react';
|
2025-04-02 20:42:47 -03:00
|
|
|
import { soundAssets } from '../../../../public/sounds/manifest';
|
2025-03-30 21:47:18 -03:00
|
|
|
//import { cacheAssets } from '../lib/asset-loader';
|
2025-03-30 16:42:51 -03:00
|
|
|
|
|
|
|
export function SoundInitializer({ children }: { children: React.ReactNode }) {
|
|
|
|
const [isReady, setIsReady] = useState(false);
|
|
|
|
const [error, setError] = useState<string | null>(null);
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
const initializeSounds = async () => {
|
|
|
|
try {
|
2025-03-30 21:47:18 -03:00
|
|
|
// await cacheAssets(Object.values(soundAssets));
|
2025-03-30 16:42:51 -03:00
|
|
|
setIsReady(true);
|
|
|
|
} catch (err) {
|
|
|
|
setError(err instanceof Error ? err.message : 'Failed to initialize sounds');
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2025-03-30 19:04:24 -03:00
|
|
|
initializeSounds();
|
2025-03-30 16:42:51 -03:00
|
|
|
}, []);
|
|
|
|
|
2025-03-30 19:04:24 -03:00
|
|
|
if (error) {
|
2025-03-30 16:42:51 -03:00
|
|
|
return (
|
2025-03-30 19:04:24 -03:00
|
|
|
<div className="error-container">
|
|
|
|
<p className="error-text">Error: {error}</p>
|
|
|
|
</div>
|
2025-03-30 16:42:51 -03:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!isReady) {
|
|
|
|
return (
|
2025-03-30 19:04:24 -03:00
|
|
|
<div className="loading-container">
|
|
|
|
<p>Loading sounds...</p>
|
|
|
|
</div>
|
2025-03-30 16:42:51 -03:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
return <>{children}</>;
|
|
|
|
}
|