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 ; } return ( -
-
-
- Aegis Logo -

- Aegis 회원 가입 -

-

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

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

+ Aegis 회원 가입 +

+

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

+
+ {!isMaintenance && ( + + )} +
- - -
-
- { - Analytics.safeTrack("Gmail_Guide_Click", { - category: "Link", - method: "Guide", - }); - }} - > - 단국대 Gmail 생성 가이드 - - +
-
+ ); }; 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) {