From 9e656f50c4d35cb8e32b826316f8761e80af9c3e Mon Sep 17 00:00:00 2001 From: illiteratewriter Date: Sun, 29 May 2022 16:33:31 +0530 Subject: [PATCH] feat(CloseButton): add close button --- src/CloseButton.js | 45 ++++++++++++++++++++++++++++ src/__tests__/CloseButton.spec.js | 43 ++++++++++++++++++++++++++ src/index.js | 1 + stories/CloseButton.stories.js | 20 +++++++++++++ stories/examples/CloseButton.js | 14 +++++++++ stories/examples/CloseButtonProps.js | 10 +++++++ stories/examples/CloseButtonWhite.js | 18 +++++++++++ 7 files changed, 151 insertions(+) create mode 100644 src/CloseButton.js create mode 100644 src/__tests__/CloseButton.spec.js create mode 100644 stories/CloseButton.stories.js create mode 100644 stories/examples/CloseButton.js create mode 100644 stories/examples/CloseButtonProps.js create mode 100644 stories/examples/CloseButtonWhite.js diff --git a/src/CloseButton.js b/src/CloseButton.js new file mode 100644 index 000000000..e9e22b6b7 --- /dev/null +++ b/src/CloseButton.js @@ -0,0 +1,45 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; +import { mapToCssModules } from './utils'; + +const propTypes = { + active: PropTypes.bool, + 'aria-label': PropTypes.string, + onClick: PropTypes.func, + variant: PropTypes.oneOf(['white', 'black']) +} + +const defaultProps = { + variant: 'black', + 'aria-label': 'close' +} + +const CloseButton = (props) => { + const { + className, + cssModule, + variant, + innerRef, + ...attributes + } = props; + + const classes = mapToCssModules(classNames( + className, + 'btn-close', + variant && `btn-close-${variant}` + )) + + return ( +