xref: /MusicFree/src/pages/musicListEditor/index.tsx (revision b4c389f44ac4dad056e7314478fadd2eca82a4b1)
1import React, {useEffect} from 'react';
2import StatusBar from '@/components/base/statusBar';
3import Bottom from './components/bottom';
4import Body from './components/body';
5import {useSetAtom} from 'jotai';
6import {editingMusicListAtom, musicListChangedAtom} from './store/atom';
7import {useParams} from '@/core/router';
8import globalStyle from '@/constants/globalStyle';
9import VerticalSafeAreaView from '@/components/base/verticalSafeAreaView';
10import AppBar from '@/components/base/appBar';
11
12export default function MusicListEditor() {
13    const {musicSheet, musicList} = useParams<'music-list-editor'>();
14
15    const setEditingMusicList = useSetAtom(editingMusicListAtom);
16    const setMusicListChanged = useSetAtom(musicListChangedAtom);
17
18    useEffect(() => {
19        setEditingMusicList(
20            (musicList ?? []).map(_ => ({musicItem: _, checked: false})),
21        );
22        return () => {
23            setEditingMusicList([]);
24            setMusicListChanged(false);
25        };
26    }, []);
27
28    return (
29        <VerticalSafeAreaView style={globalStyle.fwflex1}>
30            <StatusBar />
31            <AppBar>{musicSheet?.title ?? '歌单'}</AppBar>
32            <Body />
33            <Bottom />
34        </VerticalSafeAreaView>
35    );
36}
37