From 31ce2b530542bb1b075af9ce2362249c5be78f13 Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Thu, 9 Nov 2023 17:48:03 +0200
Subject: [PATCH] Fix selected users visibility

---
 .../feature/select_users/SelectUsersFragment.kt  | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/core/src/main/java/org/futo/circles/core/feature/select_users/SelectUsersFragment.kt b/core/src/main/java/org/futo/circles/core/feature/select_users/SelectUsersFragment.kt
index c46793392..7b347a898 100644
--- a/core/src/main/java/org/futo/circles/core/feature/select_users/SelectUsersFragment.kt
+++ b/core/src/main/java/org/futo/circles/core/feature/select_users/SelectUsersFragment.kt
@@ -13,9 +13,9 @@ import org.futo.circles.core.databinding.FragmentSelectUsersBinding
 import org.futo.circles.core.extensions.getQueryTextChangeStateFlow
 import org.futo.circles.core.extensions.observeData
 import org.futo.circles.core.extensions.setIsVisible
-import org.futo.circles.core.model.NoResultsItem
 import org.futo.circles.core.feature.select_users.list.search.InviteMembersSearchListAdapter
 import org.futo.circles.core.feature.select_users.list.selected.SelectedUsersListAdapter
+import org.futo.circles.core.model.NoResultsItem
 
 @AndroidEntryPoint
 class SelectUsersFragment : Fragment(R.layout.fragment_select_users) {
@@ -50,16 +50,26 @@ class SelectUsersFragment : Fragment(R.layout.fragment_select_users) {
 
     private fun setupObservers() {
         viewModel.searchUsersLiveData.observeData(this) { items ->
-            binding.lSelectedItems.setIsVisible(items.firstOrNull { it is NoResultsItem } == null)
             searchListAdapter.submitList(items)
+            handleSelectUsersMessageVisibility()
         }
         viewModel.selectedUsersLiveData.observeData(this) { items ->
             selectedUsersListAdapter.submitList(items)
-            binding.tvSelectedUsersPlaceholder.setIsVisible(items.isEmpty())
             selectUsersListener?.onUserSelected(items.map { it.id })
+            handleSelectUsersMessageVisibility()
         }
     }
 
+    private fun handleSelectUsersMessageVisibility() {
+        binding.lSelectedItems.setIsVisible(
+            viewModel.searchUsersLiveData.value?.firstOrNull { it is NoResultsItem } == null ||
+                    viewModel.selectedUsersLiveData.value?.isNotEmpty() == true
+        )
+        binding.tvSelectedUsersPlaceholder.setIsVisible(
+            viewModel.selectedUsersLiveData.value?.isEmpty() == true
+        )
+    }
+
     companion object {
         private const val ROOM_ID = "roomId"
         fun create(roomId: String?) = SelectUsersFragment().apply {
-- 
GitLab