) => void;
shelterInfo: ShelterSignupType;
-};
+}
const VAddressInputGroup = ({ handleChange, shelterInfo }: Props) => {
return (
@@ -16,13 +16,13 @@ const VAddressInputGroup = ({ handleChange, shelterInfo }: Props) => {
@@ -30,32 +30,32 @@ const VAddressInputGroup = ({ handleChange, shelterInfo }: Props) => {
@@ -66,6 +66,7 @@ const VAddressInputGroup = ({ handleChange, shelterInfo }: Props) => {
type="text"
placeholder="상세 주소(입력)"
onChange={handleChange}
+ defaultValue={shelterInfo.address.detail}
/>
);
diff --git a/src/pages/update/PatchStatusSelectGroup.tsx b/src/pages/update/PatchStatusSelectGroup.tsx
index f1850acc..386d67c3 100644
--- a/src/pages/update/PatchStatusSelectGroup.tsx
+++ b/src/pages/update/PatchStatusSelectGroup.tsx
@@ -86,11 +86,6 @@ const PatchStatusSelectGroup = ({
}
};
- // 데이터 확인용
- // useEffect(() => {
- // console.log(petStatus);
- // }, [petStatus]);
-
return (
{
const [selectedImageFile, setSelectedImageFile] = useState(null);
const [selectedVideoFile, setSelectedVideoFile] = useState(null);
+ const [errorText, setErrorText] = useState('');
const registerPetData = useRecoilValue(registerState);
const imageRef = useRef(null);
const videoRef = useRef(null);
@@ -32,14 +33,36 @@ const UpdateHeader = () => {
// 등록하기 관련
const patchPet = async (formData: FormData) => {
const loginToken = getCookie('loginToken');
- const res = await fetch(`${process.env.REACT_APP_URI}/pet/${params}`, {
+ const response = await fetch(`${process.env.REACT_APP_URI}/pet/${params}`, {
method: 'PATCH',
body: formData,
headers: {
Authorization: `Bearer ${loginToken}`,
},
});
- return res.json();
+ if (!response.ok) {
+ console.log(response.status);
+ // 로그인 화면으로 이동하기 위해 텍스트 바꿔주는 것 필요
+ switch (response.status) {
+ case 400:
+ setErrorText('이미지, 비디오 형식이 잘못되었습니다.'); // 취소
+ break;
+ case 401:
+ case 403:
+ setErrorText('로그인 정보가 만료되었습니다.'); // 로그인 페이지로 이동 / 취소
+ break;
+ case 404:
+ setErrorText('보호소를 찾을 수 없습니다.'); // 로그인 페이지로 이동 / 취소
+ break;
+ case 500:
+ setErrorText('서버에 문제가 발생했습니다.'); // 다시하기 / 취소
+ break;
+ default:
+ setErrorText('등록 정보의 형식이 잘못되었습니다.'); // 취소
+ break;
+ }
+ }
+ return response.json();
};
const { data, mutate, isError, isLoading, isSuccess } = useMutation(patchPet);
const handleRegisterButtonClick = async () => {
@@ -91,6 +114,7 @@ const UpdateHeader = () => {
isSuccess,
isError,
data,
+ errorText,
modalString: '수정',
};
return (
diff --git a/src/recoil/shelterState.ts b/src/recoil/shelterState.ts
index b7786ed2..83c7e7f1 100644
--- a/src/recoil/shelterState.ts
+++ b/src/recoil/shelterState.ts
@@ -43,3 +43,8 @@ export const shelterLoginState = atom({
password: '',
},
});
+
+export const tokenCheckState = atom({
+ key: 'tokenCheckState',
+ default: true,
+});