draft cup to sidebar

This commit is contained in:
Sendou
2020-04-03 01:04:02 +03:00
parent 232ad96686
commit 85becef312
4 changed files with 29 additions and 3 deletions

View File

@@ -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} />
</>

View File

@@ -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
}

View File

@@ -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 && (

View File

@@ -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
},