import { Box, Flex, Text, Wrap, WrapItem } from '@chakra-ui/react'; import { LuDisc3, LuFileAudio, LuMusic2, LuUser } from 'react-icons/lu'; import { useNavigate, useParams } from 'react-router-dom'; import { Album, Artist, Track } from '@/back-api'; import { Covers } from '@/components/Cover'; import { PageLayout } from '@/components/Layout/PageLayout'; import { PageLayoutInfoCenter } from '@/components/Layout/PageLayoutInfoCenter'; import { TopBar } from '@/components/TopBar/TopBar'; import { useActivePlaylistService } from '@/service/ActivePlaylist'; import { useSpecificAlbum } from '@/service/Album'; import { useArtistService, useSpecificArtist } from '@/service/Artist'; import { useAlbumIdsOfAnArtist, useTracksOfAnAlbum } from '@/service/Track'; import { useThemeMode } from '@/utils/theme-tools'; export type DisplayTrackProps = { track: Track; }; export const DisplayTrack = ({ track }: DisplayTrackProps) => { return ( } /> [{track.track}] {track.name} ); }; export const EmptyEnd = () => { return ( ); }; export const ArtistAlbumDetailPage = () => { const { artistId, albumId } = useParams(); const artistIdInt = artistId ? parseInt(artistId, 10) : undefined; const albumIdInt = albumId ? parseInt(albumId, 10) : undefined; const { mode } = useThemeMode(); const { playInList } = useActivePlaylistService(); const { dataArtist } = useSpecificArtist(artistIdInt); const { dataAlbum } = useSpecificAlbum(albumIdInt); const { tracksOnAnAlbum } = useTracksOfAnAlbum(albumIdInt); const onSelectItem = (trackId: number) => { //navigate(`/artist/${artistIdInt}/album/${albumId}`); let currentPlay = 0; const listTrackId: number[] = []; for (let iii = 0; iii < tracksOnAnAlbum.length; iii++) { listTrackId.push(tracksOnAnAlbum[iii].id); if (tracksOnAnAlbum[iii].id === trackId) { currentPlay = iii; } } playInList(currentPlay, listTrackId); }; console.log(`dataAlbum = ${JSON.stringify(dataAlbum, null, 2)}`); if (!dataAlbum) { <> Fail to load artist id: {artistId} ; } return ( <> } /> {dataArtist?.name} {dataArtist?.description && ( Description: {dataArtist?.description} )} {dataArtist?.firstName && ( first name: {dataArtist?.firstName} )} {dataArtist?.surname && surname: {dataArtist?.surname}} {dataArtist?.birth && birth: {dataArtist?.birth}} } /> {dataAlbum?.name} {dataAlbum?.description && ( Description: {dataAlbum?.description} )} {dataAlbum?.publication && ( first name: {dataAlbum?.publication} )} {tracksOnAnAlbum?.map((data) => ( onSelectItem(data.id)} > ))} ); };