From 153d43947c0c87f199faee6203992c9f342874d6 Mon Sep 17 00:00:00 2001 From: Brieuc Dubois <git@bhasher.com> Date: Fri, 8 Nov 2024 17:05:47 +0200 Subject: [PATCH] Fix #102 #126 --- .../lib/components/sessions/message.svelte | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/frontend/src/lib/components/sessions/message.svelte b/frontend/src/lib/components/sessions/message.svelte index 6e1637df..bf252035 100644 --- a/frontend/src/lib/components/sessions/message.svelte +++ b/frontend/src/lib/components/sessions/message.svelte @@ -86,6 +86,7 @@ } function onTextSelect() { + if (isEdit) return; const selection = window.getSelection(); if (!selection || selection.rangeCount < 1 || !hightlight) return; const range = selection.getRangeAt(0); @@ -167,39 +168,15 @@ class="rounded-full" /> </div> - <!-- prettier-ignore --> - <div - class="chat-bubble whitespace-pre-wrap text-black" - class:bg-blue-200={isSender} - class:bg-gray-300={!isSender} - > - <div contenteditable={isEdit} bind:this={contentDiv} class:bg-blue-200={isEdit}> - {#each parts as part} - {#if part.feedback && !isEdit} - {#if part.feedback.content} - <span class="tooltip tooltip-accent" data-tip={part.feedback.content} - ><!-- - --><span class="underline decoration-wavy decoration-blue-500 hover:cursor-help" - ><!-- - -->{part.text}<!-- - --></span - ><!-- - --></span - > - {:else} - <span class="underline decoration-wavy decoration-red-500 decoration-1" - ><!-- - -->{part.text}<!-- - --></span - > - {/if} - {:else} - <!-- eslint-disable-next-line svelte/no-at-html-tags --> - {@html linkifyHtml(sanitize(part.text), { className: 'underline', target: '_blank' })} - {/if} - {/each} - </div><!-- - -->{#if isEdit} + <div class="chat-bubble text-black" class:bg-blue-200={isSender} class:bg-gray-300={!isSender}> + {#if isEdit} + <div + contenteditable="true" + bind:this={contentDiv} + class="bg-blue-200 whitespace-pre-wrap min-h-8" + > + {message.content} + </div> <button class="float-end border rounded-full px-4 py-2 mt-2 bg-white text-blue-700" on:click={() => endEdit()} @@ -212,7 +189,32 @@ > {$t('button.cancel')} </button> - {/if}{#if isSender} + {:else} + <div class="whitespace-pre-wrap" bind:this={contentDiv}> + {#each parts as part} + {#if isEdit || !part.feedback} + {@html linkifyHtml(sanitize(part.text), { className: 'underline', target: '_blank' })} + {:else if part.feedback.content} + <span class="tooltip tooltip-accent" data-tip={part.feedback.content} + ><!-- + --><span class="underline decoration-wavy decoration-blue-500 hover:cursor-help" + ><!-- + -->{part.text}<!-- + --></span + ><!-- + --></span + > + {:else} + <span class="underline decoration-wavy decoration-red-500 decoration-1" + ><!-- + -->{part.text}<!-- + --></span + > + {/if} + {/each} + </div> + {/if} + {#if isSender} <button class="absolute bottom-2 left-[-1.5rem] invisible group-hover:visible" on:click={() => (isEdit ? endEdit() : startEdit())} -- GitLab