diff --git a/app/features/leaderboards/routes/leaderboards.tsx b/app/features/leaderboards/routes/leaderboards.tsx index a6326025c..c9253fcf4 100644 --- a/app/features/leaderboards/routes/leaderboards.tsx +++ b/app/features/leaderboards/routes/leaderboards.tsx @@ -452,42 +452,59 @@ function TeamTable({ }: { entries: NonNullable["teamLeaderboard"]>; }) { + const { t } = useTranslation("common"); + const data = useLoaderData(); + const isCurrentSeason = data.season === currentSeason(new Date())?.nth; + const showQualificationDividers = isCurrentSeason && entries.length > 20; + return (
- {entries.map((entry) => { + {entries.map((entry, i) => { return ( -
-
-
- {entry.placementRank} + +
+
+
+ {entry.placementRank} +
+ {entry.team?.avatarUrl ? ( + + + + ) : null} +
+ {entry.members.map((member, i) => { + return ( + + {member.discordName} + {i !== entry.members.length - 1 ? ", " : null} + + ); + })} +
+
{entry.power}
- {entry.team?.avatarUrl ? ( - - - - ) : null} -
- {entry.members.map((member, i) => { - return ( - - {member.discordName} - {i !== entry.members.length - 1 ? ", " : null} - - ); - })} -
-
{entry.power}
-
+ {i === 3 && showQualificationDividers ? ( +
+ {t("common:leaderboard.qualification.withBye")} +
+ ) : null} + {i === 11 && showQualificationDividers ? ( +
+ {t("common:leaderboard.qualification")} +
+ ) : null} + ); })}
diff --git a/app/features/sendouq/QRepository.server.ts b/app/features/sendouq/QRepository.server.ts index 0cf978d70..eb816b13e 100644 --- a/app/features/sendouq/QRepository.server.ts +++ b/app/features/sendouq/QRepository.server.ts @@ -111,7 +111,7 @@ export async function findLookingGroups({ eb( "Group.latestActionAt", ">", - sql`(unixepoch() - ${SECONDS_TILL_STALE})`, + sql`(unixepoch() - ${SECONDS_TILL_STALE})`, ), eb("Group.id", "=", ownGroupId), ]), diff --git a/app/features/top-search/top-search.css b/app/features/top-search/top-search.css index 99a0bc6a6..913502746 100644 --- a/app/features/top-search/top-search.css +++ b/app/features/top-search/top-search.css @@ -52,6 +52,13 @@ a.placements__table__row:hover { border-radius: var(--rounded); } +.placements__table__row__qualification { + font-size: var(--fonts-xs); + font-weight: var(--semi-bold); + justify-content: center; + background-color: var(--bg-lightest); +} + .placements__table__weapon { background-color: var(--bg-darker); border-radius: 100%; diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 217ddf34a..1d87c533a 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -201,6 +201,8 @@ "leaderboard.noPlayers": "No players on the leaderboard yet", "leaderboard.noTeams": "No teams on the leaderboard yet", "leaderboard.updateInfo": "Leaderboard is updated once every 30 minutes", + "leaderboard.qualification": "Qualification for Season Finale", + "leaderboard.qualification.withBye": "Qualification for Season Finale with a BYE", "chat.connected": "Connected", "chat.disconnected": "Disconnected",