From c196e72e9a3c68986876268f705e4333fedc9339 Mon Sep 17 00:00:00 2001 From: lydiacho <81505421+lydiacho@users.noreply.github.com> Date: Fri, 8 Mar 2024 17:17:16 +0900 Subject: [PATCH] =?UTF-8?q?[SP0]=20=EB=AA=A8=EC=A7=91=20=EB=A7=88=EA=B0=90?= =?UTF-8?q?=20=EB=B7=B0=20=EB=B0=98=EC=98=81=20=20(#375)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: useCheckTime 종료시간 추가, MainPage, RecruitPage 배너 적용 * feat: 메인페이지 RecruitButton 라이팅 수정 * fix: 모집 마감 시간 픽스 --- .vscode/settings.json | 6 +++--- src/hooks/useCheckTime.ts | 9 ++++++--- src/views/MainPage/MainPage.tsx | 4 ++-- src/views/MainPage/components/Banner/index.tsx | 5 ++++- src/views/MainPage/hooks/useCheckTime.ts | 12 ------------ src/views/RecruitPage/RecruitPage.tsx | 4 ++-- 6 files changed, 17 insertions(+), 23 deletions(-) delete mode 100644 src/views/MainPage/hooks/useCheckTime.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index e309aa6e..d7e67d0b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,9 +1,9 @@ { "editor.tabSize": 2, "editor.codeActionsOnSave": { - "source.fixAll.eslint" : true, - "source.fixAll.stylelint" : true, - }, + "source.fixAll.eslint": "explicit", + "source.fixAll.stylelint": "explicit" + }, "editor.formatOnSave" : true, } diff --git a/src/hooks/useCheckTime.ts b/src/hooks/useCheckTime.ts index 4f33e4cc..152e4b1b 100644 --- a/src/hooks/useCheckTime.ts +++ b/src/hooks/useCheckTime.ts @@ -2,11 +2,14 @@ import { useEffect, useState } from 'react'; export default function useCheckTime() { const START_DATE = new Date('2024-03-03 00:00:00'); - const [timeDiff, setTimeDiff] = useState(START_DATE.getTime() - Date.now()); + const END_DATE = new Date('2024-03-08 18:00:00'); + const [startDiff, setStartDiff] = useState(START_DATE.getTime() - Date.now()); + const [endDiff, setEndDiff] = useState(Date.now() - END_DATE.getTime()); useEffect(()=>{ - setTimeDiff(START_DATE.getTime() - Date.now()); + setStartDiff(START_DATE.getTime() - Date.now()); + setEndDiff(Date.now() - END_DATE.getTime()); }, []); - return timeDiff<=0 ; + return startDiff<=0 && endDiff<=0 ; } diff --git a/src/views/MainPage/MainPage.tsx b/src/views/MainPage/MainPage.tsx index b14339aa..26244846 100644 --- a/src/views/MainPage/MainPage.tsx +++ b/src/views/MainPage/MainPage.tsx @@ -9,12 +9,12 @@ import usePost from './hooks/usePost'; import useCheckTime from '../../hooks/useCheckTime'; function MainPage() { - const isStarted = useCheckTime(); // 모집 시작 여부 + const isValid = useCheckTime(); // 모집 시작 여부 usePost(); // 방문자 증가 return ( - {isStarted && } + {isValid && } diff --git a/src/views/MainPage/components/Banner/index.tsx b/src/views/MainPage/components/Banner/index.tsx index cd11cf9a..fbf808f2 100644 --- a/src/views/MainPage/components/Banner/index.tsx +++ b/src/views/MainPage/components/Banner/index.tsx @@ -1,8 +1,11 @@ import imgMainPageBanner from '@src/assets/images/img_mainBanner.png'; import RecruitButton from './RecruitButton'; import * as S from './style'; +import useCheckTime from '@src/hooks/useCheckTime'; export default function Banner() { + const isValid = useCheckTime(); // 모집 여부 + const onScrollMoveDown = () => { const element = document.getElementById('nextContainer'); if (element) element.scrollIntoView({ behavior: 'smooth', block: 'start' }); @@ -15,7 +18,7 @@ export default function Banner() { 함께라서 외칠 수 있는 열정 오직 이곳 SOPT에서만. - 34기 YB 지원하기 > + {isValid ? '34기 YB 지원하기 ' : '모집 알림 신청하기 '}> diff --git a/src/views/MainPage/hooks/useCheckTime.ts b/src/views/MainPage/hooks/useCheckTime.ts deleted file mode 100644 index 04ceb7b2..00000000 --- a/src/views/MainPage/hooks/useCheckTime.ts +++ /dev/null @@ -1,12 +0,0 @@ -import useInterval from '@src/hooks/useInterval'; -import { useState } from 'react'; - -export default function useCheckTime(targetDate : Date) { - const [timeDiff, setTimeDiff] = useState(targetDate.getTime() - Date.now()); - - useInterval(() => { - setTimeDiff(targetDate.getTime() - Date.now()); - }, 1000); - - return timeDiff<=0 ; -} diff --git a/src/views/RecruitPage/RecruitPage.tsx b/src/views/RecruitPage/RecruitPage.tsx index 6ef9a504..751e699b 100644 --- a/src/views/RecruitPage/RecruitPage.tsx +++ b/src/views/RecruitPage/RecruitPage.tsx @@ -14,12 +14,12 @@ const ActivityReview = lazy(() => import('./components/ActivityReview')); const BottomLogo = lazy(() => import('./components/BottomLogo')); function Recruit() { - const isStarted = useCheckTime(); + const isValid = useCheckTime(); return ( - {isStarted ? : } + {isValid ? : }