/**
* External dependencies
*/
import { registerPlugin } from '@wordpress/plugins';
import {
WooNavigationItem,
getNewPath,
pathIsExcluded,
} from '@woocommerce/navigation';
import { Link } from '@woocommerce/components';
import { __ } from '@wordpress/i18n';
import { useSelect } from '@wordpress/data';
import { NAVIGATION_STORE_NAME } from '@woocommerce/data';
/**
* Internal dependencies
*/
import getReports from '../analytics/report/get-reports';
import { getPages } from './controller';
import { isWCAdmin } from '../dashboard/utils';
const NavigationPlugin = () => {
const { persistedQuery } = useSelect( ( select ) => {
return {
persistedQuery: select( NAVIGATION_STORE_NAME ).getPersistedQuery(),
};
} );
/**
* If the current page is embedded, stay with the default urls
* provided by Navigation because the router isn't present to
* respond to component's manipulation of the url.
*/
if ( ! isWCAdmin( window.location.href ) ) {
return null;
}
const reports = getReports().filter( ( item ) => item.navArgs );
const pages = getPages()
.filter( ( page ) => page.navArgs )
.map( ( page ) => {
if ( page.path === '/analytics/settings' ) {
return {
...page,
breadcrumbs: [ __( 'Analytics', 'woocommerce-admin' ) ],
};
}
return page;
} );
return (
<>
{ pages.map( ( page ) => (
{ page.breadcrumbs[ page.breadcrumbs.length - 1 ] }
) ) }
{ reports.map( ( item ) => (
{ item.title }
) ) }
>
);
};
registerPlugin( 'wc-admin-navigation', {
render: NavigationPlugin,
} );