import { useNavigate } from "@remix-run/react"; import type { ReactNode} from "react"; import { useEffect, useState } from "react"; import type { StationWithTagsClientSide } from "~/models/station.server"; import { getStationUrl } from "~/utils"; export type StationPlayerProps = { station: StationWithTagsClientSide | null, nextPrevStationIds: { prev?: string; next?: string; }, }; export function StationPlayer({ station, nextPrevStationIds }: StationPlayerProps) { const [player, setPlayer] = useState(null); const route = useNavigate(); useEffect(() => { if (typeof window === 'undefined') return; const importComponent = async () => { if (!station) return; try { const module = await import('react-radio-player'); const RadioBottomBarPlayer = module.RadioBottomBarPlayer; setPlayer( { if (!nextPrevStationIds.next) return; route(getStationUrl(nextPrevStationIds.next)) }} onPrevButtonClicked={() => { if (!nextPrevStationIds.prev) return; route(getStationUrl(nextPrevStationIds.prev)) }} secondDescription={<>★ {station.popularity}} />); } catch (error) { console.log('rerrerer', error) } }; importComponent() }, [station]) if (!station || !player) { return <>; } return (
{player}
); }