// #region [Imports] =================================================================================================== // Libraries import React from 'react'; import ReactDOM from 'react-dom'; import { Provider } from 'react-redux'; import { all, put, call, takeEvery } from 'redux-saga/effects'; import createSagaMiddleware from 'redux-saga'; import { BrowserRouter, Route, useLocation, useHistory, Link, Redirect } from 'react-router-dom'; import * as antd from 'antd'; import * as antdIcons from '@ant-design/icons'; import { bindActionCreators, createStore, combineReducers, applyMiddleware } from 'redux'; import { connect } from 'react-redux'; import * as lodash from 'lodash'; import moment from 'moment'; // Store import initializeStore from './store'; // CSS import 'antd/dist/antd.css'; import './index.scss'; // Pages import App from './pages/App'; // Components import CouponsNav from './components/CouponsNav'; // Helpers // import axiosInstance from "./helpers/axios"; import { getPathPrefix, validateURL } from './helpers/utils'; // Actions import { PageActions } from './store/actions/page'; // #endregion [Imports] // #region [Variables] ================================================================================================= declare var acfwpElements: any; const pathPrefix = getPathPrefix(); // Initialize redux store. const store = initializeStore(); // if ACFWP is active, then we export our React instance and other required packages. const exports = { element: React, dom: ReactDOM, router: { BrowserRouter, Route, useLocation, useHistory, Link, Redirect }, redux: { bindActionCreators, createStore, combineReducers, applyMiddleware, createSagaMiddleware, connect, sagaEffects: { all, put, call, takeEvery }, }, lodash, antd, antdIcons, moment, // axiosInstance, pathPrefix, validateURL, appStore: { Provider: Provider, store: store, storeActions: { ...PageActions }, }, }; acfwpElements = { ...acfwpElements, ...exports, }; // #endregion [Variables] // #region [Component] ================================================================================================= // Render main app. document.querySelectorAll('#acfw_admin_app').forEach((domContainer: any) => { ReactDOM.render( , domContainer ); }); // Replace Advanced Coupons navigation in WP admin sidebar with a React app equivalent. document.querySelectorAll('#toplevel_page_acfw-admin').forEach((domContainer: any) => { ReactDOM.render( , domContainer ); }); // #endregion [Component]