diff --git a/webapp/channels/src/components/apps_form/__snapshots__/apps_form_component.test.tsx.snap b/webapp/channels/src/components/apps_form/__snapshots__/apps_form_component.test.tsx.snap index 0806e07026..75de35fe3b 100644 --- a/webapp/channels/src/components/apps_form/__snapshots__/apps_form_component.test.tsx.snap +++ b/webapp/channels/src/components/apps_form/__snapshots__/apps_form_component.test.tsx.snap @@ -202,7 +202,7 @@ exports[`AppsFormComponent should set match snapshot 1`] = ` id="interactive_dialog.cancel" /> - - + diff --git a/webapp/channels/src/components/emoji/add_emoji/__snapshots__/add_emoji.test.tsx.snap b/webapp/channels/src/components/emoji/add_emoji/__snapshots__/add_emoji.test.tsx.snap index adc2248895..8afd84738a 100644 --- a/webapp/channels/src/components/emoji/add_emoji/__snapshots__/add_emoji.test.tsx.snap +++ b/webapp/channels/src/components/emoji/add_emoji/__snapshots__/add_emoji.test.tsx.snap @@ -121,8 +121,9 @@ exports[`components/emoji/components/AddEmoji should match snapshot 1`] = ` id="add_emoji.cancel" /> - - + @@ -296,8 +297,9 @@ exports[`components/emoji/components/AddEmoji should select a file and match sna id="add_emoji.cancel" /> - - + @@ -435,8 +437,9 @@ exports[`components/emoji/components/AddEmoji should update emoji name and match id="add_emoji.cancel" /> - - + diff --git a/webapp/channels/src/components/emoji/add_emoji/add_emoji.test.tsx b/webapp/channels/src/components/emoji/add_emoji/add_emoji.test.tsx index 0922c5bd16..6041ad98c7 100644 --- a/webapp/channels/src/components/emoji/add_emoji/add_emoji.test.tsx +++ b/webapp/channels/src/components/emoji/add_emoji/add_emoji.test.tsx @@ -202,7 +202,7 @@ describe('components/emoji/components/AddEmoji', () => { const file = new Blob([image], {type: 'image/png'}); wrapper.setState({image: file as File, imageUrl: image}); - const saveButton = wrapper.find('SpinnerButton').first(); + const saveButton = wrapper.find({'data-testid': 'save-button'}).first(); const nameInput = wrapper.find('#name'); nameInput.simulate('change', {target: {name: 'name', value: emojiName}}); diff --git a/webapp/channels/src/components/emoji/add_emoji/add_emoji.tsx b/webapp/channels/src/components/emoji/add_emoji/add_emoji.tsx index 034c2e92cb..9a3af6a9aa 100644 --- a/webapp/channels/src/components/emoji/add_emoji/add_emoji.tsx +++ b/webapp/channels/src/components/emoji/add_emoji/add_emoji.tsx @@ -385,6 +385,7 @@ export default class AddEmoji extends React.PureComponent - - +
renderExtra
@@ -859,7 +859,7 @@ exports[`components/integrations/AbstractCommand should match snapshot when head id="add_command.cancel" /> - Footer as string - +
renderExtra
@@ -1302,7 +1302,7 @@ exports[`components/integrations/AbstractCommand should match snapshot, displays id="add_command.cancel" /> - - +
renderExtra
diff --git a/webapp/channels/src/components/integrations/__snapshots__/abstract_incoming_hook.test.tsx.snap b/webapp/channels/src/components/integrations/__snapshots__/abstract_incoming_hook.test.tsx.snap index 9f7731e767..9a1bf54117 100644 --- a/webapp/channels/src/components/integrations/__snapshots__/abstract_incoming_hook.test.tsx.snap +++ b/webapp/channels/src/components/integrations/__snapshots__/abstract_incoming_hook.test.tsx.snap @@ -242,7 +242,7 @@ exports[`components/integrations/AbstractIncomingWebhook should call action func id="add_incoming_webhook.cancel" /> - - + @@ -503,7 +503,7 @@ exports[`components/integrations/AbstractIncomingWebhook should match snapshot 1 id="add_incoming_webhook.cancel" /> - - + @@ -767,7 +767,7 @@ exports[`components/integrations/AbstractIncomingWebhook should match snapshot, id="add_incoming_webhook.cancel" /> - - + @@ -995,7 +995,7 @@ exports[`components/integrations/AbstractIncomingWebhook should match snapshot, id="add_incoming_webhook.cancel" /> - - + @@ -1223,7 +1223,7 @@ exports[`components/integrations/AbstractIncomingWebhook should match snapshot, id="add_incoming_webhook.cancel" /> - - + @@ -1484,7 +1484,7 @@ exports[`components/integrations/AbstractIncomingWebhook should match snapshot, id="add_incoming_webhook.cancel" /> - - + diff --git a/webapp/channels/src/components/integrations/__snapshots__/abstract_oauth_app.test.tsx.snap b/webapp/channels/src/components/integrations/__snapshots__/abstract_oauth_app.test.tsx.snap index a52c83bc56..bf9598aec8 100644 --- a/webapp/channels/src/components/integrations/__snapshots__/abstract_oauth_app.test.tsx.snap +++ b/webapp/channels/src/components/integrations/__snapshots__/abstract_oauth_app.test.tsx.snap @@ -283,7 +283,7 @@ https://test.com/callback2" id="installed_oauth_apps.cancel" /> - - +
renderExtra
@@ -590,7 +590,7 @@ exports[`components/integrations/AbstractOAuthApp should match snapshot, display id="installed_oauth_apps.cancel" /> - - +
renderExtra
diff --git a/webapp/channels/src/components/integrations/__snapshots__/abstract_outgoing_webhook.test.tsx.snap b/webapp/channels/src/components/integrations/__snapshots__/abstract_outgoing_webhook.test.tsx.snap index b16dea427b..5f0dc450ef 100644 --- a/webapp/channels/src/components/integrations/__snapshots__/abstract_outgoing_webhook.test.tsx.snap +++ b/webapp/channels/src/components/integrations/__snapshots__/abstract_outgoing_webhook.test.tsx.snap @@ -328,7 +328,7 @@ callbackUrl2.com id="add_outgoing_webhook.cancel" /> - - + diff --git a/webapp/channels/src/components/integrations/bots/add_bot/__snapshots__/add_bot.test.tsx.snap b/webapp/channels/src/components/integrations/bots/add_bot/__snapshots__/add_bot.test.tsx.snap index db0f8518e7..b012fbe637 100644 --- a/webapp/channels/src/components/integrations/bots/add_bot/__snapshots__/add_bot.test.tsx.snap +++ b/webapp/channels/src/components/integrations/bots/add_bot/__snapshots__/add_bot.test.tsx.snap @@ -337,7 +337,7 @@ exports[`components/integrations/bots/AddBot blank 1`] = ` id="bots.manage.add.cancel" /> - - + diff --git a/webapp/channels/src/components/spinner_button.test.tsx b/webapp/channels/src/components/spinner_button.test.tsx index 24106ab470..186adaae5a 100644 --- a/webapp/channels/src/components/spinner_button.test.tsx +++ b/webapp/channels/src/components/spinner_button.test.tsx @@ -61,6 +61,7 @@ describe('components/SpinnerButton', () => { id='my-button-id' className='btn btn-success' spinningText='Test' + spinning={false} />, ); diff --git a/webapp/channels/src/components/spinner_button.tsx b/webapp/channels/src/components/spinner_button.tsx index 408194eceb..b8daa88069 100644 --- a/webapp/channels/src/components/spinner_button.tsx +++ b/webapp/channels/src/components/spinner_button.tsx @@ -1,37 +1,35 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import React, {PureComponent} from 'react'; -import type {ButtonHTMLAttributes, ReactNode} from 'react'; +import React from 'react'; +import type {ReactNode} from 'react'; import LoadingWrapper from 'components/widgets/loading/loading_wrapper'; -type Props = { +type Props = React.ButtonHTMLAttributes & { children?: ReactNode; spinning: boolean; spinningText: ReactNode; } -export default class SpinnerButton extends PureComponent> { - public static defaultProps: Partial = { - spinning: false, - }; - - public render(): JSX.Element { - const {spinning, spinningText, children, ...props} = this.props; - - return ( - - ); - } -} + {children} + + + ); +}; +export default React.memo(SpinnerButton);