xref: /MusicFree/src/pages/sheetDetail/components/navBar.tsx (revision da2a2959bbf8b96423ead2452a5f60867d05a8b3)
1bf6e62f2S猫头猫import React from 'react';
2e7fa3837S猫头猫import {useNavigation} from '@react-navigation/native';
3e7fa3837S猫头猫import {ROUTE_PATH, useParams} from '@/entry/router';
42a3194f5S猫头猫import Toast from '@/utils/toast';
5740e3947S猫头猫import toast from '@/utils/toast';
675d76114S猫头猫import {showDialog} from '@/components/dialogs/useDialog';
77a8d024eS猫头猫import AppBar from '@/components/base/appBar';
8740e3947S猫头猫import MusicSheet from '@/core/musicSheet';
9740e3947S猫头猫import {SortType} from '@/constants/commonConst.ts';
10*da2a2959S猫头猫import {showPanel} from '@/components/panels/usePanel.ts';
11bf6e62f2S猫头猫
124060c00aS猫头猫export default function () {
1303f1f70cS猫头猫    const navigation = useNavigation<any>();
14ceb900cdS猫头猫    const {id = 'favorite'} = useParams<'local-sheet-detail'>();
15740e3947S猫头猫    const musicSheet = MusicSheet.useSheetItem(id);
16bf6e62f2S猫头猫
17bf6e62f2S猫头猫    return (
187a8d024eS猫头猫        <>
197a8d024eS猫头猫            <AppBar
207a8d024eS猫头猫                menu={[
21a3289929S猫头猫                    {
225589cdf3S猫头猫                        icon: 'trash-outline',
23a3289929S猫头猫                        title: '删除歌单',
24a3289929S猫头猫                        show: id !== 'favorite',
25a3289929S猫头猫                        onPress() {
26a3289929S猫头猫                            showDialog('SimpleDialog', {
27a3289929S猫头猫                                title: '删除歌单',
28efc141fcS猫头猫                                content: `确定删除歌单「${musicSheet.title}」吗?`,
29a3289929S猫头猫                                onOk: async () => {
30a3289929S猫头猫                                    await MusicSheet.removeSheet(id);
312a3194f5S猫头猫                                    Toast.success('已删除');
32a3289929S猫头猫                                    navigation.goBack();
33a3289929S猫头猫                                },
34a3289929S猫头猫                            });
35a3289929S猫头猫                        },
36a3289929S猫头猫                    },
37f970486eS猫头猫                    {
385589cdf3S猫头猫                        icon: 'pencil-square',
39f970486eS猫头猫                        title: '批量编辑',
40f970486eS猫头猫                        onPress() {
41f970486eS猫头猫                            navigation.navigate(ROUTE_PATH.MUSIC_LIST_EDITOR, {
42f970486eS猫头猫                                musicList: musicSheet.musicList,
43f970486eS猫头猫                                musicSheet: musicSheet,
44f970486eS猫头猫                            });
45f970486eS猫头猫                        },
46f970486eS猫头猫                    },
47e26be108S猫头猫                    {
485589cdf3S猫头猫                        icon: 'pencil-outline',
49e26be108S猫头猫                        title: '编辑歌单信息',
50e26be108S猫头猫                        onPress() {
51*da2a2959S猫头猫                            showPanel('EditMusicSheetInfo', {
52e26be108S猫头猫                                musicSheet: musicSheet,
53e26be108S猫头猫                            });
54e26be108S猫头猫                        },
55e26be108S猫头猫                    },
563499559fS猫头猫                    {
575589cdf3S猫头猫                        icon: 'sort-outline',
58740e3947S猫头猫                        title: '歌曲排序',
593499559fS猫头猫                        onPress() {
603499559fS猫头猫                            showDialog('RadioDialog', {
613499559fS猫头猫                                content: [
623499559fS猫头猫                                    {
63740e3947S猫头猫                                        value: SortType.Title,
64740e3947S猫头猫                                        label: '按歌曲名排序',
653499559fS猫头猫                                    },
663499559fS猫头猫                                    {
67740e3947S猫头猫                                        value: SortType.Artist,
68740e3947S猫头猫                                        label: '按作者名排序',
693499559fS猫头猫                                    },
703499559fS猫头猫                                    {
71740e3947S猫头猫                                        value: SortType.Album,
72740e3947S猫头猫                                        label: '按专辑名排序',
733499559fS猫头猫                                    },
743499559fS猫头猫                                    {
75740e3947S猫头猫                                        value: SortType.Newest,
76740e3947S猫头猫                                        label: '按收藏时间从新到旧排序',
773499559fS猫头猫                                    },
783499559fS猫头猫                                    {
79740e3947S猫头猫                                        value: SortType.Oldest,
80740e3947S猫头猫                                        label: '按收藏时间从旧到新排序',
81e43bbb40S猫头猫                                    },
823499559fS猫头猫                                ],
83740e3947S猫头猫                                defaultSelected:
84740e3947S猫头猫                                    MusicSheet.getSheetMeta(id, 'sort') ||
85740e3947S猫头猫                                    SortType.None,
86740e3947S猫头猫                                title: '歌曲排序',
873499559fS猫头猫                                async onOk(value) {
88740e3947S猫头猫                                    await MusicSheet.setSortType(
89740e3947S猫头猫                                        id,
90740e3947S猫头猫                                        value as SortType,
913499559fS猫头猫                                    );
92740e3947S猫头猫                                    toast.success('排序已更新');
933499559fS猫头猫                                },
943499559fS猫头猫                            });
953499559fS猫头猫                        },
963499559fS猫头猫                    },
974060c00aS猫头猫                ]}
987a8d024eS猫头猫                actions={[
997a8d024eS猫头猫                    {
1005589cdf3S猫头猫                        icon: 'magnifying-glass',
1017a8d024eS猫头猫                        onPress() {
1027a8d024eS猫头猫                            navigation.navigate(ROUTE_PATH.SEARCH_MUSIC_LIST, {
1037a8d024eS猫头猫                                musicList: musicSheet?.musicList,
1047ce5c26cS猫头猫                                musicSheet: musicSheet,
1057a8d024eS猫头猫                            });
1067a8d024eS猫头猫                        },
1077a8d024eS猫头猫                    },
1087a8d024eS猫头猫                ]}>
1097a8d024eS猫头猫                歌单
1107a8d024eS猫头猫            </AppBar>
1117a8d024eS猫头猫        </>
112bf6e62f2S猫头猫    );
113bf6e62f2S猫头猫}
114