update default sneckMode
This commit is contained in:
parent
6b4c98b380
commit
053bfc3c2b
@ -4,6 +4,7 @@ import { useRequest } from "ahooks";
|
|||||||
import { Spin, Tabs } from "antd";
|
import { Spin, Tabs } from "antd";
|
||||||
import { PlayerList } from "./PlayerList";
|
import { PlayerList } from "./PlayerList";
|
||||||
import { GroupingPrediction } from "./GroupingPrediction";
|
import { GroupingPrediction } from "./GroupingPrediction";
|
||||||
|
import { useMemo } from "react";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
game?: IEventInfo;
|
game?: IEventInfo;
|
||||||
@ -15,6 +16,9 @@ export const GamePanel: React.FC<Props> = props => {
|
|||||||
const info: MatchInfo = await (await fetch(`/api/match/${props.game.matchId}`)).json();
|
const info: MatchInfo = await (await fetch(`/api/match/${props.game.matchId}`)).json();
|
||||||
return info;
|
return info;
|
||||||
}, { refreshDeps: [props] });
|
}, { refreshDeps: [props] });
|
||||||
|
const sneckMode = useMemo(() => {
|
||||||
|
return !!props.game?.title?.includes('争霸赛');
|
||||||
|
}, [props.game]);
|
||||||
return (
|
return (
|
||||||
<Spin spinning={fetchPlayers.loading}>
|
<Spin spinning={fetchPlayers.loading}>
|
||||||
<Tabs
|
<Tabs
|
||||||
@ -22,7 +26,7 @@ export const GamePanel: React.FC<Props> = props => {
|
|||||||
{
|
{
|
||||||
key: 'groups',
|
key: 'groups',
|
||||||
label: '分组预测',
|
label: '分组预测',
|
||||||
children: <GroupingPrediction players={fetchPlayers.data?.players} />
|
children: <GroupingPrediction sneckMode={sneckMode} players={fetchPlayers.data?.players} />
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'players',
|
key: 'players',
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import { sneckGroup } from "../utils";
|
|||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
players?: Player[];
|
players?: Player[];
|
||||||
|
sneckMode: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
type CustomPlayer = (Player & { index: number; id: string; });
|
type CustomPlayer = (Player & { index: number; id: string; });
|
||||||
@ -16,7 +17,7 @@ export const GroupingPrediction: React.FC<Props> = props => {
|
|||||||
return props.players?.slice(0, maxPlayerSize)?.map((e, i) => ({ ...e, index: i + 1, id: `${i}-${e.name}-${e.score}` })) ?? [];
|
return props.players?.slice(0, maxPlayerSize)?.map((e, i) => ({ ...e, index: i + 1, id: `${i}-${e.name}-${e.score}` })) ?? [];
|
||||||
}, [props.players, maxPlayerSize]);
|
}, [props.players, maxPlayerSize]);
|
||||||
const [groupLen, setGroupLen] = useState(6);
|
const [groupLen, setGroupLen] = useState(6);
|
||||||
const [sneckMode, setSneckMode] = useState(false);
|
const [sneckMode, setSneckMode] = useState(props.sneckMode);
|
||||||
const chunkSize = useMemo(() => Math.floor((players.length ?? 0) / groupLen) || 1, [players, groupLen]);
|
const chunkSize = useMemo(() => Math.floor((players.length ?? 0) / groupLen) || 1, [players, groupLen]);
|
||||||
const grouped = useMemo(() => {
|
const grouped = useMemo(() => {
|
||||||
return chunk(players, chunkSize);
|
return chunk(players, chunkSize);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user