22 lines
608 B
TypeScript
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;
|
|
};
|