/**
* App Router
*
* TODO: Temporary solution for routing extensibility.
*/
class Router {
/**
* @type {*[]}
*/
routes = [];
history = null;
/**
*
* @param {{path: string, component: Object, props: Object}} route
*/
addRoute( route ) {
this.routes.push( route );
}
getRoutes() {
return this.routes.map( ( route ) => {
const props = route.props || {};
// Use the path as a key, and add it as a prop.
props.path = props.key = route.path;
return React.createElement( route.component, props );
} );
}
}
const router = new Router();
// Make router available for use within packages.
window.elementorAppPackages = {
router,
};
export default router;