/src/actions.ts
type ActionCallback = (data: any) => void

export default class Actions {
    elem: HTMLDivElement

    constructor() {
        this.elem = <HTMLDivElement>document.getElementById('actions');
        this.clear();
    }

    clear() {
        while (this.elem.firstChild)
            this.elem.removeChild(this.elem.firstChild);
    }

    addAction(title: string, callback: ActionCallback, data?: any) {
        const button = document.createElement('button');
        button.innerText = title;
        button.addEventListener('click', this.eventHandler.bind(this, callback, data));
        this.elem.appendChild(button);
    }

    eventHandler(callback: ActionCallback, data: any) {
        if (callback)
            callback(data);
    }
}