Commit 2ddaecff authored by 권병윤's avatar 권병윤
Browse files

0807

parent 7c53066a
...@@ -25,6 +25,11 @@ const changename = async (payload) => { ...@@ -25,6 +25,11 @@ const changename = async (payload) => {
return data; return data;
} }
const roomApi = { getRoom, exitRoom, create, join, changename }; const profileimg = async (formData) => {
const { data } = await axios.put("/api/room/profileimg", formData);
return data;
};
const roomApi = { getRoom, exitRoom, create, join, changename, profileimg };
export default roomApi; export default roomApi;
...@@ -22,6 +22,7 @@ const CreateRoom = () => { ...@@ -22,6 +22,7 @@ const CreateRoom = () => {
function handleChange(event) { function handleChange(event) {
const { name, value, files } = event.target; const { name, value, files } = event.target;
console.log(event.target)
if (files) { if (files) {
setRoom({ ...room, [name]: files[0] }) setRoom({ ...room, [name]: files[0] })
} else { } else {
......
import { useParams } from "react-router";
import Createchannel from "./Createchannel";
import Deletechannel from "./Deletechannel";
const Channelsettingchange = (props) => {
const { roomId } = useParams();
console.log(props);
console.log(roomId);
return (
<div>
<button
type="submit"
data-bs-toggle="modal"
data-bs-target="#changechannel"
style={{
weight: "100px",
height: "60px",
backgroundColor: "#f5cfe3",
borderRadius: "5px",
color: "black",
border: "1px #f5cfe3",
}}
>
채널 설정 변경{/* 방 설정 변경으로 바꾸기 */}
</button>
<div
className="modal fade"
id="changechannel"
tabIndex="-1"
aria-labelledby="changechannelsettingLabel"
aria-hidden="true"
>
<div className="modal-dialog">
<div className="modal-content">
<div className="modal-header">
<div className="modal-title" id="changechannelsetting">
채널 설정 변경
</div>
{/* <Createchannel />
<Deletechannel /> */}
<button
type="button"
className="btn-close"
data-bs-dismiss="modal"
aria-label="Close"
></button>
</div>
</div>
</div>
</div>
</div>
);
};
export default Channelsettingchange;
/* 만들 채널의 이름을 입력받고(지금부터 "이름"이라 하자.), 그걸로 {"이름": []}의 형태로 체널을 만든다. 그후, 그 json파일을 현재 roomId의 channel에 추가한다. */
const Createchannel = () => {
return (
<div>
</div>
);
};
export default Createchannel;
\ No newline at end of file
/* 삭제할 채널의 이름을 입력받아서 일치하는 채널이름이 있으면 삭제하고, 없으면 그런 이름의 채널이 존재하지 않는다고 알림창을 띄운다. */
const Deletechannel = () => {
return (
<div>
</div>
);
};
export default Deletechannel;
\ No newline at end of file
...@@ -4,7 +4,8 @@ import ChannelSingle from "./ChannelSingle"; ...@@ -4,7 +4,8 @@ import ChannelSingle from "./ChannelSingle";
import RoomApi from "../../apis/room.api"; import RoomApi from "../../apis/room.api";
import catchErrors from "../../context/catchError"; import catchErrors from "../../context/catchError";
import KakaoShareButton from "../KakaoShareButton"; import KakaoShareButton from "../KakaoShareButton";
import Roomnamechange from "./Roomnamechange"; import Roomsettingchange from "./Roomsettingchange";
import Channelsettingchange from "./Channelsettingchange";
const INIT_ROOM = { const INIT_ROOM = {
name: "", name: "",
...@@ -15,6 +16,7 @@ const INIT_CHANNEL = { ...@@ -15,6 +16,7 @@ const INIT_CHANNEL = {
channelName: "", channelName: "",
joinName: [], joinName: [],
}; };
const RightHamburger = () => { const RightHamburger = () => {
const [channel, setChannel] = useState([INIT_CHANNEL]); const [channel, setChannel] = useState([INIT_CHANNEL]);
const [room, setRoom] = useState([INIT_ROOM]); const [room, setRoom] = useState([INIT_ROOM]);
...@@ -245,21 +247,8 @@ const RightHamburger = () => { ...@@ -245,21 +247,8 @@ const RightHamburger = () => {
</div> </div>
<div className="row mb-3"> <div className="row mb-3">
<div className="d-flex justify-content-evenly"> <div className="d-flex justify-content-evenly">
{/* <button <Roomsettingchange />
type="submit" <Channelsettingchange channel={channel} />
data-bs-dismiss="modal"
style={{
weight: "100px",
height: "60px",
backgroundColor: "#f5cfe3",
borderRadius: "5px",
color: "black",
border: "1px #f5cfe3",
}}
>
채널 이름 변경
</button> */}
<Roomnamechange />
</div> </div>
</div> </div>
</div> </div>
......
...@@ -6,9 +6,10 @@ import catchErrors from "../../context/catchError"; ...@@ -6,9 +6,10 @@ import catchErrors from "../../context/catchError";
const INIT_Room = { const INIT_Room = {
id: "", id: "",
name: "", name: "",
profileimg: "",
}; };
const Roomnamechange = () => { const Roomsettingchange = () => {
const { roomId } = useParams(); const { roomId } = useParams();
const [Room, setRoom] = useState(INIT_Room); const [Room, setRoom] = useState(INIT_Room);
const [error, setError] = useState(""); const [error, setError] = useState("");
...@@ -17,7 +18,7 @@ const Roomnamechange = () => { ...@@ -17,7 +18,7 @@ const Roomnamechange = () => {
async function getdata(Roomdata) { async function getdata(Roomdata) {
try { try {
const data = await RoomApi.getRoom(Roomdata); const data = await RoomApi.getRoom([Roomdata]);
setRoom(data); setRoom(data);
console.log(data); console.log(data);
} catch (error) { } catch (error) {
...@@ -31,10 +32,29 @@ const Roomnamechange = () => { ...@@ -31,10 +32,29 @@ const Roomnamechange = () => {
const updateinfo = (event) => { const updateinfo = (event) => {
const { name, value } = event.target; const { name, value } = event.target;
setRoom({ ...Room, [name]: value }); setRoom({ ...Room, [name]: value });
console.log(Room); };
const handleChange = async (event) => {
const { files } = event.target;
console.log("files:", files);
let formData = new FormData();
formData.append("profileimg", files[0]);
formData.append("id", roomId);
try {
const res = await RoomApi.profileimg(formData);
// if (files) {
// setRoom({ ...Room, profileimg: res });
// } else {
// setRoom();
// }
} catch (error) {
catchErrors(error, setError);
}
}; };
const changeinfo = async (event) => { const changeinfo = async (event) => {
window.location.reload();
// window.location.href = window.location.href;
const req = await RoomApi.changename(Room); const req = await RoomApi.changename(Room);
}; };
...@@ -53,7 +73,7 @@ const Roomnamechange = () => { ...@@ -53,7 +73,7 @@ const Roomnamechange = () => {
border: "1px #f5cfe3", border: "1px #f5cfe3",
}} }}
> >
이름 변경 설정 변경{/* 방 설정 변경으로 바꾸기 */}
</button> </button>
<div <div
...@@ -66,6 +86,9 @@ const Roomnamechange = () => { ...@@ -66,6 +86,9 @@ const Roomnamechange = () => {
<div className="modal-dialog"> <div className="modal-dialog">
<div className="modal-content"> <div className="modal-content">
<div className="modal-header"> <div className="modal-header">
<div className="modal-title" id="changeRoomsetting">
설정 변경
</div>
<button <button
type="button" type="button"
className="btn-close" className="btn-close"
...@@ -75,9 +98,26 @@ const Roomnamechange = () => { ...@@ -75,9 +98,26 @@ const Roomnamechange = () => {
</div> </div>
<div className="modal-body d-flex justify-content-center"></div> <div className="modal-body d-flex justify-content-center"></div>
<div className="row mb-3"> <div className="row mb-3">
<div className="d-flex justify-content-center" style={{ margin:"0px"}}> <div
className="d-flex justify-content-center"
style={{ margin: "0px" }}
>
<input
type="file"
className="upload-hidden"
onChange={handleChange}
accept="image/*"
name="profileimg"
/>
</div>
<div
className="d-flex justify-content-center"
style={{ margin: "0px" }}
>
{/* <Link to="/user/:id"> */} {/* <Link to="/user/:id"> */}
<p style={{marginTop: "31px", marginBottom: "0px"}}> 이름: </p> <p style={{ marginTop: "31px", marginBottom: "0px" }}>
이름:{" "}
</p>
<input <input
onChange={updateinfo} onChange={updateinfo}
name="name" name="name"
...@@ -95,11 +135,11 @@ const Roomnamechange = () => { ...@@ -95,11 +135,11 @@ const Roomnamechange = () => {
height: "38px", height: "38px",
width: "130px", width: "130px",
marginTop: "0px", marginTop: "0px",
marginBottom: "0px" marginBottom: "0px",
}} }}
/> />
</div> </div>
<div className="d-flex justify-content-evenly"> <div className="d-flex justify-content-evenly">
{/* <Link to={`/room/${roomId}/${Room.channel}`}> */} {/* <Link to={`/room/${roomId}/${Room.channel}`}> */}
<button <button
onClick={changeinfo} onClick={changeinfo}
...@@ -125,4 +165,4 @@ const Roomnamechange = () => { ...@@ -125,4 +165,4 @@ const Roomnamechange = () => {
); );
}; };
export default Roomnamechange; export default Roomsettingchange;
import Header from "../components/Header"; import Header from "../components/Header";
import { useState, useEffect } from "react";
import { useParams } from "react-router";
import roomApi from "../apis/room.api";
import userApi from "../apis/user.api";
import catchErrors from "../context/catchError";
const INIT_PROFILE = {
id: "",
roomNumber: ""
};
// userapi로 유저정보 불러다가, 참여방 목록에 그 방아이디 추가하고, 방에도 그 유저 아이디 추가한 다음에 참가시키기.
const InvitePage = () => { const InvitePage = () => {
const [profile, setProfile] = useState([INIT_PROFILE]);
const [success, setSuccess] = useState(false);
const [error,setError]=useState("");
const usercheck = localStorage.getItem("user"); const usercheck = localStorage.getItem("user");
const {roomId} = useParams();
async function getProfile(userID) {
try {
const data = await userApi.getUser(userID);
setProfile(data);
} catch (error) {
catchErrors(error, setError);
}
}
async function joinroom(userId,roomId) {
try {
// setLoading(true);
setError("");
const data = await roomApi.join({ userId: userId, roomId: roomId });
console.log('서버연결됬나요', data)
setSuccess(true);
} catch (error) {
catchErrors(error, setError);
} finally {
// setLoading(false);
}
}
useEffect(() => {
getProfile(usercheck);
}, []);
function goInvitedroom() { function goInvitedroom() {
let check1= null; let check1= null;
let check2= null; let check2= null;
console.log(usercheck);
if (usercheck) if (usercheck)
check1 = window.confirm("카카오톡으로 전달된 초대코드를 사용해 참여해 주세요") joinroom(usercheck,roomId);
if(check1) if(success)
window.location.href=`/user/${usercheck}` check1 = window.confirm("방 참여가 완료되었습니다.")
if(check1)
window.location.href=`/user/${usercheck}`
else else
check2 = window.confirm("로그인이 필요합니다.") check2 = window.confirm("로그인이 필요합니다.")
if(check2) if(check2)
......
...@@ -46,6 +46,21 @@ const joinRoom = async (req, res) => { ...@@ -46,6 +46,21 @@ const joinRoom = async (req, res) => {
const upLoadRoomImg = multer({ dest: "roomUploads/" }); const upLoadRoomImg = multer({ dest: "roomUploads/" });
const roomImgUpload = upLoadRoomImg.fields([{ name: "profileimg", maxCount: 1 }]); const roomImgUpload = upLoadRoomImg.fields([{ name: "profileimg", maxCount: 1 }]);
const update = async (req, res) => {
try {
console.log("id:", req.body.id);
const id = req.body.id;//roomId
const avatar = req.files["profileimg"][0];//profileimg
const img = avatar.filename;
console.log(img);
await Room.update({ profileimg: img }, { where: { id: id } });
res.json(img);
} catch (error) {
console.log(error);
res.status(500).send("이미지 업데이트 실패");
}
};
const createRoom = async (req, res) => { const createRoom = async (req, res) => {
const { userId, name } = req.body; const { userId, name } = req.body;
const avatar = req.files["profileimg"][0]; const avatar = req.files["profileimg"][0];
...@@ -133,5 +148,5 @@ const changename = async (req,res) => { ...@@ -133,5 +148,5 @@ const changename = async (req,res) => {
}; };
export default { export default {
joinRoom, roomImgUpload, createRoom, getRoom, exitRoom, changename joinRoom, roomImgUpload, update, createRoom, getRoom, exitRoom, changename
}; };
...@@ -7,5 +7,6 @@ router.route("/exitRoom/:id/:roomId").delete(roomCrtl.exitRoom); ...@@ -7,5 +7,6 @@ router.route("/exitRoom/:id/:roomId").delete(roomCrtl.exitRoom);
router.route("/create").post(roomCrtl.roomImgUpload, roomCrtl.createRoom); router.route("/create").post(roomCrtl.roomImgUpload, roomCrtl.createRoom);
router.route("/join").put(roomCrtl.joinRoom); router.route("/join").put(roomCrtl.joinRoom);
router.route("/changename").put(roomCrtl.changename); router.route("/changename").put(roomCrtl.changename);
router.route("/profileimg").put(roomCrtl.roomImgUpload, roomCrtl.update)
export default router; export default router;
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment