Merge remote-tracking branch 'github/feat/1.1.2/ui' into feat/1.1.2/user-center

This commit is contained in:
LinkinStars 2023-04-25 10:55:30 +08:00
commit 3f4ed4527a
4 changed files with 25 additions and 32 deletions

View File

@ -15,18 +15,6 @@ export const USER_AGENT_NAMES = {
DingTalk: 'DingTalk', DingTalk: 'DingTalk',
}; };
export const IGNORE_PATH_LIST = [
'/users/login',
'/users/register',
'/users/account-recovery',
'/users/change-email',
'/users/password-reset',
'/users/account-activation',
'/users/account-activation/success',
'/users/account-activation/failed',
'/users/confirm-new-email',
];
export const ADMIN_LIST_STATUS = { export const ADMIN_LIST_STATUS = {
// normal; // normal;
1: { 1: {

View File

@ -2,7 +2,13 @@ export const RouteAlias = {
home: '/', home: '/',
login: '/users/login', login: '/users/login',
signUp: '/users/register', signUp: '/users/register',
activation: '/users/login?status=inactive', inactive: '/users/login?status=inactive',
accountRecovery: '/users/account-recovery',
changeEmail: '/users/change-email',
passwordReset: '/users/password-reset',
accountActivation: '/users/account-activation',
activationSuccess: '/users/account-activation/success',
activationFailed: '/users/account-activation/failed', activationFailed: '/users/account-activation/failed',
suspended: '/users/account-suspended', suspended: '/users/account-suspended',
confirmNewEmail: '/users/confirm-new-email',
}; };

View File

@ -81,6 +81,17 @@ export const deriveLoginState = (): TLoginState => {
return ls; return ls;
}; };
export const IGNORE_PATH_LIST = [
RouteAlias.login,
RouteAlias.signUp,
RouteAlias.accountRecovery,
RouteAlias.changeEmail,
RouteAlias.passwordReset,
RouteAlias.accountActivation,
RouteAlias.confirmNewEmail,
'/user-center/',
];
export const isIgnoredPath = (ignoredPath: string | string[]) => { export const isIgnoredPath = (ignoredPath: string | string[]) => {
if (!Array.isArray(ignoredPath)) { if (!Array.isArray(ignoredPath)) {
ignoredPath = [ignoredPath]; ignoredPath = [ignoredPath];
@ -152,7 +163,7 @@ export const activated = () => {
const us = deriveLoginState(); const us = deriveLoginState();
if (us.isNotActivated) { if (us.isNotActivated) {
gr.ok = false; gr.ok = false;
gr.redirect = RouteAlias.activation; gr.redirect = RouteAlias.inactive;
} }
return gr; return gr;
}; };
@ -258,19 +269,7 @@ export const shouldLoginRequired = () => {
if (us.isLogged) { if (us.isLogged) {
return gr; return gr;
} }
if ( if (isIgnoredPath(IGNORE_PATH_LIST)) {
isIgnoredPath([
RouteAlias.login,
RouteAlias.signUp,
'/users/account-recovery',
'users/change-email',
'users/password-reset',
'users/account-activation',
'users/account-activation/success',
'/users/account-activation/failed',
'/users/confirm-new-email',
])
) {
return gr; return gr;
} }
gr.ok = false; gr.ok = false;
@ -296,7 +295,7 @@ export const tryNormalLogged = (canNavigate: boolean = false) => {
return false; return false;
} }
if (us.isNotActivated) { if (us.isNotActivated) {
floppyNavigation.navigate(RouteAlias.activation); floppyNavigation.navigate(RouteAlias.inactive);
} else if (us.isForbidden) { } else if (us.isForbidden) {
floppyNavigation.navigate(RouteAlias.suspended, { floppyNavigation.navigate(RouteAlias.suspended, {
handler: 'replace', handler: 'replace',
@ -341,7 +340,7 @@ export const handleLoginWithToken = (
loggedUserInfoStore.getState().update(res); loggedUserInfoStore.getState().update(res);
const userStat = deriveLoginState(); const userStat = deriveLoginState();
if (userStat.isNotActivated) { if (userStat.isNotActivated) {
floppyNavigation.navigate(RouteAlias.activation, { floppyNavigation.navigate(RouteAlias.inactive, {
handler, handler,
options: { options: {
replace: true, replace: true,

View File

@ -3,13 +3,13 @@ import type { AxiosInstance, AxiosRequestConfig, AxiosError } from 'axios';
import { Modal } from '@/components'; import { Modal } from '@/components';
import { loggedUserInfoStore, toastStore, errorCodeStore } from '@/stores'; import { loggedUserInfoStore, toastStore, errorCodeStore } from '@/stores';
import { LOGGED_TOKEN_STORAGE_KEY, IGNORE_PATH_LIST } from '@/common/constants'; import { LOGGED_TOKEN_STORAGE_KEY } from '@/common/constants';
import { RouteAlias } from '@/router/alias'; import { RouteAlias } from '@/router/alias';
import { getCurrentLang } from '@/utils/localize'; import { getCurrentLang } from '@/utils/localize';
import Storage from './storage'; import Storage from './storage';
import { floppyNavigation } from './floppyNavigation'; import { floppyNavigation } from './floppyNavigation';
import { isIgnoredPath } from './guard'; import { isIgnoredPath, IGNORE_PATH_LIST } from './guard';
const baseConfig = { const baseConfig = {
timeout: 10000, timeout: 10000,
@ -129,7 +129,7 @@ class Request {
} }
if (data?.type === 'inactive') { if (data?.type === 'inactive') {
// inactivated // inactivated
floppyNavigation.navigate(RouteAlias.activation); floppyNavigation.navigate(RouteAlias.inactive);
return Promise.reject(false); return Promise.reject(false);
} }