import { useAdminCustomers, useAdminDiscounts, useAdminOrders, useAdminProducts, } from "medusa-react" import React from "react" import { useTranslation } from "react-i18next" import { useDebounce } from "../../../hooks/use-debounce" import Spinner from "../../atoms/spinner" import Input from "../../atoms/text-input" import SearchIcon from "../../fundamentals/icons/search-icon" import * as RadixDialog from "@radix-ui/react-dialog" import CustomerResults from "./results/customer-results" import DiscountResults from "./results/discount-results" import KeyboardShortcuts from "./keyboard-shortcuts" import ProductResults from "./results/product-results" import useKeyboardNavigationList from "./use-keyboard-navigation-list" import clsx from "clsx" import OrderResults from "./results/order-results" import CrossIcon from "../../fundamentals/icons/cross-icon" import Tooltip from "../../atoms/tooltip" const getTotal = (...lists) => lists.reduce((total, list = []) => total + list.length, 0) const SearchModal = ({ handleClose }) => { const { t } = useTranslation() const [q, setQ] = React.useState("") const query = useDebounce(q, 500) const onChange = (e) => setQ(e.target.value) const handleClear = () => { setQ("") } const { orders, isFetching: isFetchingOrders } = useAdminOrders( { q: query, limit: 5, offset: 0, }, { enabled: !!query, keepPreviousData: true } ) const { customers, isFetching: isFetchingCustomers } = useAdminCustomers( { q: query, limit: 5, offset: 0, }, { enabled: !!query, keepPreviousData: true, retry: 0 } ) const { discounts, isFetching: isFetchingDiscounts } = useAdminDiscounts( { q: query, limit: 5, offset: 0 }, { enabled: !!query, keepPreviousData: true } ) const { products, isFetching: isFetchingProducts } = useAdminProducts( { q: query, limit: 5 }, { enabled: !!query, keepPreviousData: true } ) const isFetching = isFetchingDiscounts || isFetchingCustomers || isFetchingProducts || isFetchingOrders const totalLength = getTotal(products, discounts, customers, orders) const { getInputProps, getLIProps, getULProps, selected } = useKeyboardNavigationList({ length: totalLength, }) return ( 0 } )} >
{totalLength > 0 ? (
    {isFetching ? (
    ) : ( <>
    )}
) : null}
) } export default SearchModal