UNPKG

@talend/react-faceted-search

Version:
50 lines (49 loc) 1.61 kB
import { useState } from 'react'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; import { FACETED_MODE, I18N_DOMAIN_FACETED_SEARCH } from '../../constants'; import { FacetedToolbar } from '../FacetedToolbar'; import { FacetedManager } from '../FacetedManager'; import { controlled } from '../../controlled'; import { jsx as _jsx } from "react/jsx-runtime"; const FacetedSearch = ({ children, error, facetedMode, id, inProgress, setFacetedMode }) => { const isControlled = controlled('FacetedSearch', facetedMode, setFacetedMode); const [facetedModeState, setFacetedModeState] = useState(FACETED_MODE.BASIC); const { t } = useTranslation(I18N_DOMAIN_FACETED_SEARCH); const facetedId = `${id}-faceted`; const mode = isControlled ? facetedMode : facetedModeState; const setMode = isControlled ? setFacetedMode : setFacetedModeState; return /*#__PURE__*/_jsx(FacetedManager, { error: error, id: facetedId, inProgress: inProgress, t: t, children: typeof children === 'function' ? /*#__PURE__*/_jsx(FacetedToolbar, { id: id, facetedMode: mode, onChangeFacetedMode: setMode, t: t, children: children(mode) }) : children }); }; FacetedSearch.propTypes = { children: PropTypes.func.isRequired, error: PropTypes.string, facetedMode: PropTypes.string, id: PropTypes.string.isRequired, inProgress: PropTypes.bool, setFacetedMode: PropTypes.func }; // eslint-disable-next-line import/prefer-default-export export { FacetedSearch }; //# sourceMappingURL=FacetedSearch.component.js.map