diff --git a/app/assets/javascripts/preferences/PreferencesMenu.ts b/app/assets/javascripts/preferences/PreferencesMenu.ts index d538eb404..0e2b02e54 100644 --- a/app/assets/javascripts/preferences/PreferencesMenu.ts +++ b/app/assets/javascripts/preferences/PreferencesMenu.ts @@ -37,12 +37,22 @@ const PREFERENCES_MENU_ITEMS: PreferencesMenuItem[] = [ { id: 'help-feedback', label: 'Help & feedback', icon: 'help' }, ]; +const READY_PREFERENCES_MENU_ITEMS: PreferencesMenuItem[] = [ + { id: 'general', label: 'General', icon: 'settings' }, + { id: 'account', label: 'Account', icon: 'user' }, + { id: 'security', label: 'Security', icon: 'security' }, + { id: 'listed', label: 'Listed', icon: 'listed' }, + { id: 'help-feedback', label: 'Help & feedback', icon: 'help' }, +]; + export class PreferencesMenu { private _selectedPane: PreferenceId = 'general'; + private _menu: PreferencesMenuItem[]; constructor( - private readonly _menu: PreferencesMenuItem[] = PREFERENCES_MENU_ITEMS + private readonly _enableUnfinishedFeatures: boolean, ) { + this._menu = this._enableUnfinishedFeatures ? PREFERENCES_MENU_ITEMS : READY_PREFERENCES_MENU_ITEMS; makeAutoObservable( this, { diff --git a/app/assets/javascripts/preferences/PreferencesView.tsx b/app/assets/javascripts/preferences/PreferencesView.tsx index 870348f24..561ff44d7 100644 --- a/app/assets/javascripts/preferences/PreferencesView.tsx +++ b/app/assets/javascripts/preferences/PreferencesView.tsx @@ -75,7 +75,9 @@ const PreferencesCanvas: FunctionComponent< export const PreferencesView: FunctionComponent = observer( (props) => { - const menu = useMemo(() => new PreferencesMenu(), []); + const menu = useMemo(() => new PreferencesMenu(props.appState.enableUnfinishedFeatures), [ + props.appState.enableUnfinishedFeatures + ]); useEffect(() => { menu.selectPane(props.appState.preferences.currentPane); diff --git a/app/assets/javascripts/preferences/panes/AccountPreferences.tsx b/app/assets/javascripts/preferences/panes/AccountPreferences.tsx index 90161807a..acad1b282 100644 --- a/app/assets/javascripts/preferences/panes/AccountPreferences.tsx +++ b/app/assets/javascripts/preferences/panes/AccountPreferences.tsx @@ -22,7 +22,7 @@ export const AccountPreferences = observer( return ( - + {appState.enableUnfinishedFeatures && } ); @@ -32,6 +32,7 @@ export const AccountPreferences = observer( + {appState.enableUnfinishedFeatures && } ); diff --git a/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx b/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx index 780af8c8c..c9d41dfe3 100644 --- a/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx +++ b/app/assets/javascripts/preferences/panes/account/subscription/Subscription.tsx @@ -21,7 +21,7 @@ export const Subscription: FunctionComponent = observer(({ application, subscriptionState, }: Props) => { - const [loading, setLoading] = useState(true); + const [loading, setLoading] = useState(false); const [error, setError] = useState(false); const { userSubscription } = subscriptionState; @@ -59,8 +59,10 @@ export const Subscription: FunctionComponent = observer(({ }, [getSubscription, getSubscriptions]); useEffect(() => { - getSubscriptionInfo(); - }, [getSubscriptionInfo]); + if (application.hasAccount()) { + getSubscriptionInfo(); + } + }, [application, getSubscriptionInfo]); const now = new Date().getTime(); @@ -71,7 +73,7 @@ export const Subscription: FunctionComponent = observer(({
Subscription {error ? ( - + No subscription information available. ) : loading ? ( Loading subscription information... ) : userSubscription && userSubscription.endsAt > now ? ( diff --git a/app/assets/javascripts/views/footer/footer-view.pug b/app/assets/javascripts/views/footer/footer-view.pug index 4e2084a3d..5b0f57b9d 100644 --- a/app/assets/javascripts/views/footer/footer-view.pug +++ b/app/assets/javascripts/views/footer/footer-view.pug @@ -24,7 +24,6 @@ ) .sk-app-bar-item.ml-0-important( ng-click='ctrl.clickPreferences()' - ng-if='ctrl.appState.enableUnfinishedFeatures' ) .w-8.h-full.flex.items-center.justify-center.cursor-pointer .h-5