From 7b947d09ad2780f289b12d2431a2c70113351c66 Mon Sep 17 00:00:00 2001 From: YIMSEBIN Date: Fri, 15 Nov 2024 04:59:39 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EA=B3=A0=EC=9A=A9=EC=A3=BC=20=EA=B7=BC?= =?UTF-8?q?=EB=A1=9C=EA=B3=84=EC=95=BD=EC=84=9C=20=ED=99=95=EC=9D=B8=20?= =?UTF-8?q?=EB=AA=A8=EB=8B=AC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../translator/Contract/contractData.ts | 2 ++ .../components/ContractRegistrationForm.tsx | 31 ++++++++++++++++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/assets/translator/Contract/contractData.ts b/src/assets/translator/Contract/contractData.ts index 7eac42c..0e0da42 100644 --- a/src/assets/translator/Contract/contractData.ts +++ b/src/assets/translator/Contract/contractData.ts @@ -13,6 +13,7 @@ export const contractData = { SENTENCE1: '사용자와 근로자는 각자가 근로계약, 취업규칙, 단체협약을 지키고 성실하게 이행하여야 한다.', SENTENCE2: "이 계약에서 정하지 않은 사항은 '근로기준법'에서 정하는 바에 따른다.", SIGN: '서명하기', + SUBMIT_CHECK: '정말 제출하시겠습니까?', SUBMIT: '제출하기', ERROR: { WORKING_PLACE: '근무장소를 작성해주세요.', @@ -39,6 +40,7 @@ export const contractData = { 'Người sử dụng lao động và người lao động cần tuân thủ hợp đồng lao động, quy tắc lao động và thỏa thuận tập thể một cách nghiêm túc.', SENTENCE2: 'Các điều khoản không được quy định trong hợp đồng này sẽ được điều chỉnh theo "Luật lao động".', SIGN: 'Ký tên', + SUBMIT_CHECK: 'Bạn có chắc chắn muốn nộp không?', SUBMIT: 'Gửi đi', ERROR: { WORKING_PLACE: 'Vui lòng điền nơi làm việc.', diff --git a/src/features/contract/EmployerContract/components/ContractRegistrationForm.tsx b/src/features/contract/EmployerContract/components/ContractRegistrationForm.tsx index 9c18202..a4ef6a0 100644 --- a/src/features/contract/EmployerContract/components/ContractRegistrationForm.tsx +++ b/src/features/contract/EmployerContract/components/ContractRegistrationForm.tsx @@ -1,5 +1,6 @@ import { useFetchPostContract } from '@/apis/contract/hooks/usePostContract'; -import { Button, Input, Typo } from '@/components/common'; +import { Button, Input, Modal, Typo } from '@/components/common'; +import useToggle from '@/hooks/useToggle'; import ROUTE_PATH from '@/routes/path'; import styled from '@emotion/styled'; import { useState } from 'react'; @@ -22,9 +23,9 @@ export default function ContractRegistrationForm() { const mutation = useFetchPostContract(); const navigate = useNavigate(); + const [isToggle, toggle] = useToggle(); const [isSigned, setIsSigned] = useState(false); const [errors, setErrors] = useState<{ [key: string]: string }>({}); - const [inputs, setInputs] = useState({ ...default_inputs }); const { salary, workingHours, dayOff, annualPaidLeave, workingPlace, responsibilities, rule } = inputs; @@ -50,7 +51,7 @@ export default function ContractRegistrationForm() { }); }; - const handlePostContract = () => { + const onClickSubmitButton = () => { const newErrors: { [key: string]: string } = {}; if (!salary) newErrors.salary = t('contract.ERROR.SALARY'); @@ -65,7 +66,10 @@ export default function ContractRegistrationForm() { setErrors(newErrors); if (Object.keys(newErrors).length > 0) return; + toggle(); + }; + const onPostContract = () => { const postData = { ...inputs, applyId: Number(`${applicationId}`) }; mutation.mutate(postData, { @@ -174,11 +178,18 @@ export default function ContractRegistrationForm() { {t('contract.SIGN')} {isSigned && } - {!isSigned && errors.sign && {errors.sign}} + {isToggle && ( + {t('contract.SUBMIT_CHECK')}} + buttonChildren={{t('contract.SUBMIT')}} + onClose={toggle} + /> + )} ); } @@ -234,3 +245,15 @@ const ErrorText = styled.span` `; const InputStyle = { width: '450px', height: '48px' }; + +const CustomBtn = styled(Button)` + background: #0a65cc; + color: white; + border: 1px solid #e4e5e8; + align-self: center; +`; + +const ModalContainer = styled.div` + font-size: 24px; + margin: 30px 30px; +`;