import React from 'react';
import BUILD_UTILS_CONSTANTS from 'build-utils-react/config/constants';
import 'react-app-polyfill/ie9';
import 'react-app-polyfill/stable';
import { createOlafApplication } from 'olaf';
import { Route, Routes, Navigate } from 'react-router-dom';
import App from './containers/App';
import commonReducer from './reducers/common';
import adminReducer from './reducers/admin';
import authSaga from './sagas/auth';
import adminSaga from './sagas/admin';
import rolesSaga from './sagas/roles';
import couponsSaga from './sagas/coupons';
import couponReducer from './reducers/coupons';
import roundsReducer from './reducers/rounds';
import roundsSaga from './sagas/rounds';
import reportsSaga from './sagas/reports';
import exporterSaga from './sagas/exporter';
import reportsReducer from './reducers/reports';
import bonusReducer from './reducers/bonus';
import bonusSaga from './sagas/bonus';
import settingsReducer from './reducers/settings';
import settingsSaga from './sagas/settings';
import cashiersSaga from './sagas/cashier';
import cashiersReducer from './reducers/cashier';
import jackpotSaga from './sagas/jackpot';
import jackpotReducer from './reducers/jackpot';
import exporterReducer from './reducers/exporter';
import commonSaga from './sagas/common';
import inValidateOddsSaga from './sagas/invalidateOdds';
import invalidateOddsReducer from './reducers/invalidateOdds';
import { PAGES } from './constants';
import Login from './containers/Login';
import Main from './containers/Main';
import Menu from './containers/Menu';
if (process.env.BUNDLE_SKIN === BUILD_UTILS_CONSTANTS.SKINS.MAMABET) {
const bodyElement = document.querySelector('body');
bodyElement.classList.add('orange-theme');
}
/**
*
* @external 'node_modules/olaf'
* @see {@link https://gitlab.com/providus.mu/fe-utils/olaf}
*
*/
/**
* Olaf function to create usable aplications with passed routes, reducers, sagas and so on
*
* @function createOlafApplication
* @returns {Application}
*/
createOlafApplication({
name: 'stadium-backoffice',
immutable: true,
hash: false,
getRootDomElement: () => document.body.children[0],
rootReactComponent: (
<Routes>
<Route path="/" element={<App />}>
<Route path={PAGES.LOGIN} element={<Login />} />
<Route path={`${PAGES.MAIN}/*`} element={<Main />} />
<Route path={PAGES.HOME} element={<Menu />} />
<Route path="*" element={<Navigate to="/" />} />
</Route>
</Routes>
),
routes: [
{
path: '/',
exact: false,
component: App,
},
],
reducers: {
common: commonReducer,
admin: adminReducer,
coupons: couponReducer,
rounds: roundsReducer,
reports: reportsReducer,
bonus: bonusReducer,
settings: settingsReducer,
cashier: cashiersReducer,
jackpot: jackpotReducer,
invalidateOdds: invalidateOddsReducer,
exporter: exporterReducer,
},
sagas: {
common: commonSaga,
auth: authSaga,
user: adminSaga,
users: rolesSaga,
coupons: couponsSaga,
rounds: roundsSaga,
reports: reportsSaga,
bonus: bonusSaga,
settings: settingsSaga,
cashier: cashiersSaga,
jackpot: jackpotSaga,
invalidateOdds: inValidateOddsSaga,
exporter: exporterSaga,
},
});