- }
disabled={true}
- extraClasses=""
onClick={[Function]}
saving={false}
- savingMessage={
-
- }
disabled={true}
- extraClasses=""
onClick={[Function]}
saving={false}
- savingMessage={
-
- }
/>
- }
disabled={true}
- extraClasses=""
onClick={[Function]}
saving={false}
- savingMessage={
-
- }
/>
- }
disabled={false}
- extraClasses=""
id="saveItems"
onClick={[Function]}
saving={false}
- savingMessage={
-
- }
/>
- }
disabled={false}
- extraClasses=""
id="saveItems"
onClick={[Function]}
saving={false}
- savingMessage={
-
- }
/>
- }
disabled={false}
- extraClasses=""
id="saveItems"
onClick={[Function]}
saving={false}
- savingMessage={
-
- }
/>
{
};
test('should match snapshot, on defaultMessage', () => {
- const wrapper = shallow(
-
,
- );
+ const wrapper = shallow(
);
expect(wrapper).toMatchSnapshot();
expect(wrapper.find('button').first().props().disabled).toBe(false);
- wrapper.setProps({defaultMessage: 'Go'} as any);
+ wrapper.setProps({defaultMessage: 'Go'});
expect(wrapper).toMatchSnapshot();
});
test('should match snapshot, on savingMessage', () => {
const props = {...baseProps, saving: true, disabled: true};
- const wrapper = shallow(
-
,
- );
+ const wrapper = shallow(
);
expect(wrapper).toMatchSnapshot();
expect(wrapper.find('button').first().props().disabled).toBe(true);
- wrapper.setProps({savingMessage: 'Saving Config...'} as any);
+ wrapper.setProps({savingMessage: 'Saving Config...'});
expect(wrapper).toMatchSnapshot();
});
test('should match snapshot, extraClasses', () => {
const props = {...baseProps, extraClasses: 'some-class'};
- const wrapper = shallow(
-
,
- );
+ const wrapper = shallow(
);
expect(wrapper).toMatchSnapshot();
});
diff --git a/webapp/channels/src/components/save_button.tsx b/webapp/channels/src/components/save_button.tsx
index 7e87a9cf35..bf2c30dedb 100644
--- a/webapp/channels/src/components/save_button.tsx
+++ b/webapp/channels/src/components/save_button.tsx
@@ -7,7 +7,7 @@ import {FormattedMessage} from 'react-intl';
import LoadingWrapper from 'components/widgets/loading/loading_wrapper';
type Props = {
- saving: boolean;
+ saving?: boolean;
disabled?: boolean;
id?: string;
onClick?: (e: React.MouseEvent
) => void;
@@ -15,67 +15,57 @@ type Props = {
defaultMessage?: React.ReactNode;
btnClass?: string;
extraClasses?: string;
-}
+};
-export default class SaveButton extends React.PureComponent {
- public static defaultProps: Partial = {
- btnClass: '',
- defaultMessage: (
-
- ),
- disabled: false,
- extraClasses: '',
- savingMessage: (
-
- ),
- };
-
- public render() {
- const {
- saving,
- disabled,
- savingMessage,
- defaultMessage,
- btnClass,
- extraClasses,
- ...props
- } = this.props;
-
- let className = 'btn';
- if (!btnClass) {
- className += ' btn-primary';
- }
-
- if (!disabled || saving) {
- className += ' ' + btnClass;
- }
-
- if (extraClasses) {
- className += ' ' + extraClasses;
- }
-
- return (
-
- );
+const SaveButton: React.FC = ({
+ saving = false,
+ disabled = false,
+ savingMessage = (
+
+ ),
+ defaultMessage = (
+
+ ),
+ btnClass = '',
+ extraClasses = '',
+ ...props
+}) => {
+ let className = 'btn';
+ if (!btnClass) {
+ className += ' btn-primary';
}
-}
+
+ if (!disabled || saving) {
+ className += ' ' + btnClass;
+ }
+
+ if (extraClasses) {
+ className += ' ' + extraClasses;
+ }
+
+ return (
+
+ );
+};
+
+export default SaveButton;
diff --git a/webapp/channels/src/components/signup/__snapshots__/signup.test.tsx.snap b/webapp/channels/src/components/signup/__snapshots__/signup.test.tsx.snap
index 2584917364..802a6dbcb0 100644
--- a/webapp/channels/src/components/signup/__snapshots__/signup.test.tsx.snap
+++ b/webapp/channels/src/components/signup/__snapshots__/signup.test.tsx.snap
@@ -193,7 +193,6 @@ exports[`components/signup/Signup should match snapshot for all signup options e