From 1624109337a9d936e5bfac160b05170282b9a905 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=A0s?= Date: Sun, 21 May 2023 20:31:05 +0200 Subject: [PATCH] Edit map button in chat Took 13 minutes --- .../layout/dashboard/left_panel/LeftPanel.tsx | 12 +++---- src/pages/chat/[id].tsx | 36 +++++++++++++------ 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/components/layout/dashboard/left_panel/LeftPanel.tsx b/src/components/layout/dashboard/left_panel/LeftPanel.tsx index 1badb23..f81a929 100644 --- a/src/components/layout/dashboard/left_panel/LeftPanel.tsx +++ b/src/components/layout/dashboard/left_panel/LeftPanel.tsx @@ -59,26 +59,22 @@ export default function LeftPanel(props) { direction={"column"} mt={"1vh"} spacing={3.5} - alignContent={"bottom"} - > + alignContent={"bottom"}> } - onClickHandler={() => router.push("/map")} - > + onClickHandler={() => router.push("/map")}> Carte } - onClickHandler={() => router.push("/profile")} - > + onClickHandler={() => router.push("/profile")}> Profil } - onClickHandler={() => signOut({ callbackUrl: "/" })} - > + onClickHandler={() => signOut({ callbackUrl: "/" })}> Déconnexion diff --git a/src/pages/chat/[id].tsx b/src/pages/chat/[id].tsx index 99a3016..77d52c0 100644 --- a/src/pages/chat/[id].tsx +++ b/src/pages/chat/[id].tsx @@ -5,6 +5,7 @@ import { FormControl, IconButton, Input, + Text } from '@chakra-ui/react'; import Head from 'next/head'; import {websiteName} from '@/lib/constants'; @@ -15,22 +16,36 @@ import {useEffect, useRef, useState} from 'react'; import MessageList from '@/components/chat/MessageList'; import {io, Socket} from 'socket.io-client'; -import {Message, User} from '@prisma/client'; +import {Chat, Message, User} from '@prisma/client'; import LoadingPage from '@/components/LoadingPage'; import Navbar from '@/components/Navbar'; import {ArrowForwardIcon, CalendarIcon} from '@chakra-ui/icons'; +import {FaMapMarkedAlt} from 'react-icons/fa'; export default function ChatId() { const router = useRouter(); const {data: session, status} = useSession({required: true}); const {id: chatId} = router.query; + const [chatInfo, setChatInfo] = useState(); + const [otherUser, setOtherUser] = useState() const [messages, setMessages] = useState([]); const [text, setText] = useState(''); const [socket, setSocket] = useState(); useEffect(() => { - if (status === 'authenticated') socketInitializer(); + if (status === 'authenticated' && session) { + const user = session.user as User + + socketInitializer(); + fetch(`/api/chats/${chatId}?include=User`) + .then(res => res.json()) + .then((chat: Chat & { User: User[] }) => { + setChatInfo(chat); + const other = chat.User.find(u => u.id !== user.id); + setOtherUser(other) + }); + } }, [status]); const socketInitializer = () => { @@ -49,7 +64,7 @@ export default function ChatId() { }; const handleSubmit = (evt) => { - evt.preventDefault() + evt.preventDefault(); if (text !== '' && socket && session?.user) { socket.emit('createdMessage', {text, sender: session.user.id}); setText(''); @@ -69,19 +84,20 @@ export default function ChatId() { - +
- - + setText(evt.target.value)}/> - { + { evt.preventDefault(); - router.push("/map"); - }} icon={} variant={"outline"}/> - } type={"submit"}/> + router.push('/map'); + }} icon={} variant={'outline'}/> + } type={'submit'}/>