mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-08-27 21:55:15 -05:00
draft cup to sidebar
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import React from "react"
|
||||
import React, { useContext } from "react"
|
||||
import { RouteComponentProps } from "@reach/router"
|
||||
import PageHeader from "../common/PageHeader"
|
||||
import { useQuery } from "@apollo/react-hooks"
|
||||
@@ -11,8 +11,11 @@ import Loading from "../common/Loading"
|
||||
import DraftLeaderboard from "./DraftLeaderboard"
|
||||
import { Helmet } from "react-helmet-async"
|
||||
import DraftTournamentCards from "./DraftTournamentCards"
|
||||
import { Box } from "@chakra-ui/core"
|
||||
import MyThemeContext from "../../themeContext"
|
||||
|
||||
const DraftCupPage: React.FC<RouteComponentProps> = () => {
|
||||
const { grayWithShade } = useContext(MyThemeContext)
|
||||
const { data, error, loading } = useQuery<PlusDraftCupsData>(PLUS_DRAFT_CUPS)
|
||||
|
||||
if (error) return <Error errorMessage={error.message} />
|
||||
@@ -24,6 +27,11 @@ const DraftCupPage: React.FC<RouteComponentProps> = () => {
|
||||
<title>Draft Cup Home | sendou.ink</title>
|
||||
</Helmet>
|
||||
<PageHeader title="Plus Server Draft Cups" />
|
||||
<Box color={grayWithShade}>
|
||||
Draft Cup is a tournament series open for +1 and +2 members. On this
|
||||
page you can browse the leaderboards and detailed match reports.
|
||||
</Box>
|
||||
|
||||
<DraftTournamentCards tournaments={data!.plusDraftCups.tournaments} />
|
||||
<DraftLeaderboard leaderboards={data!.plusDraftCups.leaderboards} />
|
||||
</>
|
||||
|
||||
@@ -67,7 +67,10 @@ const DraftLeaderboard: React.FC<DraftLeaderboardProps> = ({
|
||||
>
|
||||
{players.map((player, i, array) => {
|
||||
print = false
|
||||
if (i > 0 && player.score !== array[i - 1].score) {
|
||||
if (i === 0) {
|
||||
placement = 1
|
||||
print = true
|
||||
} else if (i > 0 && player.score !== array[i - 1].score) {
|
||||
placement = i + 1
|
||||
print = true
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import {
|
||||
FaUserAlt,
|
||||
FaDoorOpen,
|
||||
FaListOl,
|
||||
FaPeopleCarry,
|
||||
} from "react-icons/fa"
|
||||
import Logo from "./Logo"
|
||||
import NavItem from "./NavItem"
|
||||
@@ -148,6 +149,7 @@ export const SideNavContent: React.FC<SideNavProps> = ({ showLogo = true }) => {
|
||||
icon={FaTrophy}
|
||||
title="Tournament Results"
|
||||
/>
|
||||
<NavItem to="draft" icon={FaPeopleCarry} title="Draft Cup" />
|
||||
<NavItem to="xsearch" icon={FaListOl} title="Top 500 Browser" />
|
||||
{/*<NavItem to="play" icon="itz" title="In The Zone" />*/}
|
||||
{data?.user?.plus?.membership_status && (
|
||||
|
||||
@@ -6,6 +6,7 @@ const {
|
||||
const DetailedTournament = require("../mongoose-models/detailedtournament")
|
||||
const DetailedMatch = require("../mongoose-models/detailedmatch")
|
||||
const Leaderboard = require("../mongoose-models/leaderboard")
|
||||
const User = require("../mongoose-models/user")
|
||||
const PlayerStat = require("../mongoose-models/playerstat")
|
||||
const {
|
||||
validateDetailedTournamentInput,
|
||||
@@ -364,8 +365,20 @@ const resolvers = {
|
||||
(a.first * 4 + a.second * 2 + a.third)
|
||||
)
|
||||
|
||||
const users = await User.find({})
|
||||
|
||||
const filteredPlayers = players.filter(player => {
|
||||
const found = users.find(user => user.discord_id === player.discord_id)
|
||||
|
||||
return !!found
|
||||
})
|
||||
|
||||
const type = `DRAFT${args.plus_server}`
|
||||
await Leaderboard.updateOne({ type }, { type, players }, { upsert: true })
|
||||
await Leaderboard.updateOne(
|
||||
{ type },
|
||||
{ type, players: filteredPlayers },
|
||||
{ upsert: true }
|
||||
)
|
||||
|
||||
return true
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user