@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
43 lines (42 loc) • 1.25 kB
JavaScript
import { jsx } from "react/jsx-runtime";
import { memo } from "react";
import { useQueryBuilderContext } from "../../../Context.js";
import { isBigList } from "../../../utils/index.js";
import { HvDropdown } from "../../../../Dropdown/Dropdown.js";
const BooleanValue = ({ id, value = true }) => {
const { labels, dispatchAction, readOnly } = useQueryBuilderContext();
const values = ["true", "false"].map((v) => ({
id: v,
label: labels.rule.value.boolean.options[v],
selected: value === (v === "true")
}));
return /* @__PURE__ */ jsx(
HvDropdown,
{
required: true,
status: "valid",
singleSelectionToggle: false,
label: labels.rule.value.boolean.label,
placeholder: labels.rule.value.boolean.placeholder,
values,
readOnly,
onChange: (selected) => {
if (selected?.id) {
dispatchAction({
type: "set-value",
id,
value: selected.id === "true"
});
} else {
dispatchAction({ type: "set-value", id, value: null });
}
},
showSearch: isBigList(values),
...isBigList(values) && { virtualized: true, height: 300 }
}
);
};
memo(BooleanValue);
export {
BooleanValue
};