import * as electronRemote from '@electron/remote'; const electronConsole = electronRemote.getGlobal('console') as Console; import Logger from '../../../logger/logger'; const LOG = new Logger(__filename, electronConsole); import BaseElements from './require/base-elements.js'; import { $, $$, $$$, $$$$ } from './require/q-module'; import IState from './require/elements-state'; import ClientController from '../client-controller.js'; export default function createServerContextMenu(state: IState, server: ClientController) { const { document, controller, ui } = state; $.setDocument(document); let element = BaseElements.createContextMenu(document, { class: 'server-context', content: [ { class: 'item red leave-server', content: 'Leave Server' } ] }); $$$(element, '.leave-server').addEventListener('click', async () => { element.removeSelf(); await server.disconnect(); await controller.removeServer(server); await ui.removeServer(server); let firstServerElement = $('#server-list .server'); if (firstServerElement) { firstServerElement.click(); } else { LOG.warn('no first server element to click on'); } }); return element; }