From 008de48907240d7ae987c8eea3e0ff7238267587 Mon Sep 17 00:00:00 2001 From: LMS10 Date: Tue, 24 Dec 2024 18:29:53 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=E2=9C=A8=20feat=20:=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=ED=86=A0=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=95=8C=EB=A6=BC=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ToastHome/index.jsx | 13 +++++++++++++ src/pages/Home/index.jsx | 14 +++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/components/ToastHome/index.jsx diff --git a/src/components/ToastHome/index.jsx b/src/components/ToastHome/index.jsx new file mode 100644 index 0000000..9c03afd --- /dev/null +++ b/src/components/ToastHome/index.jsx @@ -0,0 +1,13 @@ +import { PropTypes } from 'prop-types'; + +const ToastHome = ({ errorMessage }) => { + ToastHome.propTypes = { + errorMessage: PropTypes.string.isRequired, + }; + return ( +
+ {errorMessage} +
+ ); +}; +export default ToastHome; diff --git a/src/pages/Home/index.jsx b/src/pages/Home/index.jsx index a75a43c..b7af680 100644 --- a/src/pages/Home/index.jsx +++ b/src/pages/Home/index.jsx @@ -1,6 +1,7 @@ import { useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { getSubjectById, postSubject } from 'api/subjects'; +import ToastHome from 'components/ToastHome'; import imgLogo from 'assets/images/img_Logo.svg'; import imgBanner from 'assets/images/img_Banner.svg'; import icArrowDashRight from 'assets/images/icons/ic_Arrow-dash-right.svg'; @@ -9,13 +10,22 @@ import { ReactComponent as IcPerson } from 'assets/images/icons/ic_Person.svg'; const Home = () => { const [name, setName] = useState(''); const [errorMessage, setErrorMessage] = useState(''); + const [toastHome, setToastHome] = useState(false); const navigate = useNavigate(); + const toastTimer = () => { + setToastHome(true); + setTimeout(() => { + setToastHome(false); + }, 3000); + }; + const handleSubmit = async (e) => { e.preventDefault(); if (!name.trim()) { setErrorMessage('이름을 입력해주세요.'); + toastTimer(); return; } @@ -28,6 +38,7 @@ const Home = () => { navigate(`/post/${storedId}/answer`); } else { setErrorMessage('이전에 등록했던 이름을 입력해 주세요.'); + toastTimer(); } } else { const newSubject = await postSubject({ name: name.trim() }); @@ -64,7 +75,6 @@ const Home = () => { value={name} onChange={(e) => setName(e.target.value)} /> - {errorMessage &&
{errorMessage}
} - 오픈마인드 배너 + {toastHome && } From ea9b2242596a2ce8ae3385452f2abd6bdcf88bdc Mon Sep 17 00:00:00 2001 From: LMS10 Date: Tue, 24 Dec 2024 20:49:46 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor=20:=20List=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=9A=B0=EC=B8=A1=20=EC=83=81?= =?UTF-8?q?=EB=8B=A8=20=EB=B2=84=ED=8A=BC=EC=9D=B4=EB=9E=91=20CSS=20?= =?UTF-8?q?=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Home/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Home/index.jsx b/src/pages/Home/index.jsx index 2062f29..e47dbd2 100644 --- a/src/pages/Home/index.jsx +++ b/src/pages/Home/index.jsx @@ -56,7 +56,7 @@ const Home = () => {
질문하러 가기