diff --git a/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx b/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx
index 33dff200b..4f159cb0c 100644
--- a/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx
+++ b/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx
@@ -5,10 +5,6 @@ import {
} from '@/preferences/components';
import { WebApplication } from '@/ui_models/application';
import { useCallback, useEffect, useState } from 'preact/hooks';
-import {
- GetSubscriptionResponse,
- GetSubscriptionsResponse,
-} from '@standardnotes/snjs/dist/@types/services/api/responses';
import { SubscriptionState } from './subscription_state';
import { SubscriptionInformation } from './SubscriptionInformation';
import { NoSubscription } from './NoSubscription';
@@ -31,10 +27,9 @@ export const Subscription = observer(({
const getSubscriptions = useCallback(async () => {
try {
- const result = await application.getSubscriptions();
- if (result.data) {
- const data = (result as GetSubscriptionsResponse).data;
- subscriptionState.setAvailableSubscriptions(data!);
+ const subscriptions = await application.getAvailableSubscriptions();
+ if (subscriptions) {
+ subscriptionState.setAvailableSubscriptions(subscriptions);
}
} catch (e) {
// Error in this call will only prevent the plan name from showing
@@ -43,13 +38,9 @@ export const Subscription = observer(({
const getSubscription = useCallback(async () => {
try {
- const result = await application.getUserSubscription();
- if (!result.error && result.data) {
- const data = (result as GetSubscriptionResponse).data;
- const subscription = data!.subscription;
+ const subscription = await application.getUserSubscription();
+ if (subscription) {
subscriptionState.setUserSubscription(subscription);
- } else {
- setError(true);
}
} catch (e) {
setError(true);
diff --git a/app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx b/app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx
index eb97147a5..a68b9c53f 100644
--- a/app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx
+++ b/app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx
@@ -9,6 +9,7 @@ type Props = {
const StatusText = observer(({ subscriptionState }: Props) => {
const { userSubscription, userSubscriptionName } = subscriptionState;
+ const expirationDate = new Date(userSubscription!.endsAt / 1000).toLocaleString();
return userSubscription!.cancelled ? (
@@ -20,7 +21,7 @@ const StatusText = observer(({ subscriptionState }: Props) => {
subscription has been{' '}
canceled but will remain valid until{' '}
- {new Date(userSubscription!.endsAt).toLocaleString()}
+ {expirationDate}
. You may resubscribe below if you wish.
@@ -33,7 +34,7 @@ const StatusText = observer(({ subscriptionState }: Props) => {
{' '}
subscription will be{' '}
- renewed on {new Date(userSubscription!.endsAt).toLocaleString()}
+ renewed on {expirationDate}
.
diff --git a/app/assets/javascripts/ui_models/application.ts b/app/assets/javascripts/ui_models/application.ts
index fba8edf08..99161903f 100644
--- a/app/assets/javascripts/ui_models/application.ts
+++ b/app/assets/javascripts/ui_models/application.ts
@@ -25,6 +25,7 @@ import { NativeExtManager } from '@/services/nativeExtManager';
import { StatusManager } from '@/services/statusManager';
import { ThemeManager } from '@/services/themeManager';
import { AppVersion } from '@/version';
+import { isDev } from '@/utils';
type WebServices = {
appState: AppState;
@@ -64,7 +65,8 @@ export class WebApplication extends SNApplication {
identifier,
[],
defaultSyncServerHost,
- AppVersion
+ AppVersion,
+ isDev,
);
this.$compile = $compile;
this.scope = scope;
diff --git a/package.json b/package.json
index 99ce6f3ad..f169b15cb 100644
--- a/package.json
+++ b/package.json
@@ -72,7 +72,7 @@
"@reach/dialog": "^0.13.0",
"@standardnotes/sncrypto-web": "1.5.2",
"@standardnotes/features": "1.6.1",
- "@standardnotes/snjs": "2.12.3",
+ "@standardnotes/snjs": "2.14.1",
"mobx": "^6.3.2",
"mobx-react-lite": "^3.2.0",
"preact": "^10.5.12",
diff --git a/yarn.lock b/yarn.lock
index 4dc1f340d..d8da7b59b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2011,34 +2011,29 @@
prop-types "^15.7.2"
tslib "^2.1.0"
-"@standardnotes/auth@3.1.1":
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/@standardnotes/auth/-/auth-3.1.1.tgz#834701c2e14d31eb204bff90457fa05e9183464a"
- integrity sha512-E9zDYZ1gJkVZBEzd7a1L2haQ4GYeH1lUrY87UmDH1AMYUHW+c0SqZ71af1fBNqGzrx3EZSXk+Qzr7RyOa6N1Mw==
-
-"@standardnotes/auth@^3.2.0":
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/@standardnotes/auth/-/auth-3.7.0.tgz#1193f0521bd3b1c3655685c27aff894b98c7f582"
- integrity sha512-lHMRyVOxF9g11MH04wcbhpErPysL721Hgrzbi6slRDqIuA+2VpECIkbAhI5WpgP5K8RjO/kZB4l0tzcRI1Mg/g==
+"@standardnotes/auth@3.7.1", "@standardnotes/auth@^3.7.0":
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/@standardnotes/auth/-/auth-3.7.1.tgz#d0b1eb63f605e04ecb077fdb5ef83e3fe6db33f9"
+ integrity sha512-xtjAvtikLW3Xv75X/kYA1KTm8FJVPPlXvl+ofnrf/ijkIaRkbUW/3TUhMES+G5CMiG2TZv6uVn32GqJipqgQQQ==
dependencies:
- "@standardnotes/common" "^1.0.0"
+ "@standardnotes/common" "^1.1.0"
-"@standardnotes/common@1.1.0", "@standardnotes/common@^1.0.0", "@standardnotes/common@^1.1.0":
+"@standardnotes/common@1.1.0", "@standardnotes/common@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@standardnotes/common/-/common-1.1.0.tgz#5ffb0a50f9947471e236bb66d097f153ad9a148f"
integrity sha512-Nm2IFWbMSfZDD7cnKtN+Gjic0f+PhPq/da/o4eOoUKg21VeOaQkTn+jlQKraKIs6Lmf+w9mmPNAgMc5o4hj7Lg==
-"@standardnotes/domain-events@2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@standardnotes/domain-events/-/domain-events-2.0.0.tgz#6e537485054c6b32cb1d9408fab9cd132ed0fb65"
- integrity sha512-4rMCGw2Gy1CLfi6SkpsH7QzbT/80g5gVGeicEHhHvLhMolAEsHXCGOjpw5/nA3YKl8B/U8s6wvaee2vIDejFLA==
+"@standardnotes/domain-events@2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@standardnotes/domain-events/-/domain-events-2.1.0.tgz#a5c4379983a728a738f145aa9e76f7640c7283a2"
+ integrity sha512-8bCQk2V2fyWKalVWC9L8cuj2kuKLe+bTTp0xBVTDpDhWrGFzXfsI79AzWbOl/CLHJU/PWrXf1lvUgQwPwT+RlA==
dependencies:
- "@standardnotes/auth" "^3.2.0"
+ "@standardnotes/auth" "^3.7.0"
-"@standardnotes/features@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@standardnotes/features/-/features-1.6.0.tgz#91317255bbad376670fd81fa445abc2d14fd43d9"
- integrity sha512-0gN1UKpX0LZxOk7HlnLxbl7N8Drvyw36zRErFn3pSetUNQpr92Pd6qTTNNflBBtY2pwzqoP4XVB/2kZRJFAo8w==
+"@standardnotes/features@1.6.2":
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/@standardnotes/features/-/features-1.6.2.tgz#98c5998426d9f93e06c2846c5bc7b6aef8d31063"
+ integrity sha512-s/rqRyG7mrrgxJOzckPSYlB68wsRpM9jlFwDE+7zQO5/xKh+37ueWfy3RoqOgkKLey6lMpnTurofIJCvqLM3dQ==
dependencies:
"@standardnotes/common" "^1.1.0"
@@ -2067,15 +2062,15 @@
"@standardnotes/sncrypto-common" "^1.5.2"
libsodium-wrappers "^0.7.8"
-"@standardnotes/snjs@2.12.1":
- version "2.12.1"
- resolved "https://registry.yarnpkg.com/@standardnotes/snjs/-/snjs-2.12.1.tgz#4c2cac0e9f87d55d7d24a30f0fbe90d878869c7b"
- integrity sha512-4ehV9Nviko0yLs8NUToSXQvOTcQs4XlU2e1sfSkvZZ+Z+iQZo/gR/Xc9gXhr/PvJpahecJIAnbcLpPlJ/DU9MQ==
+"@standardnotes/snjs@2.14.1":
+ version "2.14.1"
+ resolved "https://registry.yarnpkg.com/@standardnotes/snjs/-/snjs-2.14.1.tgz#cafd401fc32370919ccb94a2566d5318bb8805ee"
+ integrity sha512-iaKtF99LlmCfKRz8F6BnMrEeHSwmSyFmawMotcJkTc2vH66167xfF+VoijuB9YLzjbgjJpI5KXDlrPzZE/+PxQ==
dependencies:
- "@standardnotes/auth" "3.1.1"
+ "@standardnotes/auth" "3.7.1"
"@standardnotes/common" "1.1.0"
- "@standardnotes/domain-events" "2.0.0"
- "@standardnotes/features" "1.6.0"
+ "@standardnotes/domain-events" "2.1.0"
+ "@standardnotes/features" "1.6.2"
"@standardnotes/settings" "1.2.0"
"@standardnotes/sncrypto-common" "1.5.2"