/** * External dependencies */ import { __ } from '@wordpress/i18n'; import ProductAttributeTermControl from '@woocommerce/editor-components/product-attribute-term-control'; import { SearchListItem } from '@woocommerce/editor-components/search-list-control/types'; import { ADMIN_URL } from '@woocommerce/settings'; import { ExternalLink, // @ts-expect-error Using experimental features // eslint-disable-next-line @wordpress/no-unsafe-wp-apis __experimentalToolsPanelItem as ToolsPanelItem, } from '@wordpress/components'; /** * Internal dependencies */ import { QueryControlProps } from '../types'; const EDIT_ATTRIBUTES_URL = `${ ADMIN_URL }edit.php?post_type=product&page=product_attributes`; const AttributesControl = ( { query, setQueryAttribute, }: QueryControlProps ) => { const woocommerceAttributes = query.woocommerceAttributes || []; const selectedAttributes = woocommerceAttributes?.map( ( { termId: id } ) => ( { id, } ) ); return ( !! woocommerceAttributes?.length } > { const newValue = searchListItems.map( ( { id, value } ) => ( { termId: id as number, taxonomy: value as string, } ) ); setQueryAttribute( { woocommerceAttributes: newValue, } ); } } operator={ 'any' } isCompact={ true } type={ 'token' } /> { __( 'Manage attributes', 'woo-gutenberg-products-block' ) } ); }; export default AttributesControl;