|
|
@ -1,33 +1,54 @@ |
|
|
|
// ** React Imports
|
|
|
|
// ** React Imports
|
|
|
|
import { useState, useEffect } from 'react' |
|
|
|
import { useState, useEffect } from 'react'; |
|
|
|
import { useParams, Link } from 'react-router-dom' |
|
|
|
import { useParams, Link } from 'react-router-dom'; |
|
|
|
import { useSelector, useDispatch } from 'react-redux' |
|
|
|
import { useSelector, useDispatch } from 'react-redux'; |
|
|
|
// ** Styles
|
|
|
|
// ** Styles
|
|
|
|
import '../../../assets/css/custom.css'; |
|
|
|
import '../../../assets/css/custom.css'; |
|
|
|
// ** Third Party Components
|
|
|
|
// ** Third Party Components
|
|
|
|
import { User, Info, CreditCard, Lock, Check, X } from 'react-feather' |
|
|
|
import { User, Info, CreditCard, Lock, Check, X } from 'react-feather'; |
|
|
|
import { |
|
|
|
import { |
|
|
|
Card, CardBody, Row, Col, Nav, NavItem, NavLink, TabContent, TabPane, Alert, FormGroup, Form, Input, Label, Button, |
|
|
|
Card, |
|
|
|
Modal, ModalHeader, ModalBody, ModalFooter |
|
|
|
CardBody, |
|
|
|
} from 'reactstrap' |
|
|
|
Row, |
|
|
|
|
|
|
|
Col, |
|
|
|
|
|
|
|
Nav, |
|
|
|
|
|
|
|
NavItem, |
|
|
|
|
|
|
|
NavLink, |
|
|
|
|
|
|
|
TabContent, |
|
|
|
|
|
|
|
TabPane, |
|
|
|
|
|
|
|
Alert, |
|
|
|
|
|
|
|
FormGroup, |
|
|
|
|
|
|
|
Form, |
|
|
|
|
|
|
|
Input, |
|
|
|
|
|
|
|
Label, |
|
|
|
|
|
|
|
Button, |
|
|
|
|
|
|
|
Modal, |
|
|
|
|
|
|
|
ModalHeader, |
|
|
|
|
|
|
|
ModalBody, |
|
|
|
|
|
|
|
ModalFooter |
|
|
|
|
|
|
|
} from 'reactstrap'; |
|
|
|
import { accountApi } from '../../../modules/account/register/apis/accountApi'; |
|
|
|
import { accountApi } from '../../../modules/account/register/apis/accountApi'; |
|
|
|
import AccountMypagePwForm from '../../../components/account/mypage/AccountMypagePwForm'; |
|
|
|
import AccountMypagePwForm from '../../../components/account/mypage/AccountMypagePwForm'; |
|
|
|
import AccountMypageForm from '../../../components/account/mypage/AccountMypageForm'; |
|
|
|
import AccountMypageForm from '../../../components/account/mypage/AccountMypageForm'; |
|
|
|
import { userPageAction, userupdateAction } from '../../../modules/account/login/actions/authAction'; |
|
|
|
import { |
|
|
|
|
|
|
|
userPageAction, |
|
|
|
|
|
|
|
userupdateAction |
|
|
|
|
|
|
|
} from '../../../modules/account/login/actions/authAction'; |
|
|
|
|
|
|
|
|
|
|
|
import { MessageErrorModal } from '../../../components/message/MessageErrorModal'; |
|
|
|
import { MessageErrorModal } from '../../../components/message/MessageErrorModal'; |
|
|
|
import { MessageInfoModal } from '../../../components/message/MessageInfoModal'; |
|
|
|
import { MessageInfoModal } from '../../../components/message/MessageInfoModal'; |
|
|
|
import { USER_LIST } from '../../../modules/basis/group/actions/basisGroupAction'; |
|
|
|
import { USER_LIST } from '../../../modules/basis/group/actions/basisGroupAction'; |
|
|
|
|
|
|
|
import { ConfirmModal } from '../../../components/modal/ConfirmModal'; |
|
|
|
|
|
|
|
|
|
|
|
// ** Function to toggle tabs
|
|
|
|
// ** Function to toggle tabs
|
|
|
|
const AccountMypageContainer = () => { |
|
|
|
const AccountMypageContainer = () => { |
|
|
|
const [activeTab, setActiveTab] = useState('1'), |
|
|
|
const [activeTab, setActiveTab] = useState('1'), |
|
|
|
store = useSelector(state => state.users), |
|
|
|
store = useSelector(state => state.users), |
|
|
|
dispatch = useDispatch(), |
|
|
|
dispatch = useDispatch(), |
|
|
|
{ id } = useParams() |
|
|
|
{ id } = useParams(); |
|
|
|
|
|
|
|
|
|
|
|
const toggle = tab => setActiveTab(tab) |
|
|
|
const toggle = tab => setActiveTab(tab); |
|
|
|
const [formModal, setFormModal] = useState(false) |
|
|
|
const [formModal, setFormModal] = useState(false); |
|
|
|
const { userPage } = useSelector(state => state.UserPageState); |
|
|
|
const { userPage } = useSelector(state => state.UserPageState); |
|
|
|
const { user } = useSelector(state => state.authState); |
|
|
|
const { user } = useSelector(state => state.authState); |
|
|
|
const { userPwPage } = useSelector(state => state.UserPwState); |
|
|
|
const { userPwPage } = useSelector(state => state.UserPwState); |
|
|
@ -44,7 +65,7 @@ const AccountMypageContainer = () => { |
|
|
|
const [sendCount, setSendCount] = useState(0); |
|
|
|
const [sendCount, setSendCount] = useState(0); |
|
|
|
const [isCrtfy, setIsCrtfy] = useState(false); |
|
|
|
const [isCrtfy, setIsCrtfy] = useState(false); |
|
|
|
|
|
|
|
|
|
|
|
const [okinput, setOkinput] = useState(false) |
|
|
|
const [okinput, setOkinput] = useState(false); |
|
|
|
const [okcheck, setOkcheck] = useState(''); |
|
|
|
const [okcheck, setOkcheck] = useState(''); |
|
|
|
|
|
|
|
|
|
|
|
const [modal, setModal] = useState({ |
|
|
|
const [modal, setModal] = useState({ |
|
|
@ -53,6 +74,12 @@ const AccountMypageContainer = () => { |
|
|
|
desc: '', |
|
|
|
desc: '', |
|
|
|
color: '' |
|
|
|
color: '' |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
const [quite, setQuite] = useState({ |
|
|
|
|
|
|
|
isOpen: false, |
|
|
|
|
|
|
|
title: '', |
|
|
|
|
|
|
|
desc: '', |
|
|
|
|
|
|
|
color: '' |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const timerStart = count => { |
|
|
|
const timerStart = count => { |
|
|
|
let minutes, seconds; |
|
|
|
let minutes, seconds; |
|
|
@ -77,7 +104,7 @@ const AccountMypageContainer = () => { |
|
|
|
title: '인증번호 만료', |
|
|
|
title: '인증번호 만료', |
|
|
|
desc: '인증번호가 만료되었습니다.', |
|
|
|
desc: '인증번호가 만료되었습니다.', |
|
|
|
color: 'modal-danger' |
|
|
|
color: 'modal-danger' |
|
|
|
}) |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
}, 1000); |
|
|
|
}, 1000); |
|
|
|
|
|
|
|
|
|
|
@ -89,9 +116,9 @@ const AccountMypageContainer = () => { |
|
|
|
}; |
|
|
|
}; |
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
if (userInfo) { |
|
|
|
if (userInfo) { |
|
|
|
setOkcheck(!okinput ? userInfo.hpno : inputHpno) |
|
|
|
setOkcheck(!okinput ? userInfo.hpno : inputHpno); |
|
|
|
} |
|
|
|
} |
|
|
|
}, [userInfo]) |
|
|
|
}, [userInfo]); |
|
|
|
|
|
|
|
|
|
|
|
//휴대폰 인증번호 보내기
|
|
|
|
//휴대폰 인증번호 보내기
|
|
|
|
const handlerSmsSend = async () => { |
|
|
|
const handlerSmsSend = async () => { |
|
|
@ -115,13 +142,13 @@ const AccountMypageContainer = () => { |
|
|
|
}); |
|
|
|
}); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
if(inputHpno.length < 11) { |
|
|
|
if (inputHpno.length < 11) { |
|
|
|
setModal({ |
|
|
|
setModal({ |
|
|
|
isOpen: true, |
|
|
|
isOpen: true, |
|
|
|
title: '인증번호 발송', |
|
|
|
title: '인증번호 발송', |
|
|
|
desc: '올바른 번호를 입력해 주세요.', |
|
|
|
desc: '올바른 번호를 입력해 주세요.', |
|
|
|
color: 'modal-danger' |
|
|
|
color: 'modal-danger' |
|
|
|
}) |
|
|
|
}); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -208,33 +235,30 @@ const AccountMypageContainer = () => { |
|
|
|
title: '인증번호 인증', |
|
|
|
title: '인증번호 인증', |
|
|
|
desc: '인증번호가 잘못되었습니다.', |
|
|
|
desc: '인증번호가 잘못되었습니다.', |
|
|
|
color: 'modal-danger' |
|
|
|
color: 'modal-danger' |
|
|
|
}) |
|
|
|
}); |
|
|
|
} |
|
|
|
} else if (res?.data.code === 0) { |
|
|
|
else if (res?.data.code === 0) { |
|
|
|
|
|
|
|
setModal({ |
|
|
|
setModal({ |
|
|
|
isOpen: true, |
|
|
|
isOpen: true, |
|
|
|
title: '인증번호 발송', |
|
|
|
title: '인증번호 발송', |
|
|
|
desc: '인증번호가 발송되었습니다.', |
|
|
|
desc: '인증번호가 발송되었습니다.', |
|
|
|
color: 'modal-primary' |
|
|
|
color: 'modal-primary' |
|
|
|
}) |
|
|
|
}); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
setModal({ |
|
|
|
setModal({ |
|
|
|
isOpen: true, |
|
|
|
isOpen: true, |
|
|
|
title: '인증번호 성공', |
|
|
|
title: '인증번호 성공', |
|
|
|
desc: '인증되었습니다', |
|
|
|
desc: '인증되었습니다', |
|
|
|
color: 'modal-primary' |
|
|
|
color: 'modal-primary' |
|
|
|
}) |
|
|
|
}); |
|
|
|
setOkinput(!okinput); |
|
|
|
setOkinput(!okinput); |
|
|
|
} |
|
|
|
} |
|
|
|
setIsRunning(true); |
|
|
|
setIsRunning(true); |
|
|
|
setIsCrtfy(true); |
|
|
|
setIsCrtfy(true); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
if (userPage) |
|
|
|
if (userPage) setUserInfo(userPage[0]); |
|
|
|
setUserInfo(userPage[0]) |
|
|
|
}, [userPage]); |
|
|
|
}, [userPage]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handlerInput = e => { |
|
|
|
const handlerInput = e => { |
|
|
|
const { name, value } = e.target; |
|
|
|
const { name, value } = e.target; |
|
|
@ -251,28 +275,28 @@ const AccountMypageContainer = () => { |
|
|
|
}, []); |
|
|
|
}, []); |
|
|
|
|
|
|
|
|
|
|
|
const handler = () => { |
|
|
|
const handler = () => { |
|
|
|
setFormModal(!formModal) |
|
|
|
setFormModal(!formModal); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
let hpno = ''; |
|
|
|
let hpno = ''; |
|
|
|
let crtfyhp = ''; |
|
|
|
let crtfyhp = ''; |
|
|
|
const handlerChange = (e) => { |
|
|
|
const handlerChange = e => { |
|
|
|
const { name, value } = e.target; |
|
|
|
const { name, value } = e.target; |
|
|
|
|
|
|
|
|
|
|
|
if (name == 'hpno') { |
|
|
|
if (name == 'hpno') { |
|
|
|
const regex = /^[0-9]{0,11}$/; |
|
|
|
const regex = /^[0-9]{0,11}$/; |
|
|
|
if(regex.test(value)){ |
|
|
|
if (regex.test(value)) { |
|
|
|
hpno = value; |
|
|
|
hpno = value; |
|
|
|
setInputHpno(hpno) |
|
|
|
setInputHpno(hpno); |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (name == 'crtfyhpNo') { |
|
|
|
} else if (name == 'crtfyhpNo') { |
|
|
|
const regex = /^[0-9]{0,6}$/; |
|
|
|
const regex = /^[0-9]{0,6}$/; |
|
|
|
if(regex.test(value)) { |
|
|
|
if (regex.test(value)) { |
|
|
|
crtfyhp = value; |
|
|
|
crtfyhp = value; |
|
|
|
setInputCrtfy(crtfyhp) |
|
|
|
setInputCrtfy(crtfyhp); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
//업데이트
|
|
|
|
//업데이트
|
|
|
|
const handlerUpdate = () => { |
|
|
|
const handlerUpdate = () => { |
|
|
|
const param = { |
|
|
|
const param = { |
|
|
@ -280,11 +304,24 @@ const AccountMypageContainer = () => { |
|
|
|
email: userInfo.email, |
|
|
|
email: userInfo.email, |
|
|
|
updateUserId: userInfo.userId, |
|
|
|
updateUserId: userInfo.userId, |
|
|
|
hpno: okcheck |
|
|
|
hpno: okcheck |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
dispatch(userupdateAction.request(param)); |
|
|
|
dispatch(userupdateAction.request(param)); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handlerTest = () => { |
|
|
|
|
|
|
|
setQuite({ |
|
|
|
|
|
|
|
isOpen: true, |
|
|
|
|
|
|
|
title: '탈퇴 확인', |
|
|
|
|
|
|
|
desc: '정말로 탈퇴 하시겠습니까?' |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const waitwait = () => { |
|
|
|
|
|
|
|
alert('아직 탈퇴 못해용~'); |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<div className='pal-card'> |
|
|
|
<div className='pal-card'> |
|
|
|
<div className='card-body-tab-menu'> |
|
|
|
<div className='card-body-tab-menu'> |
|
|
@ -298,12 +335,16 @@ const AccountMypageContainer = () => { |
|
|
|
<NavItem> |
|
|
|
<NavItem> |
|
|
|
<NavLink active={activeTab === '2'} onClick={() => toggle('2')}> |
|
|
|
<NavLink active={activeTab === '2'} onClick={() => toggle('2')}> |
|
|
|
<Lock size={14} /> |
|
|
|
<Lock size={14} /> |
|
|
|
<span className='align-middle d-none d-sm-block'>비밀번호 변경</span> |
|
|
|
<span className='align-middle d-none d-sm-block'> |
|
|
|
|
|
|
|
비밀번호 변경 |
|
|
|
|
|
|
|
</span> |
|
|
|
</NavLink> |
|
|
|
</NavLink> |
|
|
|
</NavItem> |
|
|
|
</NavItem> |
|
|
|
</Nav> |
|
|
|
</Nav> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{activeTab == 1 ? <AccountMypageForm |
|
|
|
{activeTab == 1 ? ( |
|
|
|
|
|
|
|
<> |
|
|
|
|
|
|
|
<AccountMypageForm |
|
|
|
userInfo={userInfo} |
|
|
|
userInfo={userInfo} |
|
|
|
handler={handler} |
|
|
|
handler={handler} |
|
|
|
formModal={formModal} |
|
|
|
formModal={formModal} |
|
|
@ -320,17 +361,19 @@ const AccountMypageContainer = () => { |
|
|
|
seconds_Counter={seconds_Counter} |
|
|
|
seconds_Counter={seconds_Counter} |
|
|
|
handlerSmsSend={handlerSmsSend} |
|
|
|
handlerSmsSend={handlerSmsSend} |
|
|
|
isCrtfy={isCrtfy} |
|
|
|
isCrtfy={isCrtfy} |
|
|
|
|
|
|
|
handlerWidthrow={handlerTest} |
|
|
|
/> |
|
|
|
/> |
|
|
|
: |
|
|
|
<ConfirmModal |
|
|
|
<></> |
|
|
|
modal={quite} |
|
|
|
} |
|
|
|
setModal={setQuite} |
|
|
|
{activeTab == 2 ? |
|
|
|
handlerConfirm={waitwait} |
|
|
|
<AccountMypagePwForm |
|
|
|
color='danger' |
|
|
|
user={user} |
|
|
|
|
|
|
|
/> |
|
|
|
/> |
|
|
|
: |
|
|
|
</> |
|
|
|
|
|
|
|
) : ( |
|
|
|
<></> |
|
|
|
<></> |
|
|
|
} |
|
|
|
)} |
|
|
|
|
|
|
|
{activeTab == 2 ? <AccountMypagePwForm user={user} /> : <></>} |
|
|
|
<div className='vertically-centered-modal'> |
|
|
|
<div className='vertically-centered-modal'> |
|
|
|
<Modal |
|
|
|
<Modal |
|
|
|
isOpen={modal.isOpen} |
|
|
|
isOpen={modal.isOpen} |
|
|
@ -357,6 +400,6 @@ const AccountMypageContainer = () => { |
|
|
|
<MessageErrorModal /> |
|
|
|
<MessageErrorModal /> |
|
|
|
<MessageInfoModal /> |
|
|
|
<MessageInfoModal /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
) |
|
|
|
); |
|
|
|
} |
|
|
|
}; |
|
|
|
export default AccountMypageContainer; |
|
|
|
export default AccountMypageContainer; |
|
|
|