@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 10.6 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/query-title/edit.js"],
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tWarning,\n\tHeadingLevelDropdown,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useArchiveLabel } from './use-archive-label';\nimport { usePostTypeLabel } from './use-post-type-label';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst SUPPORTED_TYPES = [ 'archive', 'search', 'post-type' ];\n\nexport default function QueryTitleEdit( {\n\tattributes: {\n\t\ttype,\n\t\tlevel,\n\t\tlevelOptions,\n\t\ttextAlign,\n\t\tshowPrefix,\n\t\tshowSearchTerm,\n\t},\n\tsetAttributes,\n\tcontext: { query },\n} ) {\n\tconst { archiveTypeLabel, archiveNameLabel } = useArchiveLabel();\n\tconst { postTypeLabel } = usePostTypeLabel( query?.postType );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst TagName = level === 0 ? 'p' : `h${ level }`;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( 'wp-block-query-title__placeholder', {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tif ( ! SUPPORTED_TYPES.includes( type ) ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>{ __( 'Provided type is not supported.' ) }</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet titleElement;\n\tif ( type === 'archive' ) {\n\t\tlet title;\n\t\tif ( archiveTypeLabel ) {\n\t\t\tif ( showPrefix ) {\n\t\t\t\tif ( archiveNameLabel ) {\n\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t/* translators: 1: Archive type title e.g: \"Category\", 2: Label of the archive e.g: \"Shoes\" */\n\t\t\t\t\t\t_x( '%1$s: %2$s', 'archive label' ),\n\t\t\t\t\t\tarchiveTypeLabel,\n\t\t\t\t\t\tarchiveNameLabel\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t/* translators: %s: Archive type title e.g: \"Category\", \"Tag\"... */\n\t\t\t\t\t\t__( '%s: Name' ),\n\t\t\t\t\t\tarchiveTypeLabel\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if ( archiveNameLabel ) {\n\t\t\t\ttitle = archiveNameLabel;\n\t\t\t} else {\n\t\t\t\ttitle = sprintf(\n\t\t\t\t\t/* translators: %s: Archive type title e.g: \"Category\", \"Tag\"... */\n\t\t\t\t\t__( '%s name' ),\n\t\t\t\t\tarchiveTypeLabel\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\ttitle = showPrefix\n\t\t\t\t? __( 'Archive type: Name' )\n\t\t\t\t: __( 'Archive title' );\n\t\t}\n\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowPrefix: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showPrefix }\n\t\t\t\t\t\t\tlabel={ __( 'Show archive type in title' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showPrefix: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show archive type in title' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowPrefix: ! showPrefix,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ showPrefix }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<TagName { ...blockProps }>{ title }</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( type === 'search' ) {\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowSearchTerm: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showSearchTerm }\n\t\t\t\t\t\t\tlabel={ __( 'Show search term in title' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showSearchTerm: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show search term in title' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSearchTerm: ! showSearchTerm,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ showSearchTerm }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t{ showSearchTerm\n\t\t\t\t\t\t? __( 'Search results for: \u201Csearch term\u201D' )\n\t\t\t\t\t\t: __( 'Search results' ) }\n\t\t\t\t</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( type === 'post-type' ) {\n\t\tlet title;\n\t\tif ( postTypeLabel ) {\n\t\t\tif ( showPrefix ) {\n\t\t\t\ttitle = sprintf(\n\t\t\t\t\t/* translators: %s: Singular post type name of the queried object */\n\t\t\t\t\t__( 'Post Type: \"%s\"' ),\n\t\t\t\t\tpostTypeLabel\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttitle = postTypeLabel;\n\t\t\t}\n\t\t} else {\n\t\t\ttitle = showPrefix ? __( 'Post Type: Name' ) : __( 'Name' );\n\t\t}\n\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowPrefix: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showPrefix }\n\t\t\t\t\t\t\tlabel={ __( 'Show post type label' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showPrefix: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show post type label' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowPrefix: ! showPrefix,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ showPrefix }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<TagName { ...blockProps }>{ title }</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\tvalue={ level }\n\t\t\t\t\toptions={ levelOptions }\n\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ titleElement }\n\t\t</>\n\t);\n}\n"],
"mappings": "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",
"names": ["clsx", "ToolsPanel", "ToolsPanelItem"]
}