import { QAbstractButtonSignals } from "@nodegui/nodegui"; import { Button, ScrollArea, Text, View } from "@nodegui/react-nodegui"; import React from "react"; import { useLocation, useParams } from "react-router"; import { QueryCacheKeys } from "../conf"; import useSpotifyQuery from "../hooks/useSpotifyQuery"; import BackButton from "./BackButton"; import PlaceholderApplet from "./shared/PlaceholderApplet"; import PlaylistCard from "./shared/PlaylistCard"; function PlaylistGenreView() { const { id } = useParams<{ id: string }>(); const location = useLocation<{ name: string }>(); const { data: playlists, isError, isLoading, refetch } = useSpotifyQuery( [QueryCacheKeys.genrePlaylists, id], (spotifyApi) => spotifyApi.getPlaylistsForCategory(id).then((playlistsRes) => playlistsRes.body.playlists.items), { initialData: [] } ); return ; } export default PlaylistGenreView; interface GenreViewProps { heading: string; playlists: SpotifyApi.PlaylistObjectSimplified[]; loadMore?: QAbstractButtonSignals["clicked"]; isLoadable?: boolean; isError: boolean; isLoading: boolean; refetch: Function; } export function GenreView({ heading, playlists, loadMore, isLoadable, isError, isLoading, refetch }: GenreViewProps) { const playlistGenreViewStylesheet = ` #genre-container{ flex-direction: column; flex: 1; } #heading { padding: 10px; } #scroll-view{ flex: 1; flex-grow: 1; border: none; } #child-container { flex-direction: "row"; justify-content: "space-evenly"; align-items: 'center'; flex-wrap: "wrap"; width: 330px; } `; return ( {`

${heading}

`}
{playlists?.map((playlist, index) => { return ; })} {loadMore &&