/** * External dependencies */ import classNames from 'classnames'; import { Icon } from '@wordpress/icons'; import { customerAccountStyle, customerAccountStyleAlt, } from '@woocommerce/icons'; import { InspectorControls } from '@wordpress/block-editor'; import { __ } from '@wordpress/i18n'; import type { BlockAttributes } from '@wordpress/blocks'; import { getSetting } from '@woocommerce/settings'; import { createInterpolateElement } from '@wordpress/element'; import { PanelBody, SelectControl, // eslint-disable-next-line @wordpress/no-unsafe-wp-apis __experimentalToggleGroupControl as ToggleGroupControl, // eslint-disable-next-line @wordpress/no-unsafe-wp-apis __experimentalToggleGroupControlOption as ToggleGroupControlOption, ExternalLink, } from '@wordpress/components'; /** * Internal dependencies */ import { DisplayStyle, IconStyle } from './types'; interface BlockSettingsProps { attributes: BlockAttributes; setAttributes: ( attrs: BlockAttributes ) => void; } const AccountSettingsLink = () => { const accountSettingsUrl = `${ getSetting( 'adminUrl' ) }admin.php?page=wc-settings&tab=account`; const linkText = createInterpolateElement( `${ __( 'Manage account settings', 'woo-gutenberg-products-block' ) }`, { a: , } ); return (
{ linkText }
); }; export const BlockSettings = ( { attributes, setAttributes, }: BlockSettingsProps ) => { const { displayStyle, iconStyle } = attributes; const displayIconStyleSelector = [ DisplayStyle.ICON_ONLY, DisplayStyle.ICON_AND_TEXT, ].includes( displayStyle ); return ( { setAttributes( { displayStyle: value } ); } } help={ __( 'Choose if you want to include an icon with the customer account link.', 'woo-gutenberg-products-block' ) } options={ [ { value: DisplayStyle.ICON_AND_TEXT, label: __( 'Icon and text', 'woo-gutenberg-products-block' ), }, { value: DisplayStyle.TEXT_ONLY, label: __( 'Text-only', 'woo-gutenberg-products-block' ), }, { value: DisplayStyle.ICON_ONLY, label: __( 'Icon-only', 'woo-gutenberg-products-block' ), }, ] } /> { displayIconStyleSelector ? ( setAttributes( { iconStyle: value, } ) } className="wc-block-customer-account__icon-style-toggle" > } /> } /> ) : null } ); };