Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 2x 2x 20x 12x 1x 1x 11x 1x 1x 1x 10x 10x 3x 3x 2x 3x 3x 7x 7x 5x 5x 2x 2x 1x 1x 1x 1x 1x | import { STORAGE_KEYS } from '../composables/useLocalStorage';
import { ENV_FQ } from '../store/types';
import createLogger from '../utils/logger';
const log = createLogger('environmentsGuard');
let storeInstance = null;
export function setStoreForEnvironmentsGuard(store) {
storeInstance = store;
}
export function environmentsGuard(to, from, next) {
if (typeof window === 'undefined') {
next();
return;
}
if (!storeInstance) {
log.warn('Store not yet initialized, allowing navigation');
next();
return;
}
const envFromQuery = to.query.env;
if (envFromQuery) {
const currentEnv = storeInstance.getters[ENV_FQ.getters.selected];
if (currentEnv !== envFromQuery) {
storeInstance.dispatch(ENV_FQ.actions.select, envFromQuery);
}
next();
return;
}
const envFromStore = storeInstance.getters[ENV_FQ.getters.selected];
if (envFromStore) {
next({
path: to.path,
query: { ...to.query, env: envFromStore },
});
return;
}
const envFromStorage = window.localStorage.getItem(
STORAGE_KEYS.SELECTED_ENVIRONMENT,
);
if (envFromStorage) {
storeInstance.dispatch(ENV_FQ.actions.select, envFromStorage);
next({
path: to.path,
query: { ...to.query, env: envFromStorage },
});
return;
}
log.info('No environment selected, redirecting to /environments');
next('/environments');
}
|