UNPKG

@prezly/theme-kit-ui

Version:
57 lines (56 loc) 1.93 kB
'use client'; import * as Dialog from '@radix-ui/react-dialog'; import algoliasearch from 'algoliasearch/lite'; import React, { useMemo } from 'react'; import { Configure, InstantSearch } from 'react-instantsearch'; import { twMerge } from 'tailwind-merge'; import { MainPanel, SearchBar } from "./components/index.mjs"; export function SearchModal(_ref) { var { isOpen, categories, className, overlayClassName, onToggle, algoliaConfig, locale, newsroomName, logo, showSubtitle = true, showDate } = _ref; var { ALGOLIA_API_KEY, ALGOLIA_APP_ID, ALGOLIA_INDEX } = algoliaConfig; var searchClient = useMemo(() => algoliasearch(ALGOLIA_APP_ID, ALGOLIA_API_KEY), [ALGOLIA_API_KEY, ALGOLIA_APP_ID]); function handleClose() { onToggle(false); } return /*#__PURE__*/React.createElement(Dialog.Root, { open: isOpen, onOpenChange: onToggle }, /*#__PURE__*/React.createElement(Dialog.Portal, null, /*#__PURE__*/React.createElement(Dialog.Overlay, { className: twMerge('fixed inset-0 bg-gray-700 bg-opacity-40', overlayClassName) }), /*#__PURE__*/React.createElement(Dialog.Content, { className: twMerge('fixed top-1/2 left-1/2 w-full h-screen md:max-h-[70vh] md:h-max max-w-[680px] bg-white -translate-x-1/2 -translate-y-1/2 rounded', 'overflow-auto', className) }, /*#__PURE__*/React.createElement(InstantSearch, { searchClient: searchClient, indexName: ALGOLIA_INDEX }, /*#__PURE__*/React.createElement(Configure, { hitsPerPage: 3, filters: "attributes.culture.code:".concat(locale) }), /*#__PURE__*/React.createElement(SearchBar, { locale: locale, newsroomName: newsroomName, onClose: handleClose }), /*#__PURE__*/React.createElement(MainPanel, { categories: categories, locale: locale, logo: logo, showSubtitle: showSubtitle, showDate: showDate, newsroomName: newsroomName }))))); }