From 57960c064a81ea87229bc38147d98f5d77fd4050 Mon Sep 17 00:00:00 2001 From: Kwon DaeGeun Date: Thu, 26 Feb 2026 01:07:13 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20IBK=20=EA=B8=B0=EC=97=85=EC=9D=80?= =?UTF-8?q?=ED=96=89=20=EC=A0=90=EA=B2=80=20=EA=B8=B0=EA=B0=84=20=EC=A4=91?= =?UTF-8?q?=EC=97=90=EB=8A=94=20=EC=84=9C=EB=B9=84=EC=8A=A4=20=EC=9D=B4?= =?UTF-8?q?=EC=9A=A9=EC=9D=84=20=EC=B0=A8=EB=8B=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/LoginPage.tsx | 169 ++++++++++++++++++++++++++-------------- 1 file changed, 112 insertions(+), 57 deletions(-) diff --git a/src/pages/LoginPage.tsx b/src/pages/LoginPage.tsx index 17a3f89..8ac0c65 100644 --- a/src/pages/LoginPage.tsx +++ b/src/pages/LoginPage.tsx @@ -1,5 +1,13 @@ import { ExternalLinkIcon } from "lucide-react"; +import { useState, useEffect } from "react"; import { Button } from "@/components/ui/button"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; import { useExternalBrowser } from "@/hooks/useExternalBrowser"; import { Analytics } from "@/service/analytics"; import BrowserRedirectPage from "./BrowserRedirectPage"; @@ -8,78 +16,125 @@ const GOOGLE_LOGIN_URL = `${import.meta.env.VITE_API_URL}/oauth2/authorization/g const AEGIS_HOMEPAGE_URL = "https://dkuaegis.org/"; const GMAIL_GUIDE_URL = "https://sites.google.com/dankook.ac.kr/help"; +// IBK 기업은행 점검 시간 체크 함수 +const isMaintenanceTime = (): boolean => { + const now = new Date(); + const month = now.getMonth() + 1; // 0-based이므로 +1 + const date = now.getDate(); + const hours = now.getHours(); + + // 3월 1일 0시~12시 (0시부터 11시 59분까지) + return month === 3 && date === 1 && hours >= 0 && hours < 12; +}; + const LoginPage = () => { const { isKakaoInApp } = useExternalBrowser(); + const [showMaintenanceModal, setShowMaintenanceModal] = useState(false); + const [isMaintenance, setIsMaintenance] = useState(false); + + useEffect(() => { + const maintenance = isMaintenanceTime(); + setIsMaintenance(maintenance); + if (maintenance) { + setShowMaintenanceModal(true); + } + }, []); if (isKakaoInApp) { return ; } return ( -
-
-
- Aegis Logo -

- Aegis 회원 가입 -

-

- 단국대학교 구글 계정으로 로그인해주세요 -

+ <> + + + + 시스템 점검 안내 + + IBK 기업은행 시스템 점검으로 인해 +
+ 3월 1일 0시 ~ 12시 + 까지 +
+ 회원 가입이 불가능합니다. +
+
+ 점검 종료 후 이용해주시기 바랍니다. +
+
+
+
+ +
+
+
+ Aegis Logo +

+ Aegis 회원 가입 +

+

+ 단국대학교 구글 계정으로 로그인해주세요 +

+
+ {!isMaintenance && ( + + )} +
- - -
-
-
+ ); }; From 9c502c392f27fbcdef59ce0d54dfeec84f1b53e4 Mon Sep 17 00:00:00 2001 From: Kwon DaeGeun Date: Sun, 1 Mar 2026 01:08:44 +0900 Subject: [PATCH 2/2] style: lint check --- src/pages/LoginPage.tsx | 2 +- src/pages/Payment/Payment.Information.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/LoginPage.tsx b/src/pages/LoginPage.tsx index 8ac0c65..44b843e 100644 --- a/src/pages/LoginPage.tsx +++ b/src/pages/LoginPage.tsx @@ -1,5 +1,5 @@ import { ExternalLinkIcon } from "lucide-react"; -import { useState, useEffect } from "react"; +import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { Dialog, diff --git a/src/pages/Payment/Payment.Information.tsx b/src/pages/Payment/Payment.Information.tsx index 4e3107c..bba22b0 100644 --- a/src/pages/Payment/Payment.Information.tsx +++ b/src/pages/Payment/Payment.Information.tsx @@ -54,7 +54,7 @@ const Information: React.FC = () => { const handleCopy = async () => { try { await navigator.clipboard.writeText( - import.meta.env.VITE_ADMIN_ACCOUNT_NUMBER, + import.meta.env.VITE_ADMIN_ACCOUNT_NUMBER ); toast.success("복사되었습니다."); } catch (error) {