From 1beaccd3acdb4a7a26a67504e7c67a50a6f86700 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Mon, 30 May 2022 13:15:35 -0500 Subject: [PATCH] TextIconButton: convert to TSX --- .../compose/components/text_icon_button.js | 34 ------------------ .../compose/components/text_icon_button.tsx | 36 +++++++++++++++++++ 2 files changed, 36 insertions(+), 34 deletions(-) delete mode 100644 app/soapbox/features/compose/components/text_icon_button.js create mode 100644 app/soapbox/features/compose/components/text_icon_button.tsx diff --git a/app/soapbox/features/compose/components/text_icon_button.js b/app/soapbox/features/compose/components/text_icon_button.js deleted file mode 100644 index 1ca71fe6f..000000000 --- a/app/soapbox/features/compose/components/text_icon_button.js +++ /dev/null @@ -1,34 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; - -export default class TextIconButton extends React.PureComponent { - - static propTypes = { - label: PropTypes.string.isRequired, - title: PropTypes.string, - active: PropTypes.bool, - onClick: PropTypes.func.isRequired, - ariaControls: PropTypes.string, - unavailable: PropTypes.bool, - }; - - handleClick = (e) => { - e.preventDefault(); - this.props.onClick(); - } - - render() { - const { label, title, active, ariaControls, unavailable } = this.props; - - if (unavailable) { - return null; - } - - return ( - - ); - } - -} diff --git a/app/soapbox/features/compose/components/text_icon_button.tsx b/app/soapbox/features/compose/components/text_icon_button.tsx new file mode 100644 index 000000000..fd49d4ed0 --- /dev/null +++ b/app/soapbox/features/compose/components/text_icon_button.tsx @@ -0,0 +1,36 @@ +import React from 'react'; + +interface ITextIconButton { + label: string, + title: string, + active: boolean, + onClick: () => void, + ariaControls: string, + unavailable: boolean, +} + +const TextIconButton: React.FC = ({ + label, + title, + active, + ariaControls, + unavailable, + onClick, +}) => { + const handleClick: React.MouseEventHandler = (e) => { + e.preventDefault(); + onClick(); + }; + + if (unavailable) { + return null; + } + + return ( + + ); +}; + +export default TextIconButton;