Files
podcaster/web/src/player/context.ts

22 lines
608 B
TypeScript

import { createContext, useContext } from "react";
import type { EpisodeDetail } from "../api/episodes";
export type PlayerStatus = "stopped" | "playing" | "paused";
export type PlayerContext = {
status: PlayerStatus;
setStatus: (status: PlayerStatus) => void;
episode: EpisodeDetail | null;
setEpisode: (episode: EpisodeDetail | null) => void;
};
export const playerContext = createContext<PlayerContext | null>(null);
export const usePlayerContext = () => {
const ctx = useContext(playerContext);
if (!ctx) {
throw new Error("No PlayerProvider in component tree");
}
return ctx;
};