UNPKG

sls-dev-tools

Version:

The Dev Tools for the Serverless World

55 lines (45 loc) 1.68 kB
"use strict"; var _index = require("./index"); var _box = require("../components/box"); var _modalLayout = require("../components/modalLayout"); var _modalTitle = require("../components/modalTitle"); var _interactiveList = require("../components/interactiveList"); function updateRegistryTable(api, table) { api.listRegistries({ Scope: "LOCAL" }, (err, data) => { if (err) { console.error(err); } else { const registries = []; data.Registries.forEach(r => registries.push(r.RegistryName)); table.setItems(registries); } }); } const eventRegistryModal = (screen, eventBridge, application, api, injectEvent) => { const eventRegistryLayout = new _modalLayout.ModalLayout(screen, 112, 27, true); const closeModal = () => { // Store all text to populate modal when next opened application.setIsModalOpen(false); application.returnFocus(); eventRegistryLayout.destroy(); }; new _modalTitle.ModalTitle(eventRegistryLayout, 110, "Event Registry"); const registryTable = new _interactiveList.InteractiveList(eventRegistryLayout, 110, 20, "Registries"); new _box.Box(eventRegistryLayout, 110, 4, "Arrow keys to navigate | ENTER to select \nESC to close"); updateRegistryTable(api, registryTable); registryTable.focus(); registryTable.key(["enter"], () => { const registry = registryTable.ritems[registryTable.selected]; eventRegistryLayout.destroy(); return (0, _index.eventSchemaModal)(screen, eventBridge, application, api, registry, injectEvent); }); registryTable.key(["escape"], () => { // Discard modal closeModal(); }); }; module.exports = { eventRegistryModal };