@dotconnor/grommet
Version:
focus on the essential experience
77 lines (72 loc) • 2.53 kB
JavaScript
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import React, { useState } from 'react';
import { Grommet, Box, RangeSelector, Stack, Text } from 'grommet';
import { grommet } from 'grommet/themes';
import { deepMerge } from 'grommet/utils';
var customThemeRangeSelector = deepMerge(grommet, {
global: {
borderSize: {
small: '6px'
},
edgeSize: {
small: '13px'
},
spacing: '10px',
colors: {
control: 'accent-2',
border: 'brand'
}
},
rangeSelector: {
background: {
invert: {
color: 'brand'
}
},
edge: {
type: 'bar'
}
}
});
export var Custom = function Custom(_ref) {
var _ref$direction = _ref.direction,
direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction,
rest = _objectWithoutPropertiesLoose(_ref, ["direction"]);
var _useState = useState([12, 16]),
range = _useState[0],
setRange = _useState[1];
var onChange = function onChange(values) {
setRange(values);
};
return /*#__PURE__*/React.createElement(Grommet, {
theme: customThemeRangeSelector
}, /*#__PURE__*/React.createElement(Box, {
align: "center",
pad: "large"
}, /*#__PURE__*/React.createElement(Stack, null, /*#__PURE__*/React.createElement(Box, {
direction: direction === 'vertical' ? 'column' : 'row',
justify: "between"
}, [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20].map(function (value) {
return /*#__PURE__*/React.createElement(Box, {
key: value,
width: "xxsmall",
height: "xxsmall",
align: "center",
pad: "small",
border: false
}, /*#__PURE__*/React.createElement(Text, {
style: {
fontFamily: 'monospace'
}
}, value));
})), /*#__PURE__*/React.createElement(RangeSelector, _extends({
invert: true,
direction: direction,
min: 10,
max: 20,
size: "full",
values: range,
onChange: onChange
}, rest)))));
};