Removes unused fnc and unnecessary props adds dom node to Empty State

This.node was use for the add button for both empty list and list with data.
This was done to reduce complexity in handleAddToggle() and I don't think it
will cause bugs because those two elements are not rendered at the same time.
This commit is contained in:
Alex Corey 2019-09-26 10:50:15 -04:00
parent 38b506bb94
commit d42ffd7353

View File

@ -56,11 +56,11 @@ class TemplatesList extends Component {
componentDidMount() {
this.loadTemplates();
document.addEventListener('click', this.handleAddToggle, false);
}
componentDidUpdate(prevProps) {
const { location } = this.props;
if (location !== prevProps.location) {
this.loadTemplates();
}
@ -91,12 +91,19 @@ class TemplatesList extends Component {
handleAddToggle(e) {
const { isAddOpen } = this.state;
document.addEventListener('click', this.handleAddToggle, false);
if (this.node && this.node.contains(e.target) && isAddOpen) {
document.removeEventListener('click', this.handleAddToggle, false);
this.setState({ isAddOpen: false });
} else if (this.node && this.node.contains(e.target) && !isAddOpen) {
this.setState({ isAddOpen: true });
} else {
this.setState({ isAddOpen: false });
document.removeEventListener('click', this.handleAddToggle, false);
}
}
@ -236,10 +243,9 @@ class TemplatesList extends Component {
isPlain
isOpen={isAddOpen}
position={DropdownPosition.right}
onSelect={this.handleAddSelect}
toggle={<ToolbarAddButton onClick={() => {}} />}
toggle={<ToolbarAddButton onClick={this.handleAddToggle}/>}
dropdownItems={[
<DropdownItem isHovered={false} key="job">
<DropdownItem key="job">
<Link to={`${match.url}/job_template/add/`}>
{i18n._(t`Job Template`)}
</Link>
@ -268,13 +274,17 @@ class TemplatesList extends Component {
)}
emptyStateControls={
canAdd && (
<Dropdown
<div
ref={node => {
this.node = node;
}}
key="add"
>
<Dropdown
isPlain
isOpen={isAddOpen}
position={DropdownPosition.right}
onSelect={this.handleAddSelect}
toggle={<ToolbarAddButton onClick={this.handleAddToggle} />}
toggle={<ToolbarAddButton onClick={this.handleAddToggle}/> }
dropdownItems={[
<DropdownItem key="job">
<Link to={`${match.url}/job_template/add/`}>
@ -288,6 +298,7 @@ class TemplatesList extends Component {
</DropdownItem>,
]}
/>
</div>
)
}
/>