import React from 'react';
import ReactDOM from 'react-dom';
import {
Route,
Switch,
Redirect
} from 'react-router-dom';
import {
I18n
} from '@lingui/react';
import { t } from '@lingui/macro';
import '@patternfly/react-core/dist/styles/base.css';
import './app.scss';
import Background from './components/Background';
import RootProvider from './RootProvider';
import App from './App';
import { BrandName } from './variables';
import { isAuthenticated } from './util/auth';
import Applications from './pages/Applications';
import Credentials from './pages/Credentials';
import CredentialTypes from './pages/CredentialTypes';
import Dashboard from './pages/Dashboard';
import InstanceGroups from './pages/InstanceGroups';
import Inventories from './pages/Inventories';
import InventoryScripts from './pages/InventoryScripts';
import Jobs from './pages/Jobs';
import Login from './pages/Login';
import ManagementJobs from './pages/ManagementJobs';
import NotificationTemplates from './pages/NotificationTemplates';
import Organizations from './pages/Organizations/Organizations';
import Portal from './pages/Portal';
import Projects from './pages/Projects';
import Schedules from './pages/Schedules';
import AuthSettings from './pages/AuthSettings';
import JobsSettings from './pages/JobsSettings';
import SystemSettings from './pages/SystemSettings';
import UISettings from './pages/UISettings';
import License from './pages/License';
import Teams from './pages/Teams';
import Templates from './pages/Templates/Templates';
import Users from './pages/Users';
// eslint-disable-next-line import/prefer-default-export
export function main (render) {
const el = document.getElementById('app');
document.title = `Ansible ${BrandName}`;
const defaultRedirect = () => ();
const removeTrailingSlash = (
(
)}
/>
);
const loginRoutes = (
{removeTrailingSlash}
(
)}
/>
);
return render(
{({ i18n }) => (
{!isAuthenticated(document.cookie) ? loginRoutes : (
{removeTrailingSlash}
(
(
routeGroups
.reduce((allRoutes, { routes }) => allRoutes.concat(routes), [])
.map(({ component: PageComponent, path }) => (
(
)}
/>
))
)}
/>
)}
/>
)}
)}
, el || document.createElement('div')
);
}
main(ReactDOM.render);