grommet
Version:
focus on the essential experience
65 lines (58 loc) • 1.77 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import { storiesOf } from '@storybook/react';
import { Close } from "grommet-icons/es6/icons/Close";
import { Grommet, Box, Button, DropButton, Heading, Text } from 'grommet';
import { grommet } from 'grommet/themes';
var DropContent = function DropContent(_ref) {
var onClose = _ref.onClose;
return /*#__PURE__*/React.createElement(Box, {
pad: "small"
}, /*#__PURE__*/React.createElement(Box, {
direction: "row",
justify: "between",
align: "center"
}, /*#__PURE__*/React.createElement(Heading, {
level: 3,
margin: "small"
}, "Heading"), /*#__PURE__*/React.createElement(Button, {
icon: /*#__PURE__*/React.createElement(Close, null),
onClick: onClose
})), /*#__PURE__*/React.createElement(Text, null, "Content"));
};
DropContent.propTypes = {
onClose: PropTypes.func.isRequired
};
var SimpleDropButton = function SimpleDropButton() {
var _React$useState = React.useState(),
open = _React$useState[0],
setOpen = _React$useState[1];
var onOpen = function onOpen() {
setOpen(true);
};
var onClose = function onClose() {
setOpen(false);
};
return /*#__PURE__*/React.createElement(Grommet, {
theme: grommet
}, /*#__PURE__*/React.createElement(Box, {
align: "center",
pad: "large"
}, /*#__PURE__*/React.createElement(DropButton, {
label: "Open",
open: open,
onOpen: onOpen,
onClose: onClose,
dropContent: /*#__PURE__*/React.createElement(DropContent, {
onClose: onClose
}),
dropProps: {
align: {
top: 'bottom'
}
}
})));
};
storiesOf('DropButton', module).add('Simple', function () {
return /*#__PURE__*/React.createElement(SimpleDropButton, null);
});