diff --git a/src/assets/images/icons/ic_Arrow-dash-right.svg b/src/assets/images/icons/ic_Arrow-dash-right.svg index e352a87..dcc3351 100644 --- a/src/assets/images/icons/ic_Arrow-dash-right.svg +++ b/src/assets/images/icons/ic_Arrow-dash-right.svg @@ -1,4 +1,4 @@ - - - + + + 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..e47dbd2 100644 --- a/src/pages/Home/index.jsx +++ b/src/pages/Home/index.jsx @@ -1,21 +1,31 @@ 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'; +import { ReactComponent as IcArrowDashRight } from 'assets/images/icons/ic_Arrow-dash-right.svg'; 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() }); @@ -41,14 +52,14 @@ const Home = () => { return (
- 오픈마인드 로고 + 오픈마인드 로고
질문하러 가기 - 질문하러 가기 버튼 +
@@ -64,7 +75,6 @@ const Home = () => { value={name} onChange={(e) => setName(e.target.value)} /> - {errorMessage &&
{errorMessage}
} - 오픈마인드 배너 + + + {toastHome && } ); };