xref: /MusicFree/src/pages/topListDetail/hooks/useTopListDetail.ts (revision 92b6c95a091918b40c827f237dd20dd8319bc16c)
1d384662fS猫头猫import PluginManager from '@/core/pluginManager';
2d384662fS猫头猫import {useEffect, useState} from 'react';
3d384662fS猫头猫
4d384662fS猫头猫export default function useTopListDetail(
5*92b6c95aS猫头猫    topListItem: IMusic.IMusicSheetItemBase | null,
6d384662fS猫头猫    pluginHash: string,
7d384662fS猫头猫) {
8d384662fS猫头猫    const [mergedTopListItem, setMergedTopListItem] =
9*92b6c95aS猫头猫        useState<ICommon.WithMusicList<IMusic.IMusicSheetItemBase> | null>(
10d384662fS猫头猫            topListItem,
11d384662fS猫头猫        );
12d384662fS猫头猫    useEffect(() => {
13d384662fS猫头猫        if (topListItem === null) {
14d384662fS猫头猫            return;
15d384662fS猫头猫        }
16d384662fS猫头猫        PluginManager.getByHash(pluginHash)
17d384662fS猫头猫            ?.methods?.getTopListDetail(topListItem)
18d384662fS猫头猫            ?.then(_ => {
19d384662fS猫头猫                if (_) {
20d384662fS猫头猫                    setMergedTopListItem(prev => ({
21d384662fS猫头猫                        ...(prev ?? {}),
22d384662fS猫头猫                        ...(_ ?? {}),
23d384662fS猫头猫                    }));
24d384662fS猫头猫                }
25d384662fS猫头猫            });
26d384662fS猫头猫    }, []);
27d384662fS猫头猫    return mergedTopListItem;
28d384662fS猫头猫}
29