UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

51 lines (50 loc) 1.46 kB
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 };