xref: /MusicFree/src/components/musicSheetPage/index.tsx (revision ddece18e7942a667c4a0b92c4f164e9a18b0ceee)
1import React from 'react';
2import NavBar from './components/navBar';
3import MusicBar from '@/components/musicBar';
4import SheetMusicList from './components/sheetMusicList';
5import StatusBar from '@/components/base/statusBar';
6import globalStyle from '@/constants/globalStyle';
7import VerticalSafeAreaView from '../base/verticalSafeAreaView';
8
9interface IMusicSheetPageProps {
10    navTitle: string;
11    sheetInfo: ICommon.WithMusicList<IMusic.IMusicSheetItemBase> | null;
12    musicList?: IMusic.IMusicItem[] | null;
13    onEndReached?: () => void;
14    loadMore?: 'loading' | 'done' | 'idle';
15}
16
17export default function MusicSheetPage(props: IMusicSheetPageProps) {
18    const {navTitle, sheetInfo, musicList, onEndReached, loadMore} = props;
19
20    return (
21        <VerticalSafeAreaView style={globalStyle.fwflex1}>
22            <StatusBar />
23            <NavBar
24                musicList={musicList ?? sheetInfo?.musicList ?? []}
25                navTitle={navTitle}
26            />
27            <SheetMusicList
28                sheetInfo={sheetInfo}
29                musicList={musicList ?? sheetInfo?.musicList}
30                onEndReached={() => {
31                    onEndReached?.();
32                }}
33                loadMore={loadMore}
34            />
35            <MusicBar />
36        </VerticalSafeAreaView>
37    );
38}
39