UNPKG

@talend/react-components

Version:
70 lines 2.14 kB
import PropTypes from 'prop-types'; import classNames from 'classnames'; import { withTranslation } from 'react-i18next'; import OrderChooser from './OrderChooser'; import I18N_DOMAIN_COMPONENTS from '../../../constants'; import getDefaultT from '../../../translate'; import theme from './SortOptions.module.scss'; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; export const TYPES = { NAME: 'name', DATE: 'date' }; export const ORDERS = { ASC: 'asc', DESC: 'desc' }; function inverse(order) { if (order === ORDERS.ASC) { return ORDERS.DESC; } return ORDERS.ASC; } function SortOptions({ t, types, onChange, orders }) { return !!types.length && /*#__PURE__*/_jsxs("div", { className: classNames('tc-resource-picker-sort-options', theme['tc-resource-picker-sort-options']), children: [/*#__PURE__*/_jsx("span", { className: classNames(theme['option-label']), children: t('SORT', { defaultValue: 'Sort:' }) }), types.includes(TYPES.NAME) && /*#__PURE__*/_jsx(OrderChooser, { icon: "talend-sort-az", label: t('SORT_BY_NAME', { defaultValue: 'Sort by name (current order: {{order}})', order: orders[TYPES.NAME] }), asc: orders[TYPES.NAME] === ORDERS.ASC, onClick: () => onChange(TYPES.NAME, inverse(orders[TYPES.NAME])) }), types.includes(TYPES.DATE) && /*#__PURE__*/_jsx(OrderChooser, { icon: "talend-sort-desc", label: t('SORT_BY_DATE', { defaultValue: 'Sort by date (current order: {{order}})', order: orders[TYPES.DATE] }), asc: orders[TYPES.DATE] === ORDERS.ASC, onClick: () => onChange(TYPES.DATE, inverse(orders[TYPES.DATE])) })] }); } SortOptions.propTypes = { t: PropTypes.func, onChange: PropTypes.func, orders: PropTypes.object, types: PropTypes.array }; SortOptions.defaultProps = { t: getDefaultT(), types: [TYPES.NAME, TYPES.DATE], orders: { [TYPES.NAME]: ORDERS.DESC, [TYPES.DATE]: ORDERS.DESC } }; export default withTranslation(I18N_DOMAIN_COMPONENTS)(SortOptions); //# sourceMappingURL=SortOptions.component.js.map