diff --git a/plugins/woocommerce-admin/client/marketplace/components/category-selector/category-dropdown.tsx b/plugins/woocommerce-admin/client/marketplace/components/category-selector/category-dropdown.tsx index 8baf649898b..b4f8065bbc9 100644 --- a/plugins/woocommerce-admin/client/marketplace/components/category-selector/category-dropdown.tsx +++ b/plugins/woocommerce-admin/client/marketplace/components/category-selector/category-dropdown.tsx @@ -4,15 +4,39 @@ import { Dropdown } from '@wordpress/components'; import { chevronDown, chevronUp, Icon } from '@wordpress/icons'; import { __ } from '@wordpress/i18n'; +import { navigateTo, getNewPath } from '@woocommerce/navigation'; +import classNames from 'classnames'; /** * Internal dependencies */ -import { Category } from './category-selector'; +import { Category } from './types'; function DropdownContent( props: { readonly categories: Category[]; + readonly selected?: Category; + readonly onClick: () => void; } ): JSX.Element { + function updateCategorySelection( + event: React.MouseEvent< HTMLButtonElement > + ) { + const slug = event.currentTarget.value; + + if ( ! slug ) { + return; + } + + /** + * Trigger the onClick event on the parent component to close the dropdown. + * This closes the dropdown automatically when a user clicks on an item. + */ + props.onClick(); + + navigateTo( { + url: getNewPath( { category: slug } ), + } ); + } + return (