151 lines
3.7 KiB
JavaScript
151 lines
3.7 KiB
JavaScript
/**
|
|
* External dependencies
|
|
*/
|
|
import { __ } from '@wordpress/i18n';
|
|
import { applyFilters } from '@wordpress/hooks';
|
|
import { lazy } from '@wordpress/element';
|
|
|
|
/**
|
|
* Internal dependencies
|
|
*/
|
|
import { getAdminSetting } from '~/utils/admin-settings';
|
|
const RevenueReport = lazy( () =>
|
|
import( /* webpackChunkName: "analytics-report-revenue" */ './revenue' )
|
|
);
|
|
const ProductsReport = lazy( () =>
|
|
import( /* webpackChunkName: "analytics-report-products" */ './products' )
|
|
);
|
|
const VariationsReport = lazy( () =>
|
|
import(
|
|
/* webpackChunkName: "analytics-report-variations" */ './variations'
|
|
)
|
|
);
|
|
const OrdersReport = lazy( () =>
|
|
import( /* webpackChunkName: "analytics-report-orders" */ './orders' )
|
|
);
|
|
const CategoriesReport = lazy( () =>
|
|
import(
|
|
/* webpackChunkName: "analytics-report-categories" */ './categories'
|
|
)
|
|
);
|
|
const CouponsReport = lazy( () =>
|
|
import( /* webpackChunkName: "analytics-report-coupons" */ './coupons' )
|
|
);
|
|
const TaxesReport = lazy( () =>
|
|
import( /* webpackChunkName: "analytics-report-taxes" */ './taxes' )
|
|
);
|
|
const DownloadsReport = lazy( () =>
|
|
import( /* webpackChunkName: "analytics-report-downloads" */ './downloads' )
|
|
);
|
|
const StockReport = lazy( () =>
|
|
import( /* webpackChunkName: "analytics-report-stock" */ './stock' )
|
|
);
|
|
const CustomersReport = lazy( () =>
|
|
import( /* webpackChunkName: "analytics-report-customers" */ './customers' )
|
|
);
|
|
|
|
const manageStock = getAdminSetting( 'manageStock', 'no' );
|
|
const REPORTS_FILTER = 'woocommerce_admin_reports_list';
|
|
|
|
export default () => {
|
|
const reports = [
|
|
{
|
|
report: 'revenue',
|
|
title: __( 'Revenue', 'woocommerce-admin' ),
|
|
component: RevenueReport,
|
|
navArgs: {
|
|
id: 'woocommerce-analytics-revenue',
|
|
},
|
|
},
|
|
{
|
|
report: 'products',
|
|
title: __( 'Products', 'woocommerce-admin' ),
|
|
component: ProductsReport,
|
|
navArgs: {
|
|
id: 'woocommerce-analytics-products',
|
|
},
|
|
},
|
|
{
|
|
report: 'variations',
|
|
title: __( 'Variations', 'woocommerce-admin' ),
|
|
component: VariationsReport,
|
|
navArgs: {
|
|
id: 'woocommerce-analytics-variations',
|
|
},
|
|
},
|
|
{
|
|
report: 'orders',
|
|
title: __( 'Orders', 'woocommerce-admin' ),
|
|
component: OrdersReport,
|
|
navArgs: {
|
|
id: 'woocommerce-analytics-orders',
|
|
},
|
|
},
|
|
{
|
|
report: 'categories',
|
|
title: __( 'Categories', 'woocommerce-admin' ),
|
|
component: CategoriesReport,
|
|
navArgs: {
|
|
id: 'woocommerce-analytics-categories',
|
|
},
|
|
},
|
|
{
|
|
report: 'coupons',
|
|
title: __( 'Coupons', 'woocommerce-admin' ),
|
|
component: CouponsReport,
|
|
navArgs: {
|
|
id: 'woocommerce-analytics-coupons',
|
|
},
|
|
},
|
|
{
|
|
report: 'taxes',
|
|
title: __( 'Taxes', 'woocommerce-admin' ),
|
|
component: TaxesReport,
|
|
navArgs: {
|
|
id: 'woocommerce-analytics-taxes',
|
|
},
|
|
},
|
|
manageStock === 'yes'
|
|
? {
|
|
report: 'stock',
|
|
title: __( 'Stock', 'woocommerce-admin' ),
|
|
component: StockReport,
|
|
navArgs: {
|
|
id: 'woocommerce-analytics-stock',
|
|
},
|
|
}
|
|
: null,
|
|
{
|
|
report: 'customers',
|
|
title: __( 'Customers', 'woocommerce-admin' ),
|
|
component: CustomersReport,
|
|
},
|
|
{
|
|
report: 'downloads',
|
|
title: __( 'Downloads', 'woocommerce-admin' ),
|
|
component: DownloadsReport,
|
|
navArgs: {
|
|
id: 'woocommerce-analytics-downloads',
|
|
},
|
|
},
|
|
].filter( Boolean );
|
|
|
|
/**
|
|
* An object defining a report page.
|
|
*
|
|
* @typedef {Object} report
|
|
* @property {string} report Report slug.
|
|
* @property {string} title Report title.
|
|
* @property {Node} component React Component to render.
|
|
* @property {Object} navArgs Arguments supplied to WooCommerce Navigation.
|
|
*/
|
|
|
|
/**
|
|
* Filter Report pages list.
|
|
*
|
|
* @filter woocommerce_admin_reports_list
|
|
* @param {Array.<report>} reports Report pages list.
|
|
*/
|
|
return applyFilters( REPORTS_FILTER, reports );
|
|
};
|