import React, {useEffect, useState} from 'react'; const { __ } = wp.i18n; export function SearchDropdown( props ) { const [searchResultsFieldStatus, setSearchResultsFieldStatus] = useState( 'closed' ); const [textareaValue, setTextareaValue] = useState( '' ); const [dropdownMarkup, setDropdownMarkup] = useState( '' ); const [reset, setReset] = useState( false ); let searchResultsItems = []; /** * Sets the dropdown content when there's a change on any of props.searchResults, props.showDefaultMessage, props.showNoResultsMessage */ useEffect(() => { if ( props.searchResults ) { searchResultsItems = props.searchResults; } else { searchResultsItems = []; } if ( ! props.showDefaultMessage && ! props.showNoResultsMessage ) { setDropdownMarkup( printItems() ); } else { setDropdownMarkup( dropdownContent() ); } }, [props.searchResults, props.showDefaultMessage, props.showNoResultsMessage], reset); /** * Initially sets the dropdown content to the default message. */ useEffect( () => { setDropdownMarkup( getDefaultMessage() ); }, [] ); /** * On dropdown container focus, the textarea gets focused so user can start typing immediately. * @param el */ const handleSearchDropdownFocus = ( el ) => { if ( 'closed' === searchResultsFieldStatus ) { const textarea = el.currentTarget.querySelector( 'textarea' ); if ( 'undefined' !== typeof textarea && textarea !== null ) { textarea.tabIndex = '-1'; textarea.focus(); } } } const handleSearchDropdownClick = ( el ) => { } /** * On keydown sets the value of textarea. * @param el */ const handleSearchDropdownKeyDown = ( el ) => { setTextareaValue( el.currentTarget.value ) setSearchResultsFieldStatus( 'open' ); } /** * Expands results area upon textarea focus. * @param el */ const handleTextareaFocus = ( el ) => { setSearchResultsFieldStatus( 'open' ); } const handleSearchDropdownBlur = ( el ) => { const blurTimer = setInterval(function() { const resultsWrapperId = `sui-select-dropdown-wrap-${props.id}`, textareaId = `search-dropdown-textbox-${props.id}`, rendererWrapId = `blc-search-dropdown__renderer_wrap-${props.id}`; if ( resultsWrapperId !== document.activeElement.id && textareaId !== document.activeElement.id && rendererWrapId !== document.activeElement.id ) { setSearchResultsFieldStatus( 'closed' ); setTextareaValue( '' ); } clearInterval( blurTimer ); }, 160); } const handleResultsContainerClick = ( el ) => { el.currentTarget.tabIndex = '-1'; el.currentTarget.focus(); } const clearDropdown = () => { setSearchResultsFieldStatus( 'closed' ); setTextareaValue( '' ); //props.searchResults = []; setDropdownMarkup( ''); //props.showDefaultMessage = true; //props.showNoResultsMessage = false; setDropdownMarkup( getDefaultMessage() ); setReset( true ) } const printItems = () => { if ( typeof searchResultsItems !== 'undefined' && searchResultsItems.length > 0 ) { return ( searchResultsItems.map( (listItem) => ( ( typeof listItem !== 'undefined' && listItem.hasOwnProperty( 'key' ) ) &&
  • { listItem.onClick(); clearDropdown(); } } > {listItem.display}
  • ) ) ) } } const getDefaultMessage = () => { return
  • {props.defaultMessage}
  • ; } const dropdownContent = () => { if ( props.showDefaultMessage && props.defaultMessage ) { return getDefaultMessage(); } else if ( props.showNoResultsMessage && props.noResultsMessage ) { return
  • {props.noResultsMessage}
  • ; } return printItems(); } return(
    { handleSearchDropdownFocus(e) }} onClick={(e)=> { handleSearchDropdownClick(e) }} onKeyDown={(e)=> { handleSearchDropdownKeyDown(e) }} onBlur={(e)=> { handleSearchDropdownBlur(e) }} >
    { handleResultsContainerClick(e) }} >
      {dropdownMarkup}
    ) }
    {"id":823,"date":"2024-10-30T10:38:13","date_gmt":"2024-10-30T13:38:13","guid":{"rendered":"https:\/\/automax.net.br\/?p=823"},"modified":"2024-10-31T05:59:06","modified_gmt":"2024-10-31T08:59:06","slug":"rejestracja-i-logowanie-nowych-graczy-t-kasynie-vulkan-vega","status":"publish","type":"post","link":"https:\/\/automax.net.br\/rejestracja-i-logowanie-nowych-graczy-t-kasynie-vulkan-vega\/","title":{"rendered":"Rejestracja I Logowanie Nowych Graczy T Kasynie Vulkan Vega"},"content":{"rendered":"

    Rejestracja I Logowanie Nowych Graczy T Kasynie Vulkan Vegas<\/p>\n

    Gry Hazardowe \ufe0f Graj W Gry Kasynowe Za Darmo Albo Na Prawdziwe Pieni\u0105dze<\/h1>\n

    Z tego powodu wymagamy od graczy dokument\u00f3w potwierdzania swojego wieku we podejmujemy \u015brodki ostro\u017cno\u015bci, aby zapobiec dost\u0119powi nieletnich do naszej strony hazardowej. Odpowiedzialna gra to nie und nimmer tylko dba\u0142o\u015b\u0107 to bezpiecze\u0144stwo graczy, alcohol tak\u017ce o ich do\u015bwiadczenie rozrywkowe. Wi\u0119kszo\u015b\u0107 naszych sezonowych bonus\u00f3w ma okre\u015blony czas trwania promocji, unces kolei regularne premie mog\u0105 posiada\u0107 r\u00f3\u017cne wymagania, co perform spe\u0142nienia warunk\u00f3w obrotu \u015brodkami promocyjnymi. Na przyk\u0142ad, \u015brodkami z premii cashback nale\u017cy obr\u00f3ci\u0107 5-krotnie t czasie 5 dni, natomiast bonusem got\u00f3wkowym za pierwszy depozyt 40-krotnie w czasie 5 dni. Szczeg\u00f3\u0142owe warunki i wi\u0119cej u\u017cytecznych informacji znajdziesz w naszej polityce bonus\u00f3w i regulaminie ka\u017cdej promocji.<\/p>\n