import { Box, Flex, Text } from '@chakra-ui/react'; import { LuDisc3, LuUser } from 'react-icons/lu'; import { Route, Routes, useNavigate, useParams } from 'react-router-dom'; import { Covers } from '@/components/Cover'; import { EmptyEnd } from '@/components/EmptyEnd'; import { PageLayout } from '@/components/Layout/PageLayout'; import { PageLayoutInfoCenter } from '@/components/Layout/PageLayoutInfoCenter'; import { TopBar } from '@/components/TopBar/TopBar'; import { TrackEditPopUp } from '@/components/popup/TrackEditPopUp'; import { DisplayTrack } from '@/components/track/DisplayTrack'; import { useActivePlaylistService } from '@/service/ActivePlaylist'; import { useSpecificAlbum } from '@/service/Album'; import { useSpecificArtist } from '@/service/Artist'; import { useTracksOfAnAlbum } from '@/service/Track'; import { useThemeMode } from '@/utils/theme-tools'; 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 navigate = useNavigate(); const onSelectItem = (trackId: number) => { let currentPlay = 0; const listTrackId: number[] = []; if (!tracksOnAnAlbum) { console.error('Fail to get the album ...'); return; } 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) { return ( <> 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)} contextMenu={[ { name: 'Edit', onClick: () => { navigate( `/artist/${artistIdInt}/album/${albumId}/edit/${data.id}` ); }, }, { name: 'Add Playlist', onClick: () => {} }, ]} /> ))} } /> ); };