chore: show account update prompt in vaults preferences if account protocol is older than 004

This commit is contained in:
Aman Harwara
2023-09-18 22:39:24 +05:30
parent fe8521eff7
commit dbf918523c

View File

@@ -15,6 +15,8 @@ import {
SharedVaultServiceEvent, SharedVaultServiceEvent,
VaultUserServiceEvent, VaultUserServiceEvent,
RoleName, RoleName,
ProtocolVersion,
compareVersions,
} from '@standardnotes/snjs' } from '@standardnotes/snjs'
import VaultItem from './Vaults/VaultItem' import VaultItem from './Vaults/VaultItem'
import Button from '@/Components/Button/Button' import Button from '@/Components/Button/Button'
@@ -24,7 +26,7 @@ import PreferencesPane from '../../PreferencesComponents/PreferencesPane'
import { ToastType, addToast } from '@standardnotes/toast' import { ToastType, addToast } from '@standardnotes/toast'
import NoProSubscription from '../Account/NoProSubscription' import NoProSubscription from '../Account/NoProSubscription'
const Vaults = () => { const Vaults = observer(() => {
const application = useApplication() const application = useApplication()
const hasAccount = application.hasAccount() const hasAccount = application.hasAccount()
@@ -187,7 +189,7 @@ const Vaults = () => {
{canCreateMoreVaults ? ( {canCreateMoreVaults ? (
<div className="mt-2.5 flex gap-3"> <div className="mt-2.5 flex gap-3">
<Button label="Create Vault" onClick={createNewVault} /> <Button label="Create Vault" onClick={createNewVault} />
<Button label="Create Shared Vault" onClick={createNewSharedVault} /> {hasAccount && <Button label="Create Shared Vault" onClick={createNewSharedVault} />}
</div> </div>
) : ( ) : (
<div className="mt-3.5"> <div className="mt-3.5">
@@ -244,6 +246,32 @@ const Vaults = () => {
)} )}
</PreferencesPane> </PreferencesPane>
) )
})
const VaultsWrapper = () => {
const application = useApplication()
const hasAccount = application.hasAccount()
const accountProtocolVersion = application.getUserVersion()
const isAccountProtocolNotSupported =
accountProtocolVersion && compareVersions(accountProtocolVersion, ProtocolVersion.V004) < 0
if (hasAccount && isAccountProtocolNotSupported) {
return (
<PreferencesPane>
<PreferencesGroup>
<Title>Account update required</Title>
<Subtitle>
In order to use Vaults, you must update your account to use the latest data encryption version.
</Subtitle>
<Button primary className="mt-3" onClick={() => application.upgradeProtocolVersion().catch(console.error)}>
Update Account
</Button>
</PreferencesGroup>
</PreferencesPane>
)
}
return <Vaults />
} }
export default observer(Vaults) export default observer(VaultsWrapper)