@talend/react-components
Version:
Set of react components.
77 lines (76 loc) • 2.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.TYPES = exports.ORDERS = void 0;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _reactI18next = require("react-i18next");
var _OrderChooser = _interopRequireDefault(require("./OrderChooser"));
var _constants = _interopRequireDefault(require("../../../constants"));
var _translate = _interopRequireDefault(require("../../../translate"));
var _SortOptionsModule = _interopRequireDefault(require("./SortOptions.module.scss"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const TYPES = exports.TYPES = {
NAME: 'name',
DATE: 'date'
};
const ORDERS = exports.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__*/(0, _jsxRuntime.jsxs)("div", {
className: (0, _classnames.default)('tc-resource-picker-sort-options', _SortOptionsModule.default['tc-resource-picker-sort-options']),
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
className: (0, _classnames.default)(_SortOptionsModule.default['option-label']),
children: t('SORT', {
defaultValue: 'Sort:'
})
}), types.includes(TYPES.NAME) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_OrderChooser.default, {
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__*/(0, _jsxRuntime.jsx)(_OrderChooser.default, {
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.default.func,
onChange: _propTypes.default.func,
orders: _propTypes.default.object,
types: _propTypes.default.array
};
SortOptions.defaultProps = {
t: (0, _translate.default)(),
types: [TYPES.NAME, TYPES.DATE],
orders: {
[TYPES.NAME]: ORDERS.DESC,
[TYPES.DATE]: ORDERS.DESC
}
};
var _default = exports.default = (0, _reactI18next.withTranslation)(_constants.default)(SortOptions);
//# sourceMappingURL=SortOptions.component.js.map