From 7f84cfd9fedd4d07f2d331730bec1b0bab0794e2 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Date: Thu, 30 Nov 2023 10:34:54 +0100
Subject: [PATCH] Bug 32474: Store the selected option label

It prevents the label to be removed when the selected option is not
longer in the item list.

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
---
 .../prog/js/vue/components/InfiniteScrollSelect.vue       | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/InfiniteScrollSelect.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/InfiniteScrollSelect.vue
index 9dac42b8087..b997db532b6 100644
--- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/InfiniteScrollSelect.vue
+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/InfiniteScrollSelect.vue
@@ -7,6 +7,7 @@
         :reduce="item => item[dataIdentifier]"
         @open="onOpen"
         @close="onClose"
+        @option:selected="onSelected"
         @search="searchFilter($event)"
         ref="select"
     >
@@ -18,6 +19,9 @@
                 v-on="events"
             />
         </template>
+        <template #selected-option="option">
+            {{ selectedOptionLabel }}
+        </template>
         <template #list-footer>
             <li v-show="hasNextPage && !this.search" ref="load">
                 {{ $__("Loading more options...") }}
@@ -48,6 +52,7 @@ export default {
             scrollPage: null,
             data: [this.selectedData],
             paginationRequired: false,
+            selectedOptionLabel: this.selectedData[this.label],
         }
     },
     computed: {
@@ -131,6 +136,9 @@ export default {
         onClose() {
             this.observer.disconnect()
         },
+        onSelected(option) {
+            this.selectedOptionLabel = option[this.label]
+        },
         async infiniteScroll([{ isIntersecting, target }]) {
             setTimeout(async () => {
                 if (isIntersecting) {
-- 
2.34.1