From 2a0fdeedd633d2c02d6dc6ffdf14c72f1c47cea3 Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Wed, 13 Sep 2023 01:46:26 +0530 Subject: [PATCH] chore: show spinner when loading vault collaboration info --- .../Vaults/VaultModal/EditVaultModal.tsx | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults/VaultModal/EditVaultModal.tsx b/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults/VaultModal/EditVaultModal.tsx index 01a44baf2..ebdfaea1f 100644 --- a/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults/VaultModal/EditVaultModal.tsx +++ b/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults/VaultModal/EditVaultModal.tsx @@ -24,6 +24,7 @@ import Popover from '@/Components/Popover/Popover' import IconPicker from '@/Components/Icon/IconPicker' import ModalOverlay from '@/Components/Modal/ModalOverlay' import { Disclosure, DisclosureContent, useDisclosureStore } from '@ariakit/react' +import Spinner from '@/Components/Spinner/Spinner' const EditVaultModalContent: FunctionComponent<{ existingVaultUuid?: string @@ -38,6 +39,7 @@ const EditVaultModalContent: FunctionComponent<{ const [iconString, setIconString] = useState('safe-square') const [members, setMembers] = useState([]) const [invites, setInvites] = useState([]) + const [isLoadingCollaborationInfo, setIsLoadingCollaborationInfo] = useState(false) const [isAdmin, setIsAdmin] = useState(true) const [passwordType, setPasswordType] = useState(KeySystemPasswordType.Randomized) const [keyStorageMode, setKeyStorageMode] = useState(KeySystemRootKeyStorageMode.Synced) @@ -66,6 +68,7 @@ const EditVaultModalContent: FunctionComponent<{ existingVault.isSharedVaultListing() && application.vaultUsers.isCurrentUserSharedVaultAdmin(existingVault), ) + setIsLoadingCollaborationInfo(true) const users = await application.vaultUsers.getSharedVaultUsers(existingVault) if (users) { setMembers(users) @@ -75,6 +78,7 @@ const EditVaultModalContent: FunctionComponent<{ if (!isClientDisplayableError(invites)) { setInvites(invites) } + setIsLoadingCollaborationInfo(false) } }, [application, existingVault]) @@ -233,7 +237,7 @@ const EditVaultModalContent: FunctionComponent<{ return ( -
+
Vault Info
The vault name and description are end-to-end encrypted.
@@ -287,12 +291,28 @@ const EditVaultModalContent: FunctionComponent<{ }} />
- {existingVault && canShowMembers && ( - - )} - {existingVault && invites.length > 0 && ( - - )} + {existingVault ? ( + isLoadingCollaborationInfo ? ( +
+ + Loading collaboration info... +
+ ) : ( + <> + {canShowMembers && ( + + )} + {invites.length > 0 && ( + + )} + + ) + ) : null}