import { Fragment } from 'inferno'; import { useBackend } from '../backend'; import { Box, Button, Flex, Icon, LabeledList, ProgressBar, Section } from '../components'; import { Window } from '../layouts'; import { createLogger } from '../logging'; const logger = createLogger('fuck'); // This UI uses an internal routing system for the many different variants of // embedded controllers in use. let primaryRoutes = {}; /** * This is an all-in-one replacement for the following NanoUI Templates: * - advanced_airlock_console.tmpl * - docking_airlock_console.tmpl * - door_access_console.tmpl * - escape_pod_console.tmpl * - escape_pod_berth_console.tmpl * - multi_docking_console.tmpl * - phoron_airlock_console.tmpl * - simple_airlock_console.tmpl * - simple_docking_console.tmpl * - simple_docking_console_pod.tmpl -- Funny enough, wasn't used anywhere. */ /** * Let's cover all of the attributes of `data` for this UI right here. * For those unfamiliar with JSDoc syntax, [param] indicates * an optional parameter. */ /** * Interior/Exterior Door Status * @typedef {Object} doorStatus * @property {('open'|'closed')} state * @property {('locked'|'unlocked')} lock */ /** * Dock Status * @typedef {('undocked'|'undocking'|'docking'|'docked')} dockStatus */ /** * All possible data attributes. * @typedef {Object} Data * @property {string} internalTemplateName -