diff --git a/webapp/channels/src/components/__snapshots__/loading_image_preview.test.tsx.snap b/webapp/channels/src/components/__snapshots__/loading_image_preview.test.tsx.snap
index daef7ac95a..78a8dbb052 100644
--- a/webapp/channels/src/components/__snapshots__/loading_image_preview.test.tsx.snap
+++ b/webapp/channels/src/components/__snapshots__/loading_image_preview.test.tsx.snap
@@ -4,7 +4,7 @@ exports[`components/LoadingImagePreview should match snapshot 1`] = `
-
+
@@ -17,7 +17,7 @@ exports[`components/LoadingImagePreview should match snapshot 2`] = `
-
+
diff --git a/webapp/channels/src/components/__snapshots__/pdf_preview.test.jsx.snap b/webapp/channels/src/components/__snapshots__/pdf_preview.test.jsx.snap
index 3bb96304b6..88f60c7450 100644
--- a/webapp/channels/src/components/__snapshots__/pdf_preview.test.jsx.snap
+++ b/webapp/channels/src/components/__snapshots__/pdf_preview.test.jsx.snap
@@ -4,7 +4,7 @@ exports[`component/PDFPreview should match snapshot, loading 1`] = `
-
+
`;
diff --git a/webapp/channels/src/components/admin_console/data_grid/__snapshots__/data_grid.test.tsx.snap b/webapp/channels/src/components/admin_console/data_grid/__snapshots__/data_grid.test.tsx.snap
index e0291b7061..45aed720b5 100644
--- a/webapp/channels/src/components/admin_console/data_grid/__snapshots__/data_grid.test.tsx.snap
+++ b/webapp/channels/src/components/admin_console/data_grid/__snapshots__/data_grid.test.tsx.snap
@@ -19,7 +19,7 @@ exports[`components/admin_console/data_grid/DataGrid should match snapshot while
-
+
-
-
-
-
- test
-
-
-
+ className="fa fa-spinner fa-fw fa-pulse spinner"
+ title="Loading Icon"
+ />
+ test
+
+
`;
@@ -84,62 +41,19 @@ exports[`components/widgets/loading/LoadingWrapper showing spinner without text
-
-
-
-
-
-
+ className="fa fa-spinner fa-fw fa-pulse spinner"
+ title="Loading Icon"
+ />
+
+
`;
diff --git a/webapp/channels/src/components/widgets/loading/loading_spinner.test.tsx b/webapp/channels/src/components/widgets/loading/loading_spinner.test.tsx
index 001fbebbf8..b8c4c6405b 100644
--- a/webapp/channels/src/components/widgets/loading/loading_spinner.test.tsx
+++ b/webapp/channels/src/components/widgets/loading/loading_spinner.test.tsx
@@ -1,19 +1,18 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
+import {shallow} from 'enzyme';
import React from 'react';
-import {shallowWithIntl} from 'tests/helpers/intl-test-helper';
-
import LoadingSpinner from './loading_spinner';
describe('components/widgets/loadingLoadingSpinner', () => {
test('showing spinner with text', () => {
- const wrapper = shallowWithIntl();
+ const wrapper = shallow();
expect(wrapper).toMatchSnapshot();
});
test('showing spinner without text', () => {
- const wrapper = shallowWithIntl();
+ const wrapper = shallow();
expect(wrapper).toMatchSnapshot();
});
});
diff --git a/webapp/channels/src/components/widgets/loading/loading_spinner.tsx b/webapp/channels/src/components/widgets/loading/loading_spinner.tsx
index da626db7cc..6cb345a7ab 100644
--- a/webapp/channels/src/components/widgets/loading/loading_spinner.tsx
+++ b/webapp/channels/src/components/widgets/loading/loading_spinner.tsx
@@ -1,36 +1,30 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
-import React, {PureComponent} from 'react';
-import type {ReactNode, CSSProperties} from 'react';
-import {injectIntl, type IntlShape} from 'react-intl';
+import classNames from 'classnames';
+import React from 'react';
+import {useIntl} from 'react-intl';
type Props = {
- text?: ReactNode;
- style?: CSSProperties;
- intl: IntlShape;
+ text?: React.ReactNode;
+ style?: React.CSSProperties;
}
-class LoadingSpinner extends PureComponent {
- public static defaultProps: Partial = {
- text: null,
- };
-
- public render() {
- return (
+const LoadingSpinner = ({text = null, style}: Props) => {
+ const {formatMessage} = useIntl();
+ return (
+
-
- {this.props.text}
-
- );
- }
-}
+ className='fa fa-spinner fa-fw fa-pulse spinner'
+ title={formatMessage({id: 'generic_icons.loading', defaultMessage: 'Loading Icon'})}
+ />
+ {text}
+
+ );
+};
-export default injectIntl(LoadingSpinner);
+export default React.memo(LoadingSpinner);