Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import React, { useEffect, useState } from 'react';
import * as R from 'remeda';
import { usePrevious } from 'src/hooks/usePrevious';
import { RouteConfig } from 'src/types';
import { useActions, useMappedState } from 'typeless';
import { getRouterState, RouterActions, RouterLocation } from 'typeless-router';
import { getGlobalState } from 'src/features/global/interface';
// load dynamically all routes from all interfaces
const req = require.context('../features', true, /interface.tsx?$/);
const routes = R.flatMap(req.keys(), key => {
const module = req(key);
const items = Object.values(module);
return items.filter((item: any) => item.type === 'route') as RouteConfig[];
});
function getMatch(loc: RouterLocation | null, isLogged: boolean) {
if (!loc) {
return null;
}
return routes.find(route => {
if ((route.auth && !isLogged) || (!route.auth && isLogged)) {
return false;
}
return route.path === loc.pathname;
});
}