UNPKG

@chayns-components/person-finder

Version:

A set of beautiful React components for developing your own applications with chayns.

62 lines 2.23 kB
import React, { forwardRef, useImperativeHandle, useRef } from 'react'; import { PersonFinderFilterTypes, Priority } from '../../types/personFinder'; import PersonFinderProvider from '../PersonFinderProvider'; import PersonFinderWrapper from './person-finder-wrapper/PersonFinderWrapper'; import { AreaProvider } from '@chayns-components/core'; const DEFAULT_FILTER_TYPES = [PersonFinderFilterTypes.PERSON, PersonFinderFilterTypes.SITE]; const PersonFinder = /*#__PURE__*/forwardRef(({ container, dropdownDirection, defaultEntries, excludedEntryIds, uacFilter, filterTypes = uacFilter ? [PersonFinderFilterTypes.PERSON] : DEFAULT_FILTER_TYPES, friendsPriority = Priority.HIGH, leftElement, maxEntries, onAdd, onDropdownHide, onDropdownShow, onRemove, placeholder = 'Person oder Site finden', shouldAllowMultiple = true, shouldHideResultsOnAdd = !shouldAllowMultiple || false, shouldShowOwnUser = false }, ref) => { const personFinderRef = useRef(null); const innerRef = useRef(null); useImperativeHandle(ref, () => ({ clear: () => innerRef.current?.clear() })); return /*#__PURE__*/React.createElement(PersonFinderProvider, { friendsPriority: friendsPriority, defaultEntries: defaultEntries, filterTypes: filterTypes, excludedEntryIds: excludedEntryIds, shouldShowOwnUser: shouldShowOwnUser, uacFilter: uacFilter }, /*#__PURE__*/React.createElement(AreaProvider, { shouldChangeColor: false, shouldDisableListItemPadding: true }, /*#__PURE__*/React.createElement("div", { className: "beta-chayns-person-finder", ref: personFinderRef }, /*#__PURE__*/React.createElement(PersonFinderWrapper, { ref: innerRef, container: container, dropdownDirection: dropdownDirection, filterTypes: filterTypes, maxEntries: maxEntries, onAdd: onAdd, onDropdownHide: onDropdownHide, onDropdownShow: onDropdownShow, leftElement: leftElement, onRemove: onRemove, placeholder: placeholder, shouldAllowMultiple: shouldAllowMultiple, shouldHideResultsOnAdd: shouldHideResultsOnAdd })))); }); PersonFinder.displayName = 'PersonFinder'; export default PersonFinder; //# sourceMappingURL=PersonFinder.js.map