File "index.js"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/better-wp-security/core/admin-pages/entries/settings/pages/onboard/index.js
File size: 1.11 KB
MIME-type: text/x-java
Charset: utf-8
/**
* External dependencies
*/
import {
Switch,
Route,
Redirect,
useRouteMatch,
useLocation,
} from 'react-router-dom';
/**
* WordPress dependencies
*/
import { useEffect } from '@wordpress/element';
import { useDispatch } from '@wordpress/data';
/**
* Internal dependencies
*/
import { OnboardEmptyMain, OnboardMain } from '../../components';
import { usePages } from '../../page-registration';
import { ONBOARD_STORE_NAME } from '../../stores';
export default function Onboard() {
const pages = usePages();
const { url, path } = useRouteMatch();
const { pathname } = useLocation();
const { recordVisitedLocation } = useDispatch( ONBOARD_STORE_NAME );
useEffect( () => {
recordVisitedLocation( pathname );
}, [ recordVisitedLocation, pathname ] );
return (
<Switch>
{ pages.map( ( { id, render } ) => (
<Route path={ `${ path }/:page(${ id })` } key={ id }>
<OnboardMain url={ url } render={ render } />
</Route>
) ) }
<Route path={ url }>
{ pages.length > 0 && (
<Redirect to={ `${ url }/${ pages[ 0 ].id }` } />
) }
<OnboardEmptyMain />
</Route>
</Switch>
);
}