From 06a6a04845bd325dd207ecb55e703b75540375db Mon Sep 17 00:00:00 2001 From: Jin Date: Thu, 13 Apr 2023 22:18:46 +0900 Subject: [PATCH 1/7] Add UploadButton Component --- Frontend/wb-project/src/App.js | 1 + .../wb-project/src/components/Header/Navbar.jsx | 6 ++++-- .../src/components/Header/UploadButton.jsx | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 Frontend/wb-project/src/components/Header/UploadButton.jsx diff --git a/Frontend/wb-project/src/App.js b/Frontend/wb-project/src/App.js index 2439514..a64de8a 100644 --- a/Frontend/wb-project/src/App.js +++ b/Frontend/wb-project/src/App.js @@ -14,6 +14,7 @@ const router = createBrowserRouter([ element: , children: [ { path: '/', element: }, + { path: '/upload', element: }, { path: '/daejeon-worldcup', element: }, { path: '/hanwha-eagles', element: }, { path: '/review-test', element: }, diff --git a/Frontend/wb-project/src/components/Header/Navbar.jsx b/Frontend/wb-project/src/components/Header/Navbar.jsx index 771fefe..2ac8f11 100644 --- a/Frontend/wb-project/src/components/Header/Navbar.jsx +++ b/Frontend/wb-project/src/components/Header/Navbar.jsx @@ -1,7 +1,8 @@ import React from 'react'; import styled from 'styled-components'; -import LoginButton from './LoginButton'; +// import LoginButton from './LoginButton'; import SearchButton from './SearchButton/SearchButton'; +import UploadButton from './UploadButton'; const Nav = styled.div` display: flex; @@ -11,7 +12,8 @@ export default function Navbar() { return ( ); } diff --git a/Frontend/wb-project/src/components/Header/UploadButton.jsx b/Frontend/wb-project/src/components/Header/UploadButton.jsx new file mode 100644 index 0000000..59fbc62 --- /dev/null +++ b/Frontend/wb-project/src/components/Header/UploadButton.jsx @@ -0,0 +1,15 @@ +import React from 'react'; +import { Button } from '../UI/Button'; +import { FiUpload } from 'react-icons/fi'; +import StyledLink from '../UI/StyledLink'; + +export default function UploadButton() { + return ( + + + + ); +} + From a59e877aab4824e2ee27f58b1d69d98f87b529fa Mon Sep 17 00:00:00 2001 From: Jin Date: Mon, 24 Apr 2023 10:02:25 +0900 Subject: [PATCH 2/7] Add Uploader Component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 업로더 컴포넌트를 따로 만들었습니다. --- .../src/components/Upload/UploadForm.jsx | 52 +------ .../src/components/Upload/Uploader.jsx | 133 ++++++++++++++++++ 2 files changed, 138 insertions(+), 47 deletions(-) create mode 100644 Frontend/wb-project/src/components/Upload/Uploader.jsx diff --git a/Frontend/wb-project/src/components/Upload/UploadForm.jsx b/Frontend/wb-project/src/components/Upload/UploadForm.jsx index ed66ddc..d725ea6 100644 --- a/Frontend/wb-project/src/components/Upload/UploadForm.jsx +++ b/Frontend/wb-project/src/components/Upload/UploadForm.jsx @@ -1,9 +1,10 @@ import axios from "axios"; -import React, { useState } from "react"; +import React from "react"; import styled from "styled-components"; import useForm from "../../hooks/useForm"; import { Section } from "../Section/Section"; import Text from "../Text/Text"; +import Uploader from './Uploader'; const Form = styled.form` display: flex; @@ -36,24 +37,6 @@ const Input = styled.input` width: 500px; `; -const PreviewImg = styled.img` - width: 100%; - height: 400px; -`; - -const Label = styled.label` - background-color: #80a9db; - color: white; - padding: 5px 25px; - border-radius: 20px; - margin: 10px 0; - font-size: 24px; - - &:hover { - cursor: pointer; - } -`; - const WarningMessage = styled.span` color: red; font-weight: bold; @@ -86,23 +69,6 @@ const sleep = () => { }; export default function UploadForm() { - const [previewImg, setPreviewImg] = useState( - "https://www.pngall.com/wp-content/uploads/7/Gallery.png" - ); - const insertImg = (e) => { - const reader = new FileReader(); - const img = e.target.files[0]; - if (img) { - reader.readAsDataURL(img); - } - - reader.onloadend = () => { - const previewImgUrl = reader.result; - - setPreviewImg(previewImgUrl); - }; - }; - const { isLoading, errors, handleChange, handleSubmit } = useForm({ initialValues: { title: "", @@ -158,20 +124,12 @@ export default function UploadForm() {
- - { - handleChange(e); - insertImg(e); - }} + onHandleChange={handleChange} /> - {errors.imageFile} diff --git a/Frontend/wb-project/src/components/Upload/Uploader.jsx b/Frontend/wb-project/src/components/Upload/Uploader.jsx new file mode 100644 index 0000000..c1e4dff --- /dev/null +++ b/Frontend/wb-project/src/components/Upload/Uploader.jsx @@ -0,0 +1,133 @@ +import React, { useRef, useState } from 'react'; +import styled from 'styled-components'; +import Text from '../Text/Text'; + +const Input = styled.input` + display: none; +`; + +const UploaderContainer = styled.div` + display: inline-block; + cursor: pointer; +`; + +const PreviewImg = styled.img` + object-fit: contain; + width: 100%; + height: 100%; +`; + +export default function Uploader({ children, droppable, onHandleChange, type, name, accept, value, onChange, ...props }) { + const [previewImg, setPreviewImg] = useState(''); + const insertImg = (e) => { + const reader = new FileReader(); + const img = e.target.files[0]; + if (img) { + reader.readAsDataURL(img); + } + + reader.onloadend = () => { + const previewImgUrl = reader.result; + setPreviewImg(previewImgUrl); + }; + }; + + const inputRef = useRef(null); + + const handleChooseFile = () => { + inputRef.current.click(); + }; + + // const [dragging, setDragging] = useState(false); + // const handleDragEnter = (e) => { + // if (!droppable) return; + // e.preventDefault(); + // e.stopPropagation(); + + // if (e.dataTransfer.items && e.dataTransfer.items.length > 0) { + // setDragging(true); + // } + // }; + + // const handleDragLeave = (e) => { + // if (!droppable) return; + // e.preventDefault(); + // e.stopPropagation(); + + // setDragging(false); + // }; + + // const handleDragOver = (e) => { + // if (!droppable) return; + // e.preventDefault(); + // e.stopPropagation(); + // }; + + // const handleFileDrop = (e) => { + // if (!droppable) return; + // e.preventDefault(); + // e.stopPropagation(); + + // const files = e.dataTransfer.files; + // const changedFile = files[0]; + + // const reader = new FileReader(); + // const img = changedFile; + // if (img) { + // reader.readAsDataURL(img); + // } + + // reader.onloadend = () => { + // const previewImgUrl = reader.result; + // setPreviewImg(previewImgUrl); + // }; + + // const draggedFileData = { [e.dataTransfer.files[0].name]: e.dataTransfer.files[0] }; + // onHandleChange(e, draggedFileData); + + // setDragging(false); + // }; + + return ( + { + // handleFileDrop(e); + // }} + // onDragEnter={handleDragEnter} + // onDragLeave={handleDragLeave} + // onDragOver={handleDragOver} + {...props} + > + { + insertImg(e); + onHandleChange(e); + }} /> +
+ {previewImg ? + : + 클릭해서 사진을 업로드 해주세요. + } +
+
+ ); +} \ No newline at end of file From 13695e87088cc00b5553f499906aaa17fcb06c23 Mon Sep 17 00:00:00 2001 From: Jin Date: Mon, 24 Apr 2023 11:03:21 +0900 Subject: [PATCH 3/7] Modify UploadForm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 닉네임, 패스워드를 추가했고 memberId는 주석처리했습니다. --- .../src/components/Upload/UploadForm.jsx | 50 ++++++++++++++++--- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/Frontend/wb-project/src/components/Upload/UploadForm.jsx b/Frontend/wb-project/src/components/Upload/UploadForm.jsx index d725ea6..0354b9e 100644 --- a/Frontend/wb-project/src/components/Upload/UploadForm.jsx +++ b/Frontend/wb-project/src/components/Upload/UploadForm.jsx @@ -71,10 +71,12 @@ const sleep = () => { export default function UploadForm() { const { isLoading, errors, handleChange, handleSubmit } = useForm({ initialValues: { + nickname: "", + password: "", title: "", content: "", seatId: "", - memberId: "1", + // memberId: "1", imageFile: null, }, @@ -87,10 +89,12 @@ export default function UploadForm() { // FormData 객체를 생성하고 데이터를 추가합니다. const formData = new FormData(); + formData.append("nickname", values.nickname); + formData.append("password", values.password); formData.append("title", values.title); formData.append("content", values.content); formData.append("seatId", values.seatId); - formData.append("memberId", values.memberId); + // formData.append("memberId", values.memberId); formData.append("imageFile", values.imageFile); // 파일 추가 axios @@ -105,10 +109,13 @@ export default function UploadForm() { // alert(data); alert(data); }, - validate: ({ seatId, imageFile }) => { + validate: ({ seatId, imageFile, nickname, password }) => { const errors = {}; if (!seatId) errors.seatId = "⬆️ 좌석 정보를 입력해주세요!"; if (!imageFile) errors.imageFile = "⬆️ 좌석 이미지를 업로드해주세요!"; + if (!nickname) errors.nickname = "⬆️ 닉네임을 입력해주세요!"; + if (!password) errors.password = "⬆️ 비밀번호를 입력해주세요!"; + return errors; }, }); @@ -132,7 +139,35 @@ export default function UploadForm() { /> {errors.imageFile} - +
+ + + {errors.nickname} + + + + {errors.password} + +
- - {/* hidden or disabled */} + + {/* + hidden or disabled - + */} From 84660c3f350cd42a59624ff811eabe650d62a368 Mon Sep 17 00:00:00 2001 From: Jin Date: Mon, 24 Apr 2023 11:23:01 +0900 Subject: [PATCH 4/7] Modify Style --- Frontend/wb-project/src/components/Upload/UploadForm.jsx | 2 -- Frontend/wb-project/src/components/Upload/Uploader.jsx | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Frontend/wb-project/src/components/Upload/UploadForm.jsx b/Frontend/wb-project/src/components/Upload/UploadForm.jsx index 0354b9e..1bf9cbe 100644 --- a/Frontend/wb-project/src/components/Upload/UploadForm.jsx +++ b/Frontend/wb-project/src/components/Upload/UploadForm.jsx @@ -10,8 +10,6 @@ const Form = styled.form` display: flex; flex-direction: column; align-items: center; - border: 1px solid black; - border-radius: 20px; padding: 10px; width: 700px; margin: 10px; diff --git a/Frontend/wb-project/src/components/Upload/Uploader.jsx b/Frontend/wb-project/src/components/Upload/Uploader.jsx index c1e4dff..a277e90 100644 --- a/Frontend/wb-project/src/components/Upload/Uploader.jsx +++ b/Frontend/wb-project/src/components/Upload/Uploader.jsx @@ -110,8 +110,9 @@ export default function Uploader({ children, droppable, onHandleChange, type, na }} />
Date: Mon, 24 Apr 2023 11:36:02 +0900 Subject: [PATCH 5/7] Modify title --- Frontend/wb-project/public/favicon.ico | Bin 3870 -> 0 bytes Frontend/wb-project/public/index.html | 6 +----- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 Frontend/wb-project/public/favicon.ico diff --git a/Frontend/wb-project/public/favicon.ico b/Frontend/wb-project/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/Frontend/wb-project/public/index.html b/Frontend/wb-project/public/index.html index 521f652..bac8b2a 100644 --- a/Frontend/wb-project/public/index.html +++ b/Frontend/wb-project/public/index.html @@ -3,12 +3,8 @@ - - - - - React App + 어디서볼? - 예메할 자리를 미리 보고싶을 때 From 950f135482ccf54161b3ce0ce5174a1f11935773 Mon Sep 17 00:00:00 2001 From: Jin Date: Tue, 2 May 2023 21:49:28 +0900 Subject: [PATCH 6/7] Update UploadForm.jsx --- .../src/components/Upload/UploadForm.jsx | 52 ++++++++++++++++--- 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/Frontend/wb-project/src/components/Upload/UploadForm.jsx b/Frontend/wb-project/src/components/Upload/UploadForm.jsx index 1bf9cbe..da8bcd7 100644 --- a/Frontend/wb-project/src/components/Upload/UploadForm.jsx +++ b/Frontend/wb-project/src/components/Upload/UploadForm.jsx @@ -35,6 +35,15 @@ const Input = styled.input` width: 500px; `; +const Select = styled.select` + margin: 5px; + font-size: 32px; + border: 1px solid black; + border-radius: 10px; + width: 520px; + padding: 5px 10px; +`; + const WarningMessage = styled.span` color: red; font-weight: bold; @@ -73,7 +82,10 @@ export default function UploadForm() { password: "", title: "", content: "", - seatId: "", + venue: "", + sector: "", + seatNumber: "", + // seatId: "", // memberId: "1", imageFile: null, }, @@ -91,7 +103,10 @@ export default function UploadForm() { formData.append("password", values.password); formData.append("title", values.title); formData.append("content", values.content); - formData.append("seatId", values.seatId); + formData.append("venue", values.venue); + formData.append("sector", values.sector); + formData.append("seatNumber", values.seatNumber); + // formData.append("seatId", values.seatId); // formData.append("memberId", values.memberId); formData.append("imageFile", values.imageFile); // 파일 추가 @@ -107,9 +122,12 @@ export default function UploadForm() { // alert(data); alert(data); }, - validate: ({ seatId, imageFile, nickname, password }) => { + validate: ({ seatId, venue, sector, seatNumber, imageFile, nickname, password }) => { const errors = {}; - if (!seatId) errors.seatId = "⬆️ 좌석 정보를 입력해주세요!"; + // if (!seatId) errors.seatId = "⬆️ 좌석 정보를 입력해주세요!"; + if (!venue) errors.venue = "⬆️ 경기장 혹은 공연장을 선택해주세요!"; + if (!sector) errors.sector = "⬆️ 섹터를 입력해주세요!"; + if (!seatNumber) errors.seatNumber = "⬆️ 좌석번호를 입력해주세요!"; if (!imageFile) errors.imageFile = "⬆️ 좌석 이미지를 업로드해주세요!"; if (!nickname) errors.nickname = "⬆️ 닉네임을 입력해주세요!"; if (!password) errors.password = "⬆️ 비밀번호를 입력해주세요!"; @@ -166,14 +184,34 @@ export default function UploadForm() { {errors.password}
+ + + {errors.venue} + + + + {errors.sector} + - {errors.seatId} + {errors.seatNumber} Date: Tue, 2 May 2023 22:04:50 +0900 Subject: [PATCH 7/7] Update UploadForm.jsx --- .../src/components/Upload/UploadForm.jsx | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/Frontend/wb-project/src/components/Upload/UploadForm.jsx b/Frontend/wb-project/src/components/Upload/UploadForm.jsx index da8bcd7..f9b1704 100644 --- a/Frontend/wb-project/src/components/Upload/UploadForm.jsx +++ b/Frontend/wb-project/src/components/Upload/UploadForm.jsx @@ -104,8 +104,7 @@ export default function UploadForm() { formData.append("title", values.title); formData.append("content", values.content); formData.append("venue", values.venue); - formData.append("sector", values.sector); - formData.append("seatNumber", values.seatNumber); + formData.append("seat", values.seat); // formData.append("seatId", values.seatId); // formData.append("memberId", values.memberId); formData.append("imageFile", values.imageFile); // 파일 추가 @@ -122,12 +121,11 @@ export default function UploadForm() { // alert(data); alert(data); }, - validate: ({ seatId, venue, sector, seatNumber, imageFile, nickname, password }) => { + validate: ({ seatId, venue, seat, imageFile, nickname, password }) => { const errors = {}; // if (!seatId) errors.seatId = "⬆️ 좌석 정보를 입력해주세요!"; if (!venue) errors.venue = "⬆️ 경기장 혹은 공연장을 선택해주세요!"; - if (!sector) errors.sector = "⬆️ 섹터를 입력해주세요!"; - if (!seatNumber) errors.seatNumber = "⬆️ 좌석번호를 입력해주세요!"; + if (!seat) errors.seat = "⬆️ 좌석정보를 입력해주세요!"; if (!imageFile) errors.imageFile = "⬆️ 좌석 이미지를 업로드해주세요!"; if (!nickname) errors.nickname = "⬆️ 닉네임을 입력해주세요!"; if (!password) errors.password = "⬆️ 비밀번호를 입력해주세요!"; @@ -199,19 +197,10 @@ export default function UploadForm() { - {errors.sector} - - - - {errors.seatNumber} + {errors.seat}