nsarrazin HF Staff commited on
Commit
fb9fe6d
·
1 Parent(s): 9c8e5e0

fix: force rerender on message ID change

Browse files
src/lib/components/chat/ChatMessage.svelte CHANGED
@@ -529,65 +529,68 @@
529
  {/if}
530
 
531
  {#if nChildren > 0}
532
- <svelte:self
533
- {loading}
534
- {messages}
535
- {isAuthor}
536
- {readOnly}
537
- {model}
538
- id={messages.find((m) => m.id === id)?.children?.[childrenToRender]}
539
- on:retry
540
- on:vote
541
- on:continue
542
- >
543
- <svelte:fragment slot="childrenNav">
544
- {#if nChildren > 1 && $convTreeStore.editing === null}
545
- <div
546
- class="font-white group/navbranch z-10 -mt-1 ml-3.5 mr-auto flex h-6 w-fit select-none flex-row items-center justify-center gap-1 text-sm"
547
- >
548
- <button
549
- class="inline text-lg font-thin text-gray-400 hover:text-gray-800 disabled:pointer-events-none disabled:opacity-25 dark:text-gray-500 dark:hover:text-gray-200"
550
- on:click={() => (childrenToRender = Math.max(0, childrenToRender - 1))}
551
- disabled={childrenToRender === 0 || loading}
552
- >
553
- <CarbonChevronLeft class="text-sm" />
554
- </button>
555
- <span class=" text-gray-400 dark:text-gray-500">
556
- {childrenToRender + 1} / {nChildren}
557
- </span>
558
- <button
559
- class="inline text-lg font-thin text-gray-400 hover:text-gray-800 disabled:pointer-events-none disabled:opacity-25 dark:text-gray-500 dark:hover:text-gray-200"
560
- on:click={() =>
561
- (childrenToRender = Math.min(
562
- message?.children?.length ?? 1 - 1,
563
- childrenToRender + 1
564
- ))}
565
- disabled={childrenToRender === nChildren - 1 || loading}
566
  >
567
- <CarbonChevronRight class="text-sm" />
568
- </button>
569
- {#if !loading && message.children}<form
570
- method="POST"
571
- action="?/deleteBranch"
572
- class="hidden group-hover/navbranch:block"
573
- use:enhance={({ cancel }) => {
574
- if (!confirm("Are you sure you want to delete this branch?")) {
575
- cancel();
576
- }
577
- }}
578
  >
579
- <input name="messageId" value={message.children[childrenToRender]} type="hidden" />
580
- <button
581
- class="flex items-center justify-center text-xs text-gray-400 hover:text-gray-800 dark:text-gray-500 dark:hover:text-gray-200"
582
- type="submit"
583
- ><CarbonTrashCan />
584
- </button>
585
- </form>
586
- {/if}
587
- </div>
588
- {/if}
589
- </svelte:fragment>
590
- </svelte:self>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
591
  {/if}
592
 
593
  <style>
 
529
  {/if}
530
 
531
  {#if nChildren > 0}
532
+ {@const messageId = messages.find((m) => m.id === id)?.children?.[childrenToRender]}
533
+ {#key messageId}
534
+ <svelte:self
535
+ {loading}
536
+ {messages}
537
+ {isAuthor}
538
+ {readOnly}
539
+ {model}
540
+ id={messageId}
541
+ on:retry
542
+ on:vote
543
+ on:continue
544
+ >
545
+ <svelte:fragment slot="childrenNav">
546
+ {#if nChildren > 1 && $convTreeStore.editing === null}
547
+ <div
548
+ class="font-white group/navbranch z-10 -mt-1 ml-3.5 mr-auto flex h-6 w-fit select-none flex-row items-center justify-center gap-1 text-sm"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
549
  >
550
+ <button
551
+ class="inline text-lg font-thin text-gray-400 hover:text-gray-800 disabled:pointer-events-none disabled:opacity-25 dark:text-gray-500 dark:hover:text-gray-200"
552
+ on:click={() => (childrenToRender = Math.max(0, childrenToRender - 1))}
553
+ disabled={childrenToRender === 0 || loading}
 
 
 
 
 
 
 
554
  >
555
+ <CarbonChevronLeft class="text-sm" />
556
+ </button>
557
+ <span class=" text-gray-400 dark:text-gray-500">
558
+ {childrenToRender + 1} / {nChildren}
559
+ </span>
560
+ <button
561
+ class="inline text-lg font-thin text-gray-400 hover:text-gray-800 disabled:pointer-events-none disabled:opacity-25 dark:text-gray-500 dark:hover:text-gray-200"
562
+ on:click={() =>
563
+ (childrenToRender = Math.min(
564
+ message?.children?.length ?? 1 - 1,
565
+ childrenToRender + 1
566
+ ))}
567
+ disabled={childrenToRender === nChildren - 1 || loading}
568
+ >
569
+ <CarbonChevronRight class="text-sm" />
570
+ </button>
571
+ {#if !loading && message.children}<form
572
+ method="POST"
573
+ action="?/deleteBranch"
574
+ class="hidden group-hover/navbranch:block"
575
+ use:enhance={({ cancel }) => {
576
+ if (!confirm("Are you sure you want to delete this branch?")) {
577
+ cancel();
578
+ }
579
+ }}
580
+ >
581
+ <input name="messageId" value={message.children[childrenToRender]} type="hidden" />
582
+ <button
583
+ class="flex items-center justify-center text-xs text-gray-400 hover:text-gray-800 dark:text-gray-500 dark:hover:text-gray-200"
584
+ type="submit"
585
+ ><CarbonTrashCan />
586
+ </button>
587
+ </form>
588
+ {/if}
589
+ </div>
590
+ {/if}
591
+ </svelte:fragment>
592
+ </svelte:self>
593
+ {/key}
594
  {/if}
595
 
596
  <style>