From 4fdefd7e4d1da81db4291435faeecf8704d89786 Mon Sep 17 00:00:00 2001
From: Brieuc Dubois <git@bhasher.com>
Date: Wed, 9 Oct 2024 13:56:14 +0300
Subject: [PATCH] Fix #102

---
 frontend/src/lib/components/sessions/message.svelte | 3 +--
 frontend/src/lib/types/message.ts                   | 5 ++++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/frontend/src/lib/components/sessions/message.svelte b/frontend/src/lib/components/sessions/message.svelte
index fe1c8d65..50926294 100644
--- a/frontend/src/lib/components/sessions/message.svelte
+++ b/frontend/src/lib/components/sessions/message.svelte
@@ -8,7 +8,6 @@
 	import { onMount } from 'svelte';
 	import SpellCheck from '$lib/components/icons/spellCheck.svelte';
 	import ChatBubble from '../icons/chatBubble.svelte';
-	import { get } from 'svelte/store';
 	import type Feedback from '$lib/types/feedback';
 	import linkifyHtml from 'linkify-html';
 	import { sanitize } from '$lib/utils/sanitize';
@@ -177,7 +176,7 @@
 	>
 		<div contenteditable={isEdit} bind:this={contentDiv} class:bg-blue-900={isEdit}>
 			{#each parts as part}
-				{#if part.feedback}
+				{#if part.feedback && !isEdit}
 					{#if part.feedback.content}
 						<span class="tooltip tooltip-accent" data-tip={part.feedback.content}
 							><!--
diff --git a/frontend/src/lib/types/message.ts b/frontend/src/lib/types/message.ts
index cc13714c..2da26f4a 100644
--- a/frontend/src/lib/types/message.ts
+++ b/frontend/src/lib/types/message.ts
@@ -2,7 +2,7 @@ import Session from './session';
 import User from './user';
 import { updateMessageAPI, createMessageFeedbackAPI } from '$lib/api/sessions';
 import { toastAlert } from '$lib/utils/toasts';
-import { writable, type Writable } from 'svelte/store';
+import { get, writable, type Writable } from 'svelte/store';
 import Feedback from './feedback';
 import { parseToLocalDate } from '$lib/utils/date';
 
@@ -77,12 +77,14 @@ export default class Message {
 		this._versions.update((v) => [...v, { content: content, date: new Date() }]);
 		this._content = content;
 		this._edited = true;
+		this.feedbacks.set([]);
 
 		return true;
 	}
 
 	async localUpdate(content: string, force: boolean = false): Promise<boolean> {
 		this._content = content;
+		this.feedbacks.set([]);
 		if (!force) this._edited = true;
 
 		return true;
@@ -181,6 +183,7 @@ export default class Message {
 				prev._content = m.content;
 				prev._id = m.id;
 				prev._edited = true;
+				prev.feedbacks.set(get(m.feedbacks));
 			}
 		}
 
-- 
GitLab