UNPKG

@shko.online/lookupobjects-mock

Version:

Mocking Dataverse Lookup Objects to simplify writing soties for PCF components

44 lines 1.97 kB
import React, { useCallback, useState } from 'react'; import SelectedEntityFilter from './SelectedEntityFilter'; function MultiEntityFilter({ entityTypes, db, results, searchByEntityRecords }) { const [selectedEntity, setSelectedEntity] = useState(); const onAllClick = useCallback(() => { searchByEntityRecords(); setSelectedEntity(null); }, [searchByEntityRecords, setSelectedEntity]); return selectedEntity == null ? /*#__PURE__*/React.createElement("div", { className: "so.m-1 so.rounded so.bg-zinc-50 so.h-8 ", role: "none" }, /*#__PURE__*/React.createElement("div", { className: "so.flex so.flex-row so.items-center", role: "none" }, /*#__PURE__*/React.createElement("div", { className: "so.pl-2 so.text-sm so.text-center so.text-neutral-800 so.cursor-default", role: "none" }, `Results from: `), /*#__PURE__*/React.createElement("ul", { className: "so.flex so.flex-wrap so.overflow-hidden" }, entityTypes.map(value => { const metadata = db.getTableMetadata(value); const onClick = () => { setSelectedEntity(metadata); searchByEntityRecords(value); }; return /*#__PURE__*/React.createElement("li", { key: value }, /*#__PURE__*/React.createElement("button", { className: "so.flex so.text-xs so.py-1 so.px-2 so.m-1 so.leading-4 so.border so.border-neutral-300 disabled:so.border-opacity-30 so.border-solid so.rounded so.bg-white disabled:so.bg-zinc-100 disabled:so.bg-opacity-30 so.text-neutral-800 disabled:so.text-stone-950 disabled:so.text-opacity-50 so.cursor-pointer", disabled: results?.filter(i => i.entityType === value).length === 0, onClick: onClick, type: "button" }, /*#__PURE__*/React.createElement("span", null, metadata.DisplayName || metadata.LogicalName))); })))) : /*#__PURE__*/React.createElement(SelectedEntityFilter, { OnAllClick: onAllClick, entity: selectedEntity }); } export default MultiEntityFilter;