@wordpress/block-editor
Version:
8 lines (7 loc) • 5.87 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/link-control/search-results.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { MenuGroup } from '@wordpress/components';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport LinkControlSearchCreate from './search-create-button';\nimport LinkControlSearchItem from './search-item';\nimport { CREATE_TYPE, LINK_ENTRY_TYPES } from './constants';\nimport deprecated from '@wordpress/deprecated';\n\nfunction LinkControlSearchResults( {\n\twithCreateSuggestion,\n\tcurrentInputValue,\n\thandleSuggestionClick,\n\tsuggestionsListProps,\n\tbuildSuggestionItemProps,\n\tsuggestions,\n\tselectedSuggestion,\n\tisLoading,\n\tisInitialSuggestions,\n\tcreateSuggestionButtonText,\n\tsuggestionsQuery,\n} ) {\n\tconst resultsListClasses = clsx(\n\t\t'block-editor-link-control__search-results',\n\t\t{\n\t\t\t'is-loading': isLoading,\n\t\t}\n\t);\n\n\tconst isSingleDirectEntryResult =\n\t\tsuggestions.length === 1 &&\n\t\tLINK_ENTRY_TYPES.includes( suggestions[ 0 ].type );\n\tconst shouldShowCreateSuggestion =\n\t\twithCreateSuggestion &&\n\t\t! isSingleDirectEntryResult &&\n\t\t! isInitialSuggestions;\n\t// If the query has a specified type, then we can skip showing them in the result. See #24839.\n\tconst shouldShowSuggestionsTypes = ! suggestionsQuery?.type;\n\n\tconst labelText = isInitialSuggestions\n\t\t? __( 'Suggestions' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Search results for \"%s\"' ),\n\t\t\t\tcurrentInputValue\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-link-control__search-results-wrapper\">\n\t\t\t<div\n\t\t\t\t{ ...suggestionsListProps }\n\t\t\t\tclassName={ resultsListClasses }\n\t\t\t\taria-label={ labelText }\n\t\t\t>\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t{ suggestions.map( ( suggestion, index ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tshouldShowCreateSuggestion &&\n\t\t\t\t\t\t\tCREATE_TYPE === suggestion.type\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<LinkControlSearchCreate\n\t\t\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\t\t\tbuttonText={ createSuggestionButtonText }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Intentionally only using `type` here as\n\t\t\t\t\t\t\t\t\t// the constant is enough to uniquely\n\t\t\t\t\t\t\t\t\t// identify the single \"CREATE\" suggestion.\n\t\t\t\t\t\t\t\t\tkey={ suggestion.type }\n\t\t\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If we're not handling \"Create\" suggestions above then\n\t\t\t\t\t\t// we don't want them in the main results so exit early.\n\t\t\t\t\t\tif ( CREATE_TYPE === suggestion.type ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<LinkControlSearchItem\n\t\t\t\t\t\t\t\tkey={ `${ suggestion.id }-${ suggestion.type }` }\n\t\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\t\tisURL={ LINK_ENTRY_TYPES.includes(\n\t\t\t\t\t\t\t\t\tsuggestion.type\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\t\tshouldShowType={ shouldShowSuggestionsTypes }\n\t\t\t\t\t\t\t\tisFrontPage={ suggestion?.isFrontPage }\n\t\t\t\t\t\t\t\tisBlogHome={ suggestion?.isBlogHome }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</MenuGroup>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default LinkControlSearchResults;\n\nexport const __experimentalLinkControlSearchResults = ( props ) => {\n\tdeprecated( 'wp.blockEditor.__experimentalLinkControlSearchResults', {\n\t\tsince: '6.8',\n\t} );\n\n\treturn <LinkControlSearchResults { ...props } />;\n};\n"],
"mappings": ";AAGA,SAAS,IAAI,eAAe;AAC5B,SAAS,iBAAiB;AAK1B,OAAO,UAAU;AAKjB,OAAO,6BAA6B;AACpC,OAAO,2BAA2B;AAClC,SAAS,aAAa,wBAAwB;AAC9C,OAAO,gBAAgB;AAsDf;AApDR,SAAS,yBAA0B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,qBAAqB;AAAA,IAC1B;AAAA,IACA;AAAA,MACC,cAAc;AAAA,IACf;AAAA,EACD;AAEA,QAAM,4BACL,YAAY,WAAW,KACvB,iBAAiB,SAAU,YAAa,CAAE,EAAE,IAAK;AAClD,QAAM,6BACL,wBACA,CAAE,6BACF,CAAE;AAEH,QAAM,6BAA6B,CAAE,kBAAkB;AAEvD,QAAM,YAAY,uBACf,GAAI,aAAc,IAClB;AAAA;AAAA,IAEA,GAAI,yBAA0B;AAAA,IAC9B;AAAA,EACA;AAEH,SACC,oBAAC,SAAI,WAAU,qDACd;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACL,WAAY;AAAA,MACZ,cAAa;AAAA,MAEb,8BAAC,aACE,sBAAY,IAAK,CAAE,YAAY,UAAW;AAC3C,YACC,8BACA,gBAAgB,WAAW,MAC1B;AACD,iBACC;AAAA,YAAC;AAAA;AAAA,cACA,YAAa;AAAA,cACb,YAAa;AAAA,cACb,SAAU,MACT,sBAAuB,UAAW;AAAA,cAMnC,WAAY;AAAA,gBACX;AAAA,gBACA;AAAA,cACD;AAAA,cACA,YAAa,UAAU;AAAA;AAAA,YALjB,WAAW;AAAA,UAMlB;AAAA,QAEF;AAIA,YAAK,gBAAgB,WAAW,MAAO;AACtC,iBAAO;AAAA,QACR;AAEA,eACC;AAAA,UAAC;AAAA;AAAA,YAEA,WAAY;AAAA,cACX;AAAA,cACA;AAAA,YACD;AAAA,YACA;AAAA,YACA;AAAA,YACA,SAAU,MAAM;AACf,oCAAuB,UAAW;AAAA,YACnC;AAAA,YACA,YAAa,UAAU;AAAA,YACvB,OAAQ,iBAAiB;AAAA,cACxB,WAAW;AAAA,YACZ;AAAA,YACA,YAAa;AAAA,YACb,gBAAiB;AAAA,YACjB,aAAc,YAAY;AAAA,YAC1B,YAAa,YAAY;AAAA;AAAA,UAjBnB,GAAI,WAAW,EAAG,IAAK,WAAW,IAAK;AAAA,QAkB9C;AAAA,MAEF,CAAE,GACH;AAAA;AAAA,EACD,GACD;AAEF;AAEA,IAAO,yBAAQ;AAER,IAAM,yCAAyC,CAAE,UAAW;AAClE,aAAY,yDAAyD;AAAA,IACpE,OAAO;AAAA,EACR,CAAE;AAEF,SAAO,oBAAC,4BAA2B,GAAG,OAAQ;AAC/C;",
"names": []
}