import { ReactElement } from 'react'; import { Box, Flex, Text } from '@chakra-ui/react'; import { useNavigate, useParams } from 'react-router-dom'; import { EmptyEnd } from '@/components/EmptyEnd'; import { PageLayout } from '@/components/Layout/PageLayout'; import { TopBar } from '@/components/TopBar/TopBar'; import { DisplayTrack } from '@/components/track/DisplayTrack'; import { DisplayTrackFull } from '@/components/track/DisplayTrackFull'; import { DisplayTrackSkeleton } from '@/components/track/DisplayTrackSkeleton'; import { alphabet } from '@/scene/track/TrackSelectionPage'; import { useActivePlaylistService } from '@/service/ActivePlaylist'; import { useTrackService, useTracksWithStartName } from '@/service/Track'; import { useThemeMode } from '@/utils/theme-tools'; export const TracksStartLetterDetailPage = () => { const { startLetter } = useParams(); const { mode } = useThemeMode(); const { isLoading, tracksStartsWith } = useTracksWithStartName( startLetter !== '^^' ? startLetter ? [startLetter.toLowerCase(), startLetter.toUpperCase()] : 'ZZZZ' : [...alphabet, ...alphabet.map((str) => str.toUpperCase())], startLetter === '^^' ); const { playInList } = useActivePlaylistService(); const onSelectItem = (trackId: number) => { //navigate(`/artist/${artistIdInt}/gender/${genderId}`); let currentPlay = 0; const listTrackId: number[] = []; if (!tracksStartsWith) { console.log('Fail to get tracks...'); return; } for (let iii = 0; iii < tracksStartsWith.length; iii++) { listTrackId.push(tracksStartsWith[iii].id); if (tracksStartsWith[iii].id === trackId) { currentPlay = iii; } } playInList(currentPlay, listTrackId); }; console.log( `Redraw ... isLoading=${isLoading} data=${tracksStartsWith?.length} ... ${Date()}` ); return ( <> {isLoading && [1, 2, 3, 4]?.map((data) => ( ))} {!isLoading && tracksStartsWith?.map((data) => ( onSelectItem(data.id)} /> ))} ); };