import { Match, Show, Switch, createContext } from "solid-js"; import TrackProgressBar from "./TrackProgressBar/TrackProgressBar"; import PastTracks from "./PastTracks/PastTracks"; import { FaRegularUser, FaSolidCompactDisc } from "solid-icons/fa"; import disc from "./disc.svg"; import { lfmvHook, useLastfmViewer } from "./useLastfmViewer"; import { LastFmImage } from "@repo/utils/LFMtypes"; import { Image } from "@repo/utils/MBtypes"; import ErrorView from "./ErrorView/ErrorView"; import LoadingSkeleton from "./LoadingSkeleton/LoadingSkeleton"; import styles from "@repo/ui/LastFMViewer.module.css"; import "@repo/ui"; import CardFooter from "./CardFooter/CardFooter"; export interface Colors { primary: string | undefined; secondary: string | undefined; accent: string | undefined; } export interface Props { api_key: string; user: string; updateInterval?: number; } export const lfmContext = createContext({ track: { trackName: "", artistName: "", albumTitle: "", MBImages: undefined, lastfmImages: undefined, nowplaying: false, pastTracks: [], duration: 0 }, colors: undefined, loading: true, message: "" }); const SolidLastFMViewer = ({ api_key, user, updateInterval }: Props) => { const state: lfmvHook = useLastfmViewer({ api_key, user, updateInterval }); return ( <> {/* preconnects */} {/* preconnects */}
{state.track instanceof Error ? ( {} ) : ( <>
} > {null} } > Album Cover Album Cover
{state.track?.nowplaying && ( )}

{state.track?.trackName}

{ {state.track?.artistName} } {state.track?.albumTitle ? ( {state.track?.albumTitle} ) : null}
)}
); }; export default SolidLastFMViewer;