@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
50 lines (49 loc) • 1.61 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const setId = require("../../utils/setId.cjs");
const ControlsContext = require("../context/ControlsContext.cjs");
const RightControl_styles = require("./RightControl.styles.cjs");
const Dropdown = require("../../Dropdown/Dropdown.cjs");
const HvRightControl = ({
id,
classes: classesProp,
className,
children,
values,
onSort,
hideSortBy = false,
sortProps,
...others
}) => {
const { classes, cx } = RightControl_styles.useClasses(classesProp);
const [dropDownValues, setDropdownValues] = React.useState(values);
const { onSort: onSortHandler } = React.useContext(ControlsContext.HvControlsContext);
const handleChangeSort = (value) => {
onSort?.(value);
onSortHandler?.(value);
setDropdownValues(
(prevValues) => prevValues?.map((prevValue) => ({
...prevValue,
selected: prevValue.id === value.id
}))
);
};
return /* @__PURE__ */ jsxRuntime.jsxs("div", { id, className: cx(classes.root, className), ...others, children: [
!hideSortBy && /* @__PURE__ */ jsxRuntime.jsx(
Dropdown.HvDropdown,
{
id: setId.setId(id, "sort-by-dropdown"),
values: dropDownValues,
className: classes.sortDropdown,
onChange: handleChangeSort,
singleSelectionToggle: false,
...sortProps
}
),
children
] });
};
exports.rightControlClasses = RightControl_styles.staticClasses;
exports.HvRightControl = HvRightControl;