diff --git a/web/plugins/com.msgbyte.genshin/src/GenshinPanel/index.tsx b/web/plugins/com.msgbyte.genshin/src/GenshinPanel/index.tsx index 97c7153c..4e54016b 100644 --- a/web/plugins/com.msgbyte.genshin/src/GenshinPanel/index.tsx +++ b/web/plugins/com.msgbyte.genshin/src/GenshinPanel/index.tsx @@ -1,14 +1,27 @@ import React from 'react'; import { Translate } from '../translate'; -import { util } from 'genshin-gacha-kit'; +import { OfficialGachaIndex, OfficialGachaType, util } from 'genshin-gacha-kit'; import { useAsync } from '@capital/common'; import { PillTabs, PillTabPane } from '@capital/component'; -import './index.less'; import { GachaPool } from './GachaPool'; +import _groupBy from 'lodash/groupBy'; +import './index.less'; const GenshinPanel: React.FC = React.memo(() => { - const { value: gachaList } = useAsync(() => { - return util.getGachaIndex(); + const { value: gachaList } = useAsync(async () => { + const gacha = await util.getGachaIndex(); + const dict = _groupBy(gacha, 'gacha_type') as unknown as Record< + keyof OfficialGachaType, + OfficialGachaIndex[] + >; + + // 顺序: 角色 -> 武器 -> 常驻 -> 新手 + return [ + ...(dict['301'] ?? []), + ...(dict['302'] ?? []), + ...(dict['200'] ?? []), + ...(dict['100'] ?? []), + ]; }, []); return (