UNPKG

grommet

Version:

focus on the essential experience

99 lines (91 loc) 2.45 kB
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); } import React, { useState } from 'react'; import { storiesOf } from '@storybook/react'; import { Box, Grommet, Select } from 'grommet'; import { grommet } from 'grommet/themes'; import { deepMerge } from 'grommet/utils'; import { FormDown } from "grommet-icons/es6/icons/FormDown"; import { FormUp } from "grommet-icons/es6/icons/FormUp"; var customRoundedTheme = deepMerge(grommet, { global: { colors: { selected: 'neutral-3' }, control: { border: { radius: '24px' } }, input: { weight: 400 }, font: { size: '12px' } }, text: { medium: '13px' }, textInput: { extend: 'padding: 0 12px;' }, select: { control: { extend: 'padding: 3px 6px;', open: { background: '#ece0fa', border: '1px solid #7D4CDB' } }, icons: { down: FormDown, up: FormUp, color: 'dark-1', margin: 'small' } } }); var SimpleSelect = function SimpleSelect(_ref) { var rest = _extends({}, _ref); var options = ['one', 'two']; var _useState = useState(''), value = _useState[0], setValue = _useState[1]; return /*#__PURE__*/React.createElement(Grommet, { full: true, theme: customRoundedTheme }, /*#__PURE__*/React.createElement(Box, { fill: true, align: "center", justify: "start", pad: "large" }, /*#__PURE__*/React.createElement(Select, _extends({ id: "select", name: "select", placeholder: "Select", value: value, options: options, onChange: function onChange(_ref2) { var option = _ref2.option; return setValue(option); } }, rest)))); }; var defaultOptions = []; var objectOptions = []; for (var i = 1; i <= 200; i += 1) { defaultOptions.push("option " + i); objectOptions.push({ lab: "option " + i, val: i, dis: i % 5 === 0, sel: i % 13 === 0 }); } storiesOf('Select', module) // Chromatic does not catch open Drop. // Screenshot taken before the Drop is open. .add('Custom Theme', function () { return /*#__PURE__*/React.createElement(SimpleSelect, { open: true }); });