@orfeas126/box-ui-elements
Version:
Box UI Elements
32 lines (31 loc) • 1.42 kB
JavaScript
/**
*
* @file Sort component
* @author Box
*/
import * as React from 'react';
import { FormattedMessage } from 'react-intl';
import DropdownMenu from '../../../components/dropdown-menu/DropdownMenu';
import Menu from '../../../components/menu/Menu';
import SelectMenuItem from '../../../components/menu/SelectMenuItem';
import SortButton from './SortButton';
import messages from '../messages';
import { FIELD_NAME, FIELD_DATE, FIELD_SIZE, SORT_ASC, SORT_DESC } from '../../../constants';
const SORT_ITEMS = [[FIELD_NAME, SORT_ASC], [FIELD_NAME, SORT_DESC], [FIELD_DATE, SORT_ASC], [FIELD_DATE, SORT_DESC], [FIELD_SIZE, SORT_ASC], [FIELD_SIZE, SORT_DESC]];
const Sort = ({
sortBy,
sortDirection,
onSortChange
}) => /*#__PURE__*/React.createElement(DropdownMenu, {
isRightAligned: true
}, /*#__PURE__*/React.createElement(SortButton, null), /*#__PURE__*/React.createElement(Menu, null, SORT_ITEMS.map(([sortByValue, sortDirectionValue]) => {
const isSelected = sortByValue === sortBy && sortDirectionValue === sortDirection;
const sortItemKey = `${sortByValue}${sortDirectionValue}`;
return /*#__PURE__*/React.createElement(SelectMenuItem, {
key: sortItemKey,
isSelected: isSelected,
onClick: () => onSortChange(sortByValue, sortDirectionValue)
}, /*#__PURE__*/React.createElement(FormattedMessage, messages[sortItemKey]));
})));
export default Sort;
//# sourceMappingURL=Sort.js.map