diff --git a/src/components/chat/MapBar.tsx b/src/components/chat/MapBar.tsx
index 61f7c3f..fe040ff 100644
--- a/src/components/chat/MapBar.tsx
+++ b/src/components/chat/MapBar.tsx
@@ -1,31 +1,28 @@
-import { Flex } from "@chakra-ui/react";
-import { MapContainer, TileLayer } from "react-leaflet";
-import SimpleMarkerBar from "./SimpleMarkerBar";
-import "leaflet/dist/leaflet.css";
+import {Flex} from '@chakra-ui/react';
+import {MapContainer, TileLayer} from 'react-leaflet';
+import SimpleMarkerBar from './SimpleMarkerBar';
+import 'leaflet/dist/leaflet.css';
type MapBarProps = {
lat: string;
lon: string;
name: string;
- align: "left" | "right";
+ align: 'left' | 'right';
};
-export default function MapBar({ lat, lon, name, align }: MapBarProps) {
+export default function MapBar({lat, lon, name}: MapBarProps) {
return (
-
+ center={[Number(lat), Number(lon)]}
+ zoom={13}
+ minZoom={6}
+ zoomControl={false}
+ style={{width: '100%', height: '20rem'}}>
-
+
-
);
}
diff --git a/src/components/chat/Message.tsx b/src/components/chat/Message.tsx
index 1905664..2d0a7f7 100644
--- a/src/components/chat/Message.tsx
+++ b/src/components/chat/Message.tsx
@@ -1,4 +1,4 @@
-import type {Message as MessageType} from '@prisma/client';
+import type {Message as MessageType, User} from '@prisma/client';
import MessageText from '@/components/chat/MessageText';
import React from 'react';
import MessageMap from '@/components/chat/MessageMap';
@@ -6,9 +6,10 @@ import MessageMap from '@/components/chat/MessageMap';
type Props = {
align: "left" | 'right'
message: MessageType
+ user?: User
}
-const Message = ({message, align}: Props) => {
+const Message = ({message, align, user}: Props) => {
if (message.text.match(//g)) {
const regex = /-?\d+\.\d+),lat=(?-?\d+\.\d+),name=(?.+)>/g;
const p = regex.exec(message.text)?.groups as unknown as {
@@ -16,12 +17,10 @@ const Message = ({message, align}: Props) => {
lat: number
name: string
}
- if (p) return
+ if (p) return
}
- return (
-
- )
+ return
}
export default Message;
\ No newline at end of file
diff --git a/src/components/chat/MessageList.tsx b/src/components/chat/MessageList.tsx
index ffce938..ca2905d 100644
--- a/src/components/chat/MessageList.tsx
+++ b/src/components/chat/MessageList.tsx
@@ -1,19 +1,24 @@
-import type {Message as MessageType, User} from '@prisma/client';
+import type {Message as MessageType, User, Chat} from '@prisma/client';
import Message from '@/components/chat/Message';
import {Flex} from '@chakra-ui/react';
type Props = {
user: User,
messages: MessageType[]
+ chat: Chat & { User: User[] }
}
-const MessageList = ({messages, user}: Props) => (
-
- {messages.map((message, index) => ,
- )}
-
-);
+const MessageList = ({messages, user, chat}: Props) => {
+ if (chat?.User)
+ return (
+
+ {messages.map((message, index) =>
+ u.id === message.UserID)}
+ align={user.id === message.UserID ? 'right' : 'left'}
+ key={index} message={message}/>,
+ )}
+
+ );
+};
export default MessageList;
\ No newline at end of file
diff --git a/src/components/chat/MessageMap.tsx b/src/components/chat/MessageMap.tsx
index 0202da8..23b7d7c 100644
--- a/src/components/chat/MessageMap.tsx
+++ b/src/components/chat/MessageMap.tsx
@@ -1,6 +1,7 @@
-import {Box, Flex, Text} from '@chakra-ui/react';
+import {Avatar, Box, Flex, Text} from '@chakra-ui/react';
import dynamic from 'next/dynamic';
+import {User} from '@prisma/client';
const MapBarWithNoSSR = dynamic(() => import('./MapBar'), {
ssr: false,
@@ -13,16 +14,18 @@ type Props = {
lat: string;
name: string;
};
+ user?: User
};
-export default function MessageMap({align, point}: Props) {
+export default function MessageMap({align, point, user}: Props) {
const {lon, lat, name} = point;
return (
-
+
+ {user && align === "left" && }
- {/*{lon}, {lat}, {name}*/}
+ {user && align === "right" && }
);
}
diff --git a/src/components/chat/MessageText.tsx b/src/components/chat/MessageText.tsx
index b542b1a..31c5812 100644
--- a/src/components/chat/MessageText.tsx
+++ b/src/components/chat/MessageText.tsx
@@ -1,17 +1,21 @@
-import {Flex, Text} from '@chakra-ui/react';
+import {Avatar, Flex, Text} from '@chakra-ui/react';
import type {Message as MessageType, User} from '@prisma/client';
type Props = {
align: 'left' | 'right'
- message: MessageType
+ message: MessageType,
+ user?: User
}
-const MessageText = ({message, align}: Props) => (
-
+const MessageText = ({message, align, user}: Props) => (
+
+
+ {user && align === "left" && }
{message.text}
+ {user && align === "right" && }
);
diff --git a/src/pages/chat/[id].tsx b/src/pages/chat/[id].tsx
index 77d52c0..694c2dc 100644
--- a/src/pages/chat/[id].tsx
+++ b/src/pages/chat/[id].tsx
@@ -1,11 +1,10 @@
import {
- Box,
+ Box, Button,
Container,
Flex,
FormControl,
IconButton,
Input,
- Text
} from '@chakra-ui/react';
import Head from 'next/head';
import {websiteName} from '@/lib/constants';
@@ -19,7 +18,8 @@ import {io, Socket} from 'socket.io-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 {ArrowForwardIcon} from '@chakra-ui/icons';
import {FaMapMarkedAlt} from 'react-icons/fa';
export default function ChatId() {
@@ -84,8 +84,8 @@ export default function ChatId() {
-
-
+
+
+
+
);
}
\ No newline at end of file