xref: /MusicFree/src/components/musicSheetPage/index.tsx (revision 410a159129b1f6a7a1f44fde7bfad9a46f91e161)
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    canStar?: boolean;
17}
18
19export default function MusicSheetPage(props: IMusicSheetPageProps) {
20    const {navTitle, sheetInfo, musicList, onEndReached, loadMore, canStar} =
21        props;
22
23    return (
24        <VerticalSafeAreaView style={globalStyle.fwflex1}>
25            <StatusBar />
26            <NavBar
27                musicList={musicList ?? sheetInfo?.musicList ?? []}
28                navTitle={navTitle}
29            />
30            <SheetMusicList
31                canStar={canStar}
32                sheetInfo={sheetInfo as any}
33                musicList={musicList ?? sheetInfo?.musicList}
34                onEndReached={() => {
35                    onEndReached?.();
36                }}
37                loadMore={loadMore}
38            />
39            <MusicBar />
40        </VerticalSafeAreaView>
41    );
42}
43