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: () => {} },
]}
/>
))}
} />
>
);
};