xref: /MusicFree/src/pages/albumDetail/hooks/useAlbumMusicList.ts (revision 2d0ec5c16a4ba4edc62f6ae92da18cdc33751ff4)
1*2d0ec5c1S猫头猫import {pluginManager} from '@/common/pluginManager';
2*2d0ec5c1S猫头猫import {makeTag} from '@/utils/makeTag';
3*2d0ec5c1S猫头猫import {useEffect, useState} from 'react';
4bf6e62f2S猫头猫
5bf6e62f2S猫头猫export default function useAlbumMusicList(albumItem: IAlbum.IAlbumItem | null) {
6bf6e62f2S猫头猫  const [musicList, setMusicList] = useState<IMusic.IMusicItem[] | null>(null);
7bf6e62f2S猫头猫
8bf6e62f2S猫头猫  useEffect(() => {
9bf6e62f2S猫头猫    if (albumItem === null) {
10bf6e62f2S猫头猫      return;
11bf6e62f2S猫头猫    }
12bf6e62f2S猫头猫    const plugin = pluginManager.getPlugin(albumItem.platform);
130b940038S猫头猫    // todo: try
14*2d0ec5c1S猫头猫    plugin?.instance
15*2d0ec5c1S猫头猫      ?.getAlbumInfo?.(albumItem)
16*2d0ec5c1S猫头猫      ?.then(_ => {
17*2d0ec5c1S猫头猫        setMusicList(makeTag(_?.musicList ?? [], albumItem.platform));
18*2d0ec5c1S猫头猫      })
19*2d0ec5c1S猫头猫      ?.catch();
20bf6e62f2S猫头猫  }, []);
21bf6e62f2S猫头猫  return musicList;
22bf6e62f2S猫头猫}
23