zhongrj
2025-11-24 276323dce9613867abb3f58a4cc2abbfb2fd0dea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import React from 'react';
import '../css/TaskPluginActionButtons.scss';
import PropTypes from 'prop-types';
import PluginsAPI from '../classes/plugins/API';
import update from 'immutability-helper';
 
class TaskPluginActionButtons extends React.Component {
    static defaultProps = {
        task: null,
        disabled: false
    };
 
    static propTypes = {
        task: PropTypes.object.isRequired,
        disabled: PropTypes.bool
    };
 
    constructor(props){
        super(props);
 
        this.state = {
            buttons: []
        };
    }
 
    componentDidMount(){
        PluginsAPI.Dashboard.triggerAddTaskActionButton({
            task: this.props.task
        }, (button) => {
            if (!button) return;
 
            this.setState(update(this.state, {
                buttons: {$push: [button]}
            }));
        });
    }
 
    render(){
        if (this.state.buttons.length > 0){
            return (
              <div className={"row plugin-action-buttons " + (this.props.disabled ? "disabled" : "")}>
                  {this.state.buttons.map((button, i) => <div key={i}>{button}</div>)}
              </div>);
        }else{
            return "";
        }
    }
}
 
export default TaskPluginActionButtons;