import React, { useState, useEffect, useRef } from 'react'; import theme from '../theme.jsx'; import { Link, useNavigate } from 'react-router-dom'; import { Search as SearchIcon, CloudQueue as CloudQueueIcon, Code as CodeIcon } from '@mui/icons-material'; //import algoliasearch from 'algoliasearch/lite'; import algoliasearch from 'algoliasearch'; import { InstantSearch, connectSearchBox, connectHits } from 'react-instantsearch-dom'; import { Grid, Paper, TextField, InputAdornment, Typography, } from '@mui/material'; const searchClient = algoliasearch("JNSS5CFDZZ", "33e4e3564f4f060e96e0531957bed552") const Appsearch = props => { const { maxRows, showName, showSuggestion, isMobile, globalUrl, parsedXs, newSelectedApp, setNewSelectedApp, defaultSearch, showSearch, ConfiguredHits, userdata, cy, isCreatorPage, actionImageList, setActionImageList, setUserSpecialzedApp, placeholder, } = props let navigate = useNavigate(); const rowHandler = maxRows === undefined || maxRows === null ? 50 : maxRows const xs = parsedXs === undefined || parsedXs === null ? 12 : parsedXs const [open, setOpen] = React.useState(false); const [value, setValue] = useState(""); window.title = "Shuffle | Apps | Find and integration any app" const useCloseOnBlur = (setOpen) => { useEffect(() => { // Add event listener to detect clicks outside of the search box const handleClickOutside = (event) => { // Check if the click is outside the search box if (!event.target.closest('.search-box')) { setOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); // Clean up event listener return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, [setOpen]); // Ensure that this effect runs whenever setOpen changes }; useCloseOnBlur(setOpen); const SearchBox = ({ currentRefinement, refine, isSearchStalled }) => { useEffect(() => { //console.log("FIRST LOAD ONLY? RUN REFINEMENT: !", currentRefinement) if (defaultSearch !== undefined && defaultSearch !== null) { refine(defaultSearch) } }, []) return (