diff --git a/app/assets/javascripts/preferences/panes/account/subscription/ActiveSubscription.tsx b/app/assets/javascripts/preferences/panes/account/subscription/ActiveSubscription.tsx
deleted file mode 100644
index eb5d984ad..000000000
--- a/app/assets/javascripts/preferences/panes/account/subscription/ActiveSubscription.tsx
+++ /dev/null
@@ -1,49 +0,0 @@
-import { observer } from 'mobx-react-lite';
-import { SubscriptionState } from './subscription_state';
-import { Text } from '@/preferences/components';
-import { Button } from '@/components/Button';
-
-type Props = {
- subscriptionState: SubscriptionState;
-};
-
-export const ActiveSubscription = observer(
- ({ subscriptionState }: Props) => {
- const { userSubscription, userSubscriptionName } = subscriptionState;
- return (
- <>
-
- Your{' '}
-
- Standard Notes{userSubscriptionName ? " " : ""}{userSubscriptionName}
- {' '}
- subscription will be{' '}
-
- renewed on {new Date(userSubscription!.endsAt).toLocaleString()}
-
- .
-
-
-
- >
- );
- }
-);
diff --git a/app/assets/javascripts/preferences/panes/account/subscription/CancelledSubscription.tsx b/app/assets/javascripts/preferences/panes/account/subscription/CancelledSubscription.tsx
deleted file mode 100644
index d3742e65c..000000000
--- a/app/assets/javascripts/preferences/panes/account/subscription/CancelledSubscription.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { observer } from 'mobx-react-lite';
-import { SubscriptionState } from './subscription_state';
-import { Text } from '@/preferences/components';
-import { Button } from '@/components/Button';
-
-type Props = {
- subscriptionState: SubscriptionState;
-};
-
-export const CancelledSubscription = observer(
- ({ subscriptionState }: Props) => {
- const { userSubscription, userSubscriptionName } = subscriptionState;
- return (
- <>
-
- Your{' '}
-
- Standard Notes{userSubscriptionName ? " " : ""}{userSubscriptionName}
- {' '}
- subscription has been{' '}
-
- canceled but will remain valid until{' '}
- {new Date(userSubscription!.endsAt).toLocaleString()}
-
- . You may resubscribe below if you wish.
-
-
- null}
- />
- null}
- />
- null}
- />
-
- >
- );
- }
-);
diff --git a/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx b/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx
index df5b3f9fc..33dff200b 100644
--- a/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx
+++ b/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx
@@ -3,7 +3,6 @@ import {
PreferencesSegment,
Title,
} from '@/preferences/components';
-import { observer } from '@node_modules/mobx-react-lite';
import { WebApplication } from '@/ui_models/application';
import { useCallback, useEffect, useState } from 'preact/hooks';
import {
@@ -11,41 +10,25 @@ import {
GetSubscriptionsResponse,
} from '@standardnotes/snjs/dist/@types/services/api/responses';
import { SubscriptionState } from './subscription_state';
-import { CancelledSubscription } from './CancelledSubscription';
-import { ActiveSubscription } from './ActiveSubscription';
+import { SubscriptionInformation } from './SubscriptionInformation';
import { NoSubscription } from './NoSubscription';
import { Text } from '@/preferences/components';
-import { FunctionalComponent } from 'preact';
+import { observer } from 'mobx-react-lite';
type Props = {
application: WebApplication;
subscriptionState: SubscriptionState;
};
-type SubscriptionInformationProps = {
- subscriptionState: SubscriptionState;
-};
-
-const SubscriptionInformation = observer(({
+export const Subscription = observer(({
+ application,
subscriptionState,
-}: SubscriptionInformationProps) => {
- const now = new Date().getTime();
- const { userSubscription } = subscriptionState;
-
- if (userSubscription && userSubscription.endsAt > now) {
- return userSubscription.cancelled ? (
-
- ) : (
-
- );
- }
- return ;
-});
-
-export const Subscription: FunctionalComponent = ({ application, subscriptionState }) => {
+}: Props) => {
const [loading, setLoading] = useState(true);
const [error, setError] = useState(false);
+ const { userSubscription } = subscriptionState;
+
const getSubscriptions = useCallback(async () => {
try {
const result = await application.getSubscriptions();
@@ -87,6 +70,8 @@ export const Subscription: FunctionalComponent = ({ application, subscrip
getSubscriptionInfo();
}, [getSubscriptionInfo]);
+ const now = new Date().getTime();
+
return (
@@ -97,12 +82,14 @@ export const Subscription: FunctionalComponent = ({ application, subscrip
No subscription information available.
) : 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
new file mode 100644
index 000000000..eb97147a5
--- /dev/null
+++ b/app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx
@@ -0,0 +1,81 @@
+import { observer } from 'mobx-react-lite';
+import { SubscriptionState } from './subscription_state';
+import { Text } from '@/preferences/components';
+import { Button } from '@/components/Button';
+
+type Props = {
+ subscriptionState: SubscriptionState;
+};
+
+const StatusText = observer(({ subscriptionState }: Props) => {
+ const { userSubscription, userSubscriptionName } = subscriptionState;
+
+ return userSubscription!.cancelled ? (
+
+ Your{' '}
+
+ Standard Notes{userSubscriptionName ? ' ' : ''}
+ {userSubscriptionName}
+ {' '}
+ subscription has been{' '}
+
+ canceled but will remain valid until{' '}
+ {new Date(userSubscription!.endsAt).toLocaleString()}
+
+ . You may resubscribe below if you wish.
+
+ ) : (
+
+ Your{' '}
+
+ Standard Notes{userSubscriptionName ? ' ' : ''}
+ {userSubscriptionName}
+ {' '}
+ subscription will be{' '}
+
+ renewed on {new Date(userSubscription!.endsAt).toLocaleString()}
+
+ .
+
+ );
+});
+
+const PrimaryButton = observer(({ subscriptionState }: Props) => {
+ const { userSubscription } = subscriptionState;
+
+ return (
+ null}
+ />
+ );
+});
+
+export const SubscriptionInformation = observer(
+ ({ subscriptionState }: Props) => (
+ <>
+
+
+
null}
+ />
+ null}
+ />
+
+
+ >
+ )
+);
diff --git a/app/assets/javascripts/preferences/panes/account/subscription/subscription_state.tsx b/app/assets/javascripts/preferences/panes/account/subscription/subscription_state.tsx
index fa09dfd0b..38f6768a0 100644
--- a/app/assets/javascripts/preferences/panes/account/subscription/subscription_state.tsx
+++ b/app/assets/javascripts/preferences/panes/account/subscription/subscription_state.tsx
@@ -41,7 +41,6 @@ export class SubscriptionState {
public setUserSubscription(subscription: Subscription): void {
this.userSubscription = subscription;
- console.log(this.userSubscription);
}
public setAvailableSubscriptions(