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