import React, {useEffect, useState} from 'react'; import theme from '../theme.jsx'; import ReactGA from 'react-ga4'; import {Link} from 'react-router-dom'; import { removeQuery } from '../components/ScrollToTop.jsx'; import { Search as SearchIcon, CloudQueue as CloudQueueIcon, Code as CodeIcon, Close as CloseIcon, Folder as FolderIcon, LibraryBooks as LibraryBooksIcon } from '@mui/icons-material'; import aa from 'search-insights' import algoliasearch from 'algoliasearch/lite'; import { InstantSearch, Configure, connectSearchBox, connectHits } from 'react-instantsearch-dom'; import { Zoom, Grid, Paper, TextField, Avatar, ButtonBase, InputAdornment, Typography, Button, Tooltip, List, ListItem, ListItemAvatar, ListItemText, } from '@mui/material'; const searchClient = algoliasearch("JNSS5CFDZZ", "db08e40265e2941b9a7d8f644b6e5240") const DocsGrid = props => { const { maxRows, showName, showSuggestion, isMobile, globalUrl, parsedXs, userdata, } = props const rowHandler = maxRows === undefined || maxRows === null ? 50 : maxRows const xs = parsedXs === undefined || parsedXs === null ? isMobile ? 6 : 2 : parsedXs //const [apps, setApps] = React.useState([]); //const [filteredApps, setFilteredApps] = React.useState([]); const [formMail, setFormMail] = React.useState(""); const [message, setMessage] = React.useState(""); const [formMessage, setFormMessage] = React.useState(""); const buttonStyle = {borderRadius: 30, height: 50, width: 220, margin: isMobile ? "15px auto 15px auto" : 20, fontSize: 18,} const innerColor = "rgba(255,255,255,0.65)" const borderRadius = 3 window.title = "Shuffle | Apps | Find and integrate any app" const submitContact = (email, message) => { const data = { "firstname": "", "lastname": "", "title": "", "companyname": "", "email": email, "phone": "", "message": message, } const errorMessage = "Something went wrong. Please contact frikky@shuffler.io directly." fetch(globalUrl+"/api/v1/contact", { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }) .then(response => response.json()) .then(response => { if (response.success === true) { setFormMessage(response.reason) //toast("Thanks for submitting!") } else { setFormMessage(errorMessage) } setFormMail("") setMessage("") }) .catch(error => { setFormMessage(errorMessage) console.log(error) }); } const SearchBox = ({currentRefinement, refine, isSearchStalled} ) => { var defaultSearch = "" if (window !== undefined && window.location !== undefined && window.location.search !== undefined && window.location.search !== null) { const urlSearchParams = new URLSearchParams(window.location.search) const params = Object.fromEntries(urlSearchParams.entries()) const foundQuery = params["q"] if (foundQuery !== null && foundQuery !== undefined) { console.log("Got query: ", foundQuery) refine(foundQuery) defaultSearch = foundQuery } } return (
) } var workflowDelay = -50 const Hits = ({ hits }) => { const [mouseHoverIndex, setMouseHoverIndex] = useState(-1) //console.log(hits) //var curhits = hits //if (hits.length > 0 && defaultApps.length === 0) { // setDefaultApps(hits) //} //const [defaultApps, setDefaultApps] = React.useState([]) //console.log(hits) //if (hits.length > 0 && hits.length !== innerHits.length) { // setInnerHits(hits) //} var counted = 0 return (