import { Box, Button, Flex, Text } from '@chakra-ui/react'; import { LuDisc3 } from 'react-icons/lu'; import { MdEdit } from 'react-icons/md'; 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 { BUTTON_TOP_BAR_PROPERTY, TopBar } from '@/components/TopBar/TopBar'; import { AlbumEditPopUp } from '@/components/popup/AlbumEditPopUp'; import { TrackEditPopUp } from '@/components/popup/TrackEditPopUp'; import { DisplayTrack } from '@/components/track/DisplayTrack'; import { DisplayTrackFull } from '@/components/track/DisplayTrackFull'; import { useActivePlaylistService } from '@/service/ActivePlaylist'; import { useSpecificAlbum } from '@/service/Album'; import { useTracksOfAnAlbum } from '@/service/Track'; import { useThemeMode } from '@/utils/theme-tools'; import { BASE_WRAP_SPACING } from '@/constants/genericSpacing'; export const AlbumDetailPage = () => { const { albumId } = useParams(); const albumIdInt = albumId ? parseInt(albumId, 10) : undefined; const { mode } = useThemeMode(); const { playInList } = useActivePlaylistService(); const { dataAlbum } = useSpecificAlbum(albumIdInt); const { tracksOnAnAlbum } = useTracksOfAnAlbum(albumIdInt); const navigate = useNavigate(); const onSelectItem = (trackId: number) => { //navigate(`/artist/${artistIdInt}/album/${albumId}`); let currentPlay = 0; const listTrackId: number[] = []; if (!tracksOnAnAlbum) { console.log('Fail to get 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: {albumId} ); } return ( <> {dataAlbum?.name} {dataAlbum?.description && ( Description: {dataAlbum?.description} )} {dataAlbum?.publication && ( first name: {dataAlbum?.publication} )} {tracksOnAnAlbum?.map((data) => ( onSelectItem(data.id)} contextMenu={[ { name: 'Edit', onClick: () => { navigate(`/album/${albumId}/edit-track/${data.id}`); }, }, { name: 'Add Playlist', onClick: () => { } }, ]} data-testid="Album-detail-page_display-detail" /> ))} } /> } /> ); };