diff --git a/front/src/components/MessageComponent.tsx b/front/src/components/MessageComponent.tsx
new file mode 100644
index 0000000..f73c525
--- /dev/null
+++ b/front/src/components/MessageComponent.tsx
@@ -0,0 +1,31 @@
+import { Link } from "react-router-dom";
+import { Message, User, Channel } from "../types";
+
+export default function MessageComponent({ message, user, channel, deleteMessage }: {
+ message: Message;
+ user: User | undefined;
+ channel: Channel | undefined;
+ deleteMessage: ((messageId: number) => void) | undefined;
+ }) {
+
+ return (
+
+ {message.username}:{" "}
+ {message.content.split(" ").map((word, index) => {
+ if (word.startsWith("@")) {
+ const mention = message.mentions.find((mention) => `@${mention.username}` === word);
+ if (mention) {
+ return {word} ;
+ }
+ }
+ return {word} ;
+ })}
+ {new Date(message.date * 1000).toLocaleString()}
+ {channel && deleteMessage && (
+ user?.id === message.user_id || user?.id === channel?.owner_id || user?.admin === 1) && (
+ {deleteMessage(message.id)}}>Delete
+ )
+ }
+
+ );
+}
\ No newline at end of file
diff --git a/front/src/pages/ChannelPage.tsx b/front/src/pages/ChannelPage.tsx
index 51605a4..c9658b3 100644
--- a/front/src/pages/ChannelPage.tsx
+++ b/front/src/pages/ChannelPage.tsx
@@ -1,6 +1,7 @@
import { useParams, Link } from "react-router-dom";
import React, { useEffect, useState } from "react";
import { Channel, Messages, User } from "../types";
+import MessageComponent from "../components/MessageComponent";
import axios from "axios";
export default function ChannelPage() {
@@ -105,7 +106,7 @@ export default function ChannelPage() {
Home
Channel {channel.name}
{channel.description}
- Owner: {channel.owner_username}
+ Owner: {channel.owner_username}
{channel.name.toLowerCase().includes("cat") && (
)}
@@ -150,22 +151,13 @@ export default function ChannelPage() {
}
{
diff --git a/front/src/pages/Home.tsx b/front/src/pages/Home.tsx
index c09c973..13aa52f 100644
--- a/front/src/pages/Home.tsx
+++ b/front/src/pages/Home.tsx
@@ -1,6 +1,7 @@
import { useState, useEffect } from "react"
import { Link } from "react-router-dom"
import { Channels, RecentChannels, User, Messages } from "../types"
+import MessageComponent from "../components/MessageComponent"
import axios from "axios"
export default function Home() {
@@ -122,20 +123,13 @@ export default function Home() {
Last messages
diff --git a/front/src/pages/UserPage.tsx b/front/src/pages/UserPage.tsx
index 33f45bc..b3b78c6 100644
--- a/front/src/pages/UserPage.tsx
+++ b/front/src/pages/UserPage.tsx
@@ -1,6 +1,7 @@
import { useParams, Link } from "react-router-dom";
import { useEffect, useState } from "react";
import { User, Messages } from "../types";
+import MessageComponent from "../components/MessageComponent";
import axios from "axios";
export default function UserPage() {
@@ -41,20 +42,13 @@ export default function UserPage() {
Last messages