diff --git a/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults.tsx b/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults.tsx index 29a3903e9..c71175386 100644 --- a/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults.tsx +++ b/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults.tsx @@ -14,6 +14,7 @@ import { ContentType, SharedVaultServiceEvent, VaultUserServiceEvent, + RoleName, } from '@standardnotes/snjs' import VaultItem from './Vaults/VaultItem' import Button from '@/Components/Button/Button' @@ -21,11 +22,14 @@ import InviteItem from './Invites/InviteItem' import EditVaultModal from './Vaults/VaultModal/EditVaultModal' import PreferencesPane from '../../PreferencesComponents/PreferencesPane' import { ToastType, addToast } from '@standardnotes/toast' +import NoProSubscription from '../Account/NoProSubscription' +import HorizontalSeparator from '@/Components/Shared/HorizontalSeparator' const Vaults = () => { const application = useApplication() const [vaults, setVaults] = useState([]) + const [canCreateMoreVaults, setCanCreateMoreVaults] = useState(true) const [invites, setInvites] = useState([]) const [contacts, setContacts] = useState([]) @@ -37,10 +41,21 @@ const Vaults = () => { const vaultService = application.vaults const contactService = application.contacts + const featuresService = application.features const updateVaults = useCallback(async () => { - setVaults(vaultService.getVaults()) - }, [vaultService]) + const vaults = vaultService.getVaults() + + if (featuresService.hasMinimumRole(RoleName.NAMES.ProUser)) { + setCanCreateMoreVaults(true) + } else if (featuresService.hasMinimumRole(RoleName.NAMES.PlusUser)) { + setCanCreateMoreVaults(vaults.length < 3) + } else { + setCanCreateMoreVaults(vaults.length < 1) + } + + setVaults(vaults) + }, [vaultService, featuresService]) const updateInvites = useCallback(async () => { setInvites(application.vaultInvites.getCachedPendingInviteRecords()) @@ -138,9 +153,20 @@ const Vaults = () => { return })} -
-
+ {canCreateMoreVaults ? ( +
+
+ ) : ( +
+ + Please upgrade in order to increase your shared vault limit.} + /> + +
+ )}