Files
freqsplit/client/src/contexts/MediaContext.tsx
T
2025-03-15 14:59:58 +05:30

36 lines
1.1 KiB
TypeScript

import React, { createContext, useState, useContext } from 'react';
interface MediaContextType {
mediaFile: { name: string; url: string; type: string } | null;
setMediaFile: (file: { name: string; url: string; type: string }) => void;
response: { file_uuid: string; sr: number; audio_class: string };
setResponse: (response: { file_uuid: string; sr: number; audio_class: string }) => void;
}
const MediaContext = createContext<MediaContextType | undefined>(undefined);
export const MediaProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
const [mediaFile, setMediaFile] = useState<MediaContextType['mediaFile']>(null);
const [response, setResponse] = useState<MediaContextType["response"]>({
audio_class: "",
file_uuid: "",
sr: 0,
});
return (
<MediaContext.Provider value={{ mediaFile, setMediaFile, response, setResponse }}>
{children}
</MediaContext.Provider>
);
};
export const useMediaContext = () => {
const context = useContext(MediaContext);
if (!context) {
throw new Error("useMediaContext must be used within a MediaProvider");
}
return context;
};