From c950bd1c459351c17fe5cf01f6d841e3352e9967 Mon Sep 17 00:00:00 2001
From: Kwon DaeGeun <101159518+KwonDeaGeun@users.noreply.github.com>
Date: Thu, 26 Feb 2026 01:20:51 +0900
Subject: [PATCH] =?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=20(#180)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix: IBK 기업은행 점검 기간 중에는 서비스 이용을 차단
* style: lint check
---
src/pages/LoginPage.tsx | 169 ++++++++++++++--------
src/pages/Payment/Payment.Information.tsx | 2 +-
2 files changed, 113 insertions(+), 58 deletions(-)
diff --git a/src/pages/LoginPage.tsx b/src/pages/LoginPage.tsx
index 17a3f89..44b843e 100644
--- a/src/pages/LoginPage.tsx
+++ b/src/pages/LoginPage.tsx
@@ -1,5 +1,13 @@
import { ExternalLinkIcon } from "lucide-react";
+import { useEffect, useState } 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
- - 단국대학교 구글 계정으로 로그인해주세요 -
+ <> + + +
+ + 단국대학교 구글 계정으로 로그인해주세요 +
+