Skip to content

Commit

Permalink
wirte test $36
Browse files Browse the repository at this point in the history
  • Loading branch information
ftery0 committed Feb 13, 2024
1 parent 6a4df0e commit 496406d
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 66 deletions.
82 changes: 16 additions & 66 deletions SOPOLAST/src/Components/Sidewrite/write.tsx
Original file line number Diff line number Diff line change
@@ -1,80 +1,28 @@
import React from "react";
import { useState, ChangeEvent, FormEvent } from "react";
import axios from "axios";
import Head from "../../constants/head/Head/head";
import Side from "../../constants/Sidebar/Side/side";
import ImgPlus from "src/Assets/image/imgplus.png";
import SubmitImg from "src/Assets/image/submitimg.png";
import * as s from "./Write.style";
import { showToast } from "src/constants/Swal/Swal";
import UseWrite from "src/hooks/Wirte/useWirte"

const Sidewrite = () => {
const [title, setTitle] = useState<string>("");
const [content, setContent] = useState<string>("");
const [selectPlace, setselectPlace] = useState<string>("");
const [selectedImg, setSelectedImg] = useState<string | null>(null);
const [Class, setSelectClass] = useState<string>("");
const handleChangeImg = (e: React.ChangeEvent<HTMLInputElement>): void => {
const file = e.target.files?.[0];
const reader = new FileReader();
const {
title,
setTitle,
content,
setContent,
selectPlace,
setselectPlace,
Class,
setSelectClass,
selectedImg,
handleChangeImg,
onSubmitHandler,

reader.onload = () => {
setSelectedImg(reader.result as string);
};
if (file) {
reader.readAsDataURL(file);
}
};


const onSubmitHandler = async (e: FormEvent) => {
console.log("hello");
e.preventDefault();

if (!title || !content) {
showToast("error", "제목, 내용을 모두 입력해주세요.");
return;
}

const formData = new FormData();
const data = {
title,
content,
Class
};
formData.append(
"data",
new Blob([JSON.stringify(data)], { type: "application/json" })
);

if (selectPlace === "게시물" && selectedImg) {
formData.append("image", selectedImg);
}

try {
let response;
if (selectPlace === "게시물") {
await axios.post(`#`, formData, {
headers: {
"Content-Type": "multipart/form-data",
},
});
} else if (selectPlace === "대회") {
response = await axios.post("#", formData, {
headers: { "Content-Type": "multipart/form-data" },
});
}
} catch (error) {
console.error("Error:", error);
}

// const handleImageChange = (e: ChangeEvent<HTMLInputElement>) => {
// const selectedImage = e.target.files?.[0];
// setSelectedImage(selectedImage);
// setFileName(selectedImage ? selectedImage.name : null);
// setImageSrc(selectedImage ? URL.createObjectURL(selectedImage) : null);
// };
};
} = UseWrite();
return (

<s.Main>
Expand Down Expand Up @@ -117,6 +65,7 @@ const Sidewrite = () => {
onChange={handleChangeImg}
></s.btnupload>
</s.plustimg>

</s.Tool>

<s.SubmitButtonMain>
Expand Down Expand Up @@ -147,6 +96,7 @@ const Sidewrite = () => {
onChange={(e) => setContent(e.target.value)}
></s.WriteDetail>
</s.WriteDetailMain>

{/* {fileName && <div>{fileName}</div>} */}
</s.WriteForm>
</s.WriteUnder>
Expand Down
79 changes: 79 additions & 0 deletions SOPOLAST/src/hooks/Wirte/useWirte.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import { useState, ChangeEvent, FormEvent } from "react";
import { showToast } from "src/constants/Swal/Swal";
import axios from "axios";
const UseSidewrite = () => {
const [title, setTitle] = useState<string>("");
const [content, setContent] = useState<string>("");
const [selectPlace, setselectPlace] = useState<string>("");
const [selectedImg, setSelectedImg] = useState<string | null>(null);
const [Class, setSelectClass] = useState<string>("");
const handleChangeImg = (e: React.ChangeEvent<HTMLInputElement>): void => {
const file = e.target.files?.[0];
const reader = new FileReader();

reader.onload = () => {
setSelectedImg(reader.result as string);
};
if (file) {
reader.readAsDataURL(file);
}
};


const onSubmitHandler = async (e: FormEvent) => {
console.log("hello");

e.preventDefault();

if (!title || !content) {
showToast("error", "제목, 내용을 모두 입력해주세요.");
return;
}

const formData = new FormData();
const data = {
title,
content,

};
formData.append(
"data",
new Blob([JSON.stringify(data)], { type: "application/json" })
);

if (selectPlace === "게시물" && selectedImg) {
formData.append("image", selectedImg);
}

try {
let response;
if (selectPlace === "게시물") {
await axios.post(`#`, formData, {
headers: {
"Content-Type": "multipart/form-data",
},
});
} else if (selectPlace === "대회") {
response = await axios.post("#", formData, {
headers: { "Content-Type": "multipart/form-data" },
});
}
} catch (error) {
console.error("Error:", error);
}
};
return{
title,
setTitle,
content,
setContent,
selectPlace,
setselectPlace,
Class,
setSelectClass,
selectedImg,
handleChangeImg,
onSubmitHandler,
}
}
export default UseSidewrite

0 comments on commit 496406d

Please sign in to comment.