mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-04-26 17:27:09 -05:00
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import type { LoaderFunctionArgs } from "react-router";
|
|
import { getUser } from "~/features/auth/core/user.server";
|
|
import * as SQGroupRepository from "~/features/sendouq/SQGroupRepository.server";
|
|
import * as TeamRepository from "~/features/team/TeamRepository.server";
|
|
import { findMapPoolByTeamId } from "~/features/tournament-bracket/queries/findMapPoolByTeamId.server";
|
|
import { parseParams } from "~/utils/remix.server";
|
|
import { idObject } from "~/utils/zod";
|
|
import { findOwnTournamentTeam } from "../queries/findOwnTournamentTeam.server";
|
|
|
|
export const loader = async ({ params }: LoaderFunctionArgs) => {
|
|
const user = getUser();
|
|
if (!user) return null;
|
|
|
|
const { id: tournamentId } = parseParams({
|
|
params,
|
|
schema: idObject,
|
|
});
|
|
|
|
const ownTournamentTeam = findOwnTournamentTeam({
|
|
tournamentId,
|
|
userId: user.id,
|
|
});
|
|
if (!ownTournamentTeam)
|
|
return {
|
|
mapPool: null,
|
|
trusterPlayers: null,
|
|
teams: await TeamRepository.findAllMemberOfByUserId(user.id),
|
|
};
|
|
|
|
return {
|
|
mapPool: findMapPoolByTeamId(ownTournamentTeam.id),
|
|
trusterPlayers: await SQGroupRepository.usersThatTrusted(user.id),
|
|
teams: await TeamRepository.findAllMemberOfByUserId(user.id),
|
|
};
|
|
};
|
|
|
|
export type TournamentRegisterPageLoader = typeof loader;
|