From 2281d3da41e4fd9649def31429f951b62f93c773 Mon Sep 17 00:00:00 2001 From: parkyejin Date: Thu, 7 Nov 2024 21:18:50 +0900 Subject: [PATCH] =?UTF-8?q?remove:=20alert=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/CommunityPage/CommunityWrite.jsx | 117 ++++++------ src/pages/MyPage/MyPage.jsx | 181 +++++++++++------- src/pages/MyPage/PetEditPage.jsx | 1 - src/pages/MyPage/RegisterMissing.jsx | 202 ++++++++++++--------- src/pages/RegisterPage/PetRegisterPage.jsx | 162 ++++++++++------- 5 files changed, 391 insertions(+), 272 deletions(-) diff --git a/src/pages/CommunityPage/CommunityWrite.jsx b/src/pages/CommunityPage/CommunityWrite.jsx index 5096f92..15e5b41 100644 --- a/src/pages/CommunityPage/CommunityWrite.jsx +++ b/src/pages/CommunityPage/CommunityWrite.jsx @@ -1,59 +1,65 @@ -import axios from '../../apis/AxiosInstance'; -import styled from 'styled-components'; -import { images } from '../../components/Images'; -import { MdPhotoCamera } from 'react-icons/md'; -import { useState } from 'react'; +import axios from "../../apis/AxiosInstance"; +import styled from "styled-components"; +import { images } from "../../components/Images"; +import { MdPhotoCamera } from "react-icons/md"; +import { useState } from "react"; +import { useNavigate } from "react-router-dom"; const CommunityWrite = () => { - const [uploadedImage, setUploadedImage] = useState(''); //미리보기 이미지 - const [title, setTitle] = useState(''); // 제목 - const [contents, setContents] = useState(''); // 내용 - const [user, setUser] = useState(''); // 유저 + const [uploadedImage, setUploadedImage] = useState(""); //미리보기 이미지 + const [title, setTitle] = useState(""); // 제목 + const [contents, setContents] = useState(""); // 내용 + const [user, setUser] = useState(""); // 유저 const [imageUrl, setImageUrl] = useState(null); // 사진 파일 const [loading, setLoading] = useState(false); - const [activeCategory, setActiveCategory] = useState('전체'); + const [activeCategory, setActiveCategory] = useState("전체"); + const navigate = useNavigate(); + const category = [ - { src: images.categoryAll, name: '전체' }, - { src: images.categoryFreedom, name: '자유' }, - { src: images.categoryDongNea, name: '동네' }, - { src: images.categoryExpert, name: '전문가' }, - { src: images.categoryAnonymity, name: '익명' }, - { src: images.categoryEvent, name: '이벤트' }, + { src: images.categoryAll, name: "전체" }, + { src: images.categoryFreedom, name: "자유" }, + { src: images.categoryDongNea, name: "동네" }, + { src: images.categoryExpert, name: "전문가" }, + { src: images.categoryAnonymity, name: "익명" }, + { src: images.categoryEvent, name: "이벤트" }, ]; - const handleSubmit = async e => { + const handleSubmit = async (e) => { e.preventDefault(); // 새로고침 방지 setLoading(true); // FormData 객체 생성 const formData = new FormData(); - const user = localStorage.getItem('userId'); - formData.append('title', title); - formData.append('contents', contents); - formData.append('user', user); + const user = localStorage.getItem("userId"); + formData.append("title", title); + formData.append("contents", contents); + formData.append("user", user); if (imageUrl) { - formData.append('imageUrl', imageUrl); // 'imageUrl'는 Spring Boot에서 받을 필드 이름과 일치해야 합니다 + formData.append("imageUrl", imageUrl); // 'imageUrl'는 Spring Boot에서 받을 필드 이름과 일치해야 합니다 } try { - const response = await axios.post('https://ureca.store/api/communities', formData, { - headers: { - 'Content-Type': 'multipart/form-data', - }, - }); - console.log('등록 data : ', response.data); - alert('등록 성공', response.data); - setTitle(''); - setContents(''); - setUser(''); + const response = await axios.post( + "https://ureca.store/api/communities", + formData, + { + headers: { + "Content-Type": "multipart/form-data", + }, + } + ); + navigate("/community"); + setTitle(""); + setContents(""); + setUser(""); setImageUrl(null); // 이미지 URL 초기화 setUploadedImage(null); // 미리보기 이미지 초기화 } catch (error) { - console.error('오류 발생:', error); - alert('오류 발생:'); - setTitle(''); - setContents(''); - setUser(''); + console.error("오류 발생:", error); + alert("오류 발생:"); + setTitle(""); + setContents(""); + setUser(""); setImageUrl(null); // 이미지 URL 초기화 setUploadedImage(null); // 미리보기 이미지 초기화 } finally { @@ -62,13 +68,13 @@ const CommunityWrite = () => { }; // 파일 선택 핸들러 - const handleFileChange = e => { + const handleFileChange = (e) => { if (e.target.files && e.target.files[0]) { const file = e.target.files[0]; // 첫 번째 파일만 선택 setImageUrl(file); setUploadedImage(URL.createObjectURL(file)); if (file.length > 1) { - alert('최대 1장의 이미지만 선택할 수 있습니다.'); + alert("최대 1장의 이미지만 선택할 수 있습니다."); return; } } @@ -79,7 +85,13 @@ const CommunityWrite = () => {
- + {uploadedImage ? ( { id="title" value={title} type="text" - onChange={e => setTitle(e.target.value)} + onChange={(e) => setTitle(e.target.value)} required placeholder="제목을 입력해주세요" /> @@ -110,7 +122,8 @@ const CommunityWrite = () => { setActiveCategory(item.name)}> + onClick={() => setActiveCategory(item.name)} + > {item.name} @@ -121,20 +134,20 @@ const CommunityWrite = () => {