mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
* Updating client dependancies. Switching to using yarn. * Updating React * Moving pure components to using function syntax (performance gains with newer react version) * Updating client dependancies. * Ignore .yarninstall * Enabling pre-lockfile because it's the entire point of using yarn. * Removing old webpack config * Moving to new prop-types * Fixing ESLint Errors * Updating jest snapshots. * Cleaning up package.json
41 lines
978 B
JavaScript
41 lines
978 B
JavaScript
import PropTypes from 'prop-types';
|
|
|
|
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
import React from 'react';
|
|
|
|
import loadingGif from 'images/load.gif';
|
|
|
|
export default class SpinnerButton extends React.Component {
|
|
static get propTypes() {
|
|
return {
|
|
children: PropTypes.node,
|
|
spinning: PropTypes.bool.isRequired,
|
|
onClick: PropTypes.func
|
|
};
|
|
}
|
|
|
|
render() {
|
|
const {spinning, children, ...props} = this.props; // eslint-disable-line no-use-before-define
|
|
|
|
if (spinning) {
|
|
return (
|
|
<img
|
|
className='spinner-button__gif'
|
|
src={loadingGif}
|
|
/>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<button
|
|
className='btn btn-primary'
|
|
{...props}
|
|
>
|
|
{children}
|
|
</button>
|
|
);
|
|
}
|
|
}
|