import { createElement, Component } from '@wordpress/element' import DashboardContext, { Provider, getDefaultValue } from './context' import Heading from './Heading' import { Router, Link, Match, Location, LocationProvider, navigate, createHistory, } from '@reach/router' import ctEvents from 'ct-events' import { Transition, animated } from 'react-spring/renderprops' window.ctDashboardLocalizations.DashboardContext = DashboardContext import Navigation from './Navigation' import Home from './screens/Home' import RecommendedPlugins from './screens/RecommendedPlugins' import Changelog from './screens/Changelog' import windowHashSource from './window-hash-source' import ProTable from './screens/ProTable' let history = createHistory(windowHashSource()) /* ctEvents.on('ct:dashboard:routes', r => r.push({ Component: () =>
hello
, path: '/test' }) ) */ const SpringRouter = ({ children }) => ( {({ location, navigate, history }) => ( location.pathname} from={{ opacity: 0 }} enter={[{ opacity: 1 }]} leave={[{ opacity: 0 }]} config={(key, phase) => { return phase === 'leave' ? { duration: 300, } : { delay: 300, duration: 300, } }}> {(location) => (props) => ( {children} )} )} ) const FadeTransitionRouter = (props) => ( {({ location }) => ( {/* the only difference between a router animation and any other animation is that you have to pass the location to the router so the old screen renders the "old location" */} {props.children} )} ) export default class Dashboard extends Component { render() { const userRoutes = [] ctEvents.trigger('ct:dashboard:routes', userRoutes) return (
{userRoutes.map( ({ Component, key, path, ...props }) => ( ) )}
) } }