module.exports = function (self) {
    self.setActionDefinitions({
        pad_trigger_action: {
            name: 'Trigger Pad',
            options: [
                {
                    id: 'name',
                    type: 'textinput',
                    label: 'Pad Name',
                    default: '',
                },
            ],
            callback: async (event) => {
                const pad = self.currentProject.findPadByName(event.options.name);
                if (!pad) {
                    self.log('warning', 'Cannot find a pad with name ' + event.options.name);
                    return;
                }
                self.sendToWebSocket('cart-action', {
                    'pad': pad.id
                });
            },
        },
        page_action: {
            name: 'Set Page',
            options: [
                {
                    id: 'page',
                    type: 'number',
                    label: 'Page Number',
                    default: '',
                },
            ],
            callback: async (event) => {
                self.sendToWebSocket('page-action', {
                    'page': event.options.page - 1
                });
            },
        },
        navigate_action: {
            name: 'Navigate',
            options: [
                {
                    id: 'type',
                    type: 'dropdown',
                    choices: [
                        { id: 'PREVIOUS', label: 'Previous' },
                        { id: 'NEXT', label: 'Next' }
                    ],
                    label: 'Action',
                    default: '',
                },
            ],
            callback: async (event) => {
                self.sendToWebSocket('navigate-action', {
                    'action': event.options.type
                });
            },
        },
        stop_action: {
            name: 'Stop All',
            options: [],
            callback: async (event) => {
                self.sendToWebSocket('stop-action', {});
            },
        }
    })
}