From 53ec0d47423f22eb28bf8c97cc34a6ca72e575fa Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Tue, 26 Oct 2021 21:30:21 +0530 Subject: [PATCH] feat: Add "Manage subscription" button to Subscription preferences (#705) * feat: Add "Manage subscription" button to Subscription preferences * Update app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx Co-authored-by: Mo * feat: Use convertTimestamp function instead of manual conversion in Subscription Info Co-authored-by: Mo --- app/assets/javascripts/app.ts | 4 +- .../account/subscription/Subscription.tsx | 2 +- .../subscription/SubscriptionInformation.tsx | 87 +++++++++++-------- app/views/application/app.html.erb | 1 + index.html | 2 + 5 files changed, 60 insertions(+), 36 deletions(-) diff --git a/app/assets/javascripts/app.ts b/app/assets/javascripts/app.ts index 4ea77716b..2b6717e79 100644 --- a/app/assets/javascripts/app.ts +++ b/app/assets/javascripts/app.ts @@ -6,6 +6,8 @@ declare global { _bugsnag_api_key?: string; // eslint-disable-next-line camelcase _purchase_url?: string; + // eslint-disable-next-line camelcase + _dashboard_url?: string; } } @@ -211,7 +213,7 @@ if (IsWebPlatform) { (window as any)._default_sync_server as string, new BrowserBridge(AppVersion), (window as any)._enable_unfinished_features as boolean, - (window as any)._websocket_url as string, + (window as any)._websocket_url as string ); } else { (window as any).startApplication = startApplication; diff --git a/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx b/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx index c9d41dfe3..8dd219998 100644 --- a/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx +++ b/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx @@ -77,7 +77,7 @@ export const Subscription: FunctionComponent = observer(({ ) : loading ? ( Loading subscription information... ) : userSubscription && userSubscription.endsAt > now ? ( - + ) : ( )} diff --git a/app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx b/app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx index a68b9c53f..32c9b4c6a 100644 --- a/app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx +++ b/app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx @@ -2,17 +2,22 @@ import { observer } from 'mobx-react-lite'; import { SubscriptionState } from './subscription_state'; import { Text } from '@/preferences/components'; import { Button } from '@/components/Button'; +import { WebApplication } from '@/ui_models/application'; +import { convertTimestampToMilliseconds } from '@standardnotes/snjs'; type Props = { subscriptionState: SubscriptionState; + application?: WebApplication; }; const StatusText = observer(({ subscriptionState }: Props) => { const { userSubscription, userSubscriptionName } = subscriptionState; - const expirationDate = new Date(userSubscription!.endsAt / 1000).toLocaleString(); + const expirationDate = new Date( + convertTimestampToMilliseconds(userSubscription!.endsAt) + ).toLocaleString(); return userSubscription!.cancelled ? ( - + Your{' '} Standard Notes{userSubscriptionName ? ' ' : ''} @@ -20,23 +25,19 @@ const StatusText = observer(({ subscriptionState }: Props) => { {' '} subscription has been{' '} - canceled but will remain valid until{' '} - {expirationDate} + canceled but will remain valid until {expirationDate} . You may resubscribe below if you wish. ) : ( - + Your{' '} Standard Notes{userSubscriptionName ? ' ' : ''} {userSubscriptionName} {' '} subscription will be{' '} - - renewed on {expirationDate} - - . + renewed on {expirationDate}. ); }); @@ -48,35 +49,53 @@ const PrimaryButton = observer(({ subscriptionState }: Props) => {