* feat: fetch features and store locally for offline users * feat: handle success and error cases * refactor: move offline activation code reading/validation to snjs * chore: update after renaming snjs function * fix: correct condition for checking offline users * feat: let users remove their previous offline keys (WIP) * refactor: handle setOfflineFeatures function response accordingly * feat: remove corresponding local data when removing offline key * fix: use snjs' confirm dialog instead of custom one * feat: show warning before installing extension from untrusted source * refactor: move functions for validating external feature url and checking if custom server host was used to snjs * chore: put correct snjs version * chore: make `eslint-plugin-react-hooks` in yarn.lock to match the `develop` branch * chore: deps update * chore: deps update
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import {
|
|
Sync,
|
|
SubscriptionWrapper,
|
|
Credentials,
|
|
SignOutWrapper,
|
|
Authentication,
|
|
Advanced
|
|
} from '@/preferences/panes/account';
|
|
import { PreferencesPane } from '@/preferences/components';
|
|
import { observer } from 'mobx-react-lite';
|
|
import { WebApplication } from '@/ui_models/application';
|
|
import { AppState } from '@/ui_models/app_state';
|
|
|
|
type Props = {
|
|
application: WebApplication;
|
|
appState: AppState;
|
|
};
|
|
|
|
export const AccountPreferences = observer(
|
|
({ application, appState }: Props) => {
|
|
|
|
if (!application.hasAccount()) {
|
|
return (
|
|
<PreferencesPane>
|
|
<Authentication application={application} appState={appState} />
|
|
{appState.enableUnfinishedFeatures && <SubscriptionWrapper application={application} />}
|
|
<SignOutWrapper application={application} appState={appState} />
|
|
<Advanced application={application} appState={appState} />
|
|
</PreferencesPane>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<PreferencesPane>
|
|
<Credentials application={application} appState={appState} />
|
|
<Sync application={application} />
|
|
{appState.enableUnfinishedFeatures && <SubscriptionWrapper application={application} />}
|
|
<SignOutWrapper application={application} appState={appState} />
|
|
<Advanced application={application} appState={appState} />
|
|
</PreferencesPane>
|
|
);
|
|
}
|
|
);
|