refactor: Update SidePanel.js to use a functional component (#2179)

This commit is contained in:
Nikola Mijajlović 2020-12-03 21:39:14 +01:00 committed by GitHub
parent 7323e63608
commit 45a07dfa19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,41 +1,36 @@
import './SidePanel.css';
import React, { Component } from 'react';
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
class SidePanel extends Component {
static propTypes = {
from: PropTypes.string.isRequired,
isOpen: PropTypes.bool.isRequired,
children: PropTypes.node,
width: PropTypes.string,
};
const SidePanel = ({ from, isOpen, children, width }) => {
const fromSideClass = from === 'right' ? 'from-right' : 'from-left';
render() {
const fromSideClass =
this.props.from === 'right' ? 'from-right' : 'from-left';
const styles = width
? {
maxWidth: width,
marginRight: isOpen ? '0' : Number.parseInt(width) * -1,
}
: {};
const styles = this.props.width
? {
maxWidth: this.props.width,
marginRight: this.props.isOpen
? '0'
: Number.parseInt(this.props.width) * -1,
}
: {};
return (
<section
style={styles}
className={classNames('sidepanel', fromSideClass, {
'is-open': isOpen,
})}
>
{children}
</section>
);
};
return (
<section
style={styles}
className={classNames('sidepanel', fromSideClass, {
'is-open': this.props.isOpen,
})}
>
{this.props.children}
</section>
);
}
}
SidePanel.propTypes = {
from: PropTypes.string.isRequired,
isOpen: PropTypes.bool.isRequired,
children: PropTypes.node,
width: PropTypes.string,
};
export default SidePanel;