diff --git a/src/pages/MyPage/Profile/MyProfile.jsx b/src/pages/MyPage/Profile/MyProfile.jsx index 03e649a..eb76091 100644 --- a/src/pages/MyPage/Profile/MyProfile.jsx +++ b/src/pages/MyPage/Profile/MyProfile.jsx @@ -1,5 +1,6 @@ import React, { useEffect, useState } from 'react'; import { inject, observer } from 'mobx-react'; +import { Redirect } from 'react-router-dom'; import { ProfileCard } from 'src/modules/MyPage/ProfileCard/ProfileCard'; import Textarea from 'src/components/Input/Textarea'; @@ -30,7 +31,7 @@ const isActiveItemList = [ }, ]; -export const MyProfile = inject('userStore', 'selsoListStore')(observer(({ userStore, selsoListStore }) => { +export const MyProfile = inject('userStore', 'selsoListStore')(observer(({ userStore, selsoListStore, history }) => { const [updateMessage, setUpdateMessage] = useState(''); @@ -56,7 +57,12 @@ export const MyProfile = inject('userStore', 'selsoListStore')(observer(({ userS const [idealTypeValidationMessage, setIdealTypeValidationMessage] = useState(''); useEffect(() => { - selsoListStore.getMySelsoProfile(); + selsoListStore.getMySelsoProfile() + .then((res) => { + if (res.status === 404) { + history.push('/user/register'); + } + }) }, []); useEffect(() => { diff --git a/src/stores/SelsoListStore.js b/src/stores/SelsoListStore.js index d4aef6d..fbc27f6 100644 --- a/src/stores/SelsoListStore.js +++ b/src/stores/SelsoListStore.js @@ -36,8 +36,21 @@ export default class SelsoListStore { .then((res) => { this.mySelsoProfile = res.data; return res; - }) - .catch((err) => err); + }).catch((err) => { + if (err.response) { + return { + status: err.response.status, + message: err.response.statusText, + data: err.response.data, + }; + } + + return { + status: null, + message: 'unknown error', + data: {}, + } + }); @action setMySelsoProfile = (type, value) => { this.mySelsoProfile[type] = value