@chayns-components/person-finder
Version:
A set of beautiful React components for developing your own applications with chayns.
62 lines • 2.23 kB
JavaScript
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