From f01baf4c2ec9f91f8364c729d87748b7bd50ded7 Mon Sep 17 00:00:00 2001 From: Guillaume Dorce Date: Thu, 3 Nov 2022 10:05:27 +0100 Subject: [PATCH] add edited info on message --- client/src/components/Avatar.tsx | 22 +++++++++++++++------- client/src/components/Message.tsx | 19 +++++++++++-------- prisma/schema.prisma | 1 + src/controller/PostController.ts | 1 + src/models/PostModel.ts | 2 ++ 5 files changed, 30 insertions(+), 15 deletions(-) diff --git a/client/src/components/Avatar.tsx b/client/src/components/Avatar.tsx index 999e36e..d3be981 100644 --- a/client/src/components/Avatar.tsx +++ b/client/src/components/Avatar.tsx @@ -10,17 +10,25 @@ const Avatar = ({ user }: any) => { const [firstLoad, setFirstLoad] = useState(true); if (firstLoad) { - fetch(gravatarUrl).then((response) => { - if (response.status === 200) { - setAvatar(gravatarUrl); - } - setFirstLoad(false); - }); + fetch(gravatarUrl) + .then((response) => { + if (response.ok) { + setAvatar(gravatarUrl); + } + setFirstLoad(false); + }) + .catch((e) => { + setFirstLoad(false); + }); } return (
- avatar + avatar
); }; diff --git a/client/src/components/Message.tsx b/client/src/components/Message.tsx index 0c48a51..26e4378 100644 --- a/client/src/components/Message.tsx +++ b/client/src/components/Message.tsx @@ -40,14 +40,17 @@ const Message = ({ message }: any) => { {message.image && image} -
- {new Date(message.createdAt).toLocaleDateString(undefined, { - year: 'numeric', - month: 'long', - day: 'numeric', - hour: 'numeric', - minute: 'numeric', - })} +
+
+ {new Date(message.createdAt).toLocaleDateString(undefined, { + year: 'numeric', + month: 'long', + day: 'numeric', + hour: 'numeric', + minute: 'numeric', + })} +
+ {message.edited &&
Modifié
}
{me.data?.id === message.author.id ? null : ( => { data: { content: post.content, image: post.image, + edited: true, }, }); diff --git a/src/models/PostModel.ts b/src/models/PostModel.ts index 4397d65..b7c60ce 100644 --- a/src/models/PostModel.ts +++ b/src/models/PostModel.ts @@ -8,6 +8,7 @@ interface Post { authorId: number; likes?: number | undefined; likedBy?: Like[] | undefined; + edited?: boolean | undefined; } const Post: z.ZodType = z.object({ @@ -17,6 +18,7 @@ const Post: z.ZodType = z.object({ authorId: z.number(), likes: z.number().optional(), likedBy: z.array(Like).optional(), + edited: z.boolean().optional(), }); export { Post };