Skip to content
Snippets Groups Projects
accounts.ts 1.19 KiB
Newer Older
import { Accounts } from 'meteor/accounts-base';
import { Meteor } from 'meteor/meteor';
import { Tracker } from 'meteor/tracker';
import { settings } from '../../app/settings/client';
import { mainReady } from '../../app/ui-utils/client';
import { sdk } from '../../app/utils/client/lib/SDKClient';
import { t } from '../../app/utils/lib/i18n';
import { dispatchToastMessage } from '../lib/toast';

Accounts.onEmailVerificationLink((token: string) => {
	Accounts.verifyEmail(token, (error) => {
		Tracker.autorun(() => {
			if (mainReady.get()) {
				if (error) {
					dispatchToastMessage({ type: 'error', message: error });
					throw new Meteor.Error('verify-email', 'E-mail not verified');
				} else {
					Tracker.nonreactive(() => {
						void sdk.call('afterVerifyEmail');
					});
					dispatchToastMessage({ type: 'success', message: t('Email_verified') });
				}
			}
		});

Meteor.startup(() => {
	Tracker.autorun(() => {
		const forgetUserSessionOnWindowClose = settings.get('Accounts_ForgetUserSessionOnWindowClose');

		if (forgetUserSessionOnWindowClose === undefined) {
			return;
		}

		Accounts.config({ clientStorage: forgetUserSessionOnWindowClose ? 'session' : 'local' });
	});
});