aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'frontend')
-rw-r--r--frontend/app/routes/dashboard.tsx34
1 files changed, 19 insertions, 15 deletions
diff --git a/frontend/app/routes/dashboard.tsx b/frontend/app/routes/dashboard.tsx
index 23ef2e4..d0fea47 100644
--- a/frontend/app/routes/dashboard.tsx
+++ b/frontend/app/routes/dashboard.tsx
@@ -24,6 +24,8 @@ export async function loader({ request }: LoaderFunctionArgs) {
export default function Dashboard() {
const { user, games } = useLoaderData<typeof loader>()!;
+ const isOnlineQualifyingOpen = new Date() < new Date(2025, 2, 21, 16, 30);
+
return (
<div className="p-6 bg-gray-100 min-h-screen flex flex-col items-center gap-4">
{user.icon_path && (
@@ -34,21 +36,23 @@ export default function Dashboard() {
/>
)}
<h1 className="text-3xl font-bold text-gray-800">{user.display_name}</h1>
- <BorderedContainerWithCaption caption="オンライン予選開催中 (3/21 決勝当日まで)">
- <p className="text-gray-900 max-w-prose">
- 現在オンライン予選を開催中です。
- 予選問題2問を両方解いたプレイヤーのうち合計スコアが最も小さい2名が、3/21
- (金) の PHPerKaigi day0 に実施される決勝戦への進出枠を獲得します。
- 当日は、会場の Track A まで是非お越しください!
- </p>
- <p className="text-gray-600 max-w-prose">
- ※ 当日会場 Track A
- にいらっしゃらない場合、次点のスコアを獲得されている方が自動的に決勝進出となります。
- </p>
- <p className="text-gray-600 max-w-prose">
- ※ 決勝に参加する予定のない方でも、プレイしていただくことは可能です。
- </p>
- </BorderedContainerWithCaption>
+ {isOnlineQualifyingOpen && (
+ <BorderedContainerWithCaption caption="オンライン予選開催中 (3/21 決勝当日まで)">
+ <p className="text-gray-900 max-w-prose">
+ 現在オンライン予選を開催中です。
+ 予選問題2問を両方解いたプレイヤーのうち合計スコアが最も小さい2名が、3/21
+ (金) の PHPerKaigi day0 に実施される決勝戦への進出枠を獲得します。
+ 当日は、会場の Track A まで是非お越しください!
+ </p>
+ <p className="text-gray-600 max-w-prose">
+ ※ 当日会場 Track A
+ にいらっしゃらない場合、次点のスコアを獲得されている方が自動的に決勝進出となります。
+ </p>
+ <p className="text-gray-600 max-w-prose">
+ ※ 決勝に参加する予定のない方でも、プレイしていただくことは可能です。
+ </p>
+ </BorderedContainerWithCaption>
+ )}
<BorderedContainerWithCaption caption="試合一覧">
<div className="px-4">
{games.length === 0 ? (