diff --git a/app/soapbox/features/compose/components/warning.js b/app/soapbox/features/compose/components/warning.js
deleted file mode 100644
index a819b33ec..000000000
--- a/app/soapbox/features/compose/components/warning.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import PropTypes from 'prop-types';
-import React from 'react';
-import spring from 'react-motion/lib/spring';
-
-import Motion from '../../ui/util/optional_motion';
-
-export default class Warning extends React.PureComponent {
-
- static propTypes = {
- message: PropTypes.node.isRequired,
- };
-
- render() {
- const { message } = this.props;
-
- return (
-
- {({ opacity, scaleX, scaleY }) => (
-
- {message}
-
- )}
-
- );
- }
-
-}
diff --git a/app/soapbox/features/compose/components/warning.tsx b/app/soapbox/features/compose/components/warning.tsx
new file mode 100644
index 000000000..b8ec90e09
--- /dev/null
+++ b/app/soapbox/features/compose/components/warning.tsx
@@ -0,0 +1,21 @@
+import React from 'react';
+import { spring } from 'react-motion';
+
+import Motion from '../../ui/util/optional_motion';
+
+interface IWarning {
+ message: React.ReactNode,
+}
+
+/** Warning message displayed in ComposeForm. */
+const Warning: React.FC = ({ message }) => (
+
+ {({ opacity, scaleX, scaleY }) => (
+
+ {message}
+
+ )}
+
+);
+
+export default Warning;