xref: /MusicFree/src/pages/sheetDetail/components/navBar.tsx (revision 740e39476f71e0e17304d812ac0a4c4cdc183ed1)
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';
5*740e3947S猫头猫import toast from '@/utils/toast';
675d76114S猫头猫import {showDialog} from '@/components/dialogs/useDialog';
77a8d024eS猫头猫import AppBar from '@/components/base/appBar';
8*740e3947S猫头猫import MusicSheet from '@/core/musicSheet';
9*740e3947S猫头猫import {SortType} from '@/constants/commonConst.ts';
10bf6e62f2S猫头猫
114060c00aS猫头猫export default function () {
1203f1f70cS猫头猫    const navigation = useNavigation<any>();
13ceb900cdS猫头猫    const {id = 'favorite'} = useParams<'local-sheet-detail'>();
14*740e3947S猫头猫    const musicSheet = MusicSheet.useSheetItem(id);
15bf6e62f2S猫头猫
16bf6e62f2S猫头猫    return (
177a8d024eS猫头猫        <>
187a8d024eS猫头猫            <AppBar
197a8d024eS猫头猫                menu={[
20a3289929S猫头猫                    {
215589cdf3S猫头猫                        icon: 'trash-outline',
22a3289929S猫头猫                        title: '删除歌单',
23a3289929S猫头猫                        show: id !== 'favorite',
24a3289929S猫头猫                        onPress() {
25a3289929S猫头猫                            showDialog('SimpleDialog', {
26a3289929S猫头猫                                title: '删除歌单',
27efc141fcS猫头猫                                content: `确定删除歌单「${musicSheet.title}」吗?`,
28a3289929S猫头猫                                onOk: async () => {
29a3289929S猫头猫                                    await MusicSheet.removeSheet(id);
302a3194f5S猫头猫                                    Toast.success('已删除');
31a3289929S猫头猫                                    navigation.goBack();
32a3289929S猫头猫                                },
33a3289929S猫头猫                            });
34a3289929S猫头猫                        },
35a3289929S猫头猫                    },
36f970486eS猫头猫                    {
375589cdf3S猫头猫                        icon: 'pencil-square',
38f970486eS猫头猫                        title: '批量编辑',
39f970486eS猫头猫                        onPress() {
40f970486eS猫头猫                            navigation.navigate(ROUTE_PATH.MUSIC_LIST_EDITOR, {
41f970486eS猫头猫                                musicList: musicSheet.musicList,
42f970486eS猫头猫                                musicSheet: musicSheet,
43f970486eS猫头猫                            });
44f970486eS猫头猫                        },
45f970486eS猫头猫                    },
46e26be108S猫头猫                    {
475589cdf3S猫头猫                        icon: 'pencil-outline',
48e26be108S猫头猫                        title: '编辑歌单信息',
49e26be108S猫头猫                        onPress() {
50e26be108S猫头猫                            showDialog('EditSheetDetailDialog', {
51e26be108S猫头猫                                musicSheet: musicSheet,
52e26be108S猫头猫                            });
53e26be108S猫头猫                        },
54e26be108S猫头猫                    },
553499559fS猫头猫                    {
565589cdf3S猫头猫                        icon: 'sort-outline',
57*740e3947S猫头猫                        title: '歌曲排序',
583499559fS猫头猫                        onPress() {
593499559fS猫头猫                            showDialog('RadioDialog', {
603499559fS猫头猫                                content: [
613499559fS猫头猫                                    {
62*740e3947S猫头猫                                        value: SortType.Title,
63*740e3947S猫头猫                                        label: '按歌曲名排序',
643499559fS猫头猫                                    },
653499559fS猫头猫                                    {
66*740e3947S猫头猫                                        value: SortType.Artist,
67*740e3947S猫头猫                                        label: '按作者名排序',
683499559fS猫头猫                                    },
693499559fS猫头猫                                    {
70*740e3947S猫头猫                                        value: SortType.Album,
71*740e3947S猫头猫                                        label: '按专辑名排序',
723499559fS猫头猫                                    },
733499559fS猫头猫                                    {
74*740e3947S猫头猫                                        value: SortType.Newest,
75*740e3947S猫头猫                                        label: '按收藏时间从新到旧排序',
763499559fS猫头猫                                    },
773499559fS猫头猫                                    {
78*740e3947S猫头猫                                        value: SortType.Oldest,
79*740e3947S猫头猫                                        label: '按收藏时间从旧到新排序',
80e43bbb40S猫头猫                                    },
813499559fS猫头猫                                ],
82*740e3947S猫头猫                                defaultSelected:
83*740e3947S猫头猫                                    MusicSheet.getSheetMeta(id, 'sort') ||
84*740e3947S猫头猫                                    SortType.None,
85*740e3947S猫头猫                                title: '歌曲排序',
863499559fS猫头猫                                async onOk(value) {
87*740e3947S猫头猫                                    await MusicSheet.setSortType(
88*740e3947S猫头猫                                        id,
89*740e3947S猫头猫                                        value as SortType,
903499559fS猫头猫                                    );
91*740e3947S猫头猫                                    toast.success('排序已更新');
923499559fS猫头猫                                },
933499559fS猫头猫                            });
943499559fS猫头猫                        },
953499559fS猫头猫                    },
964060c00aS猫头猫                ]}
977a8d024eS猫头猫                actions={[
987a8d024eS猫头猫                    {
995589cdf3S猫头猫                        icon: 'magnifying-glass',
1007a8d024eS猫头猫                        onPress() {
1017a8d024eS猫头猫                            navigation.navigate(ROUTE_PATH.SEARCH_MUSIC_LIST, {
1027a8d024eS猫头猫                                musicList: musicSheet?.musicList,
1037ce5c26cS猫头猫                                musicSheet: musicSheet,
1047a8d024eS猫头猫                            });
1057a8d024eS猫头猫                        },
1067a8d024eS猫头猫                    },
1077a8d024eS猫头猫                ]}>
1087a8d024eS猫头猫                歌单
1097a8d024eS猫头猫            </AppBar>
1107a8d024eS猫头猫        </>
111bf6e62f2S猫头猫    );
112bf6e62f2S猫头猫}
113