import { useBackend, useLocalState } from '../backend';
import { Box, Button, Flex, Icon, LabeledList, Section } from '../components';
import { Window } from '../layouts';
/* This is all basically stolen from routes.js. */
import { routingError } from '../routes';
const requirePdaInterface = require.context('./pda', false, /\.js$/);
const getPdaApp = (name) => {
let appModule;
try {
appModule = requirePdaInterface(`./${name}.js`);
} catch (err) {
if (err.code === 'MODULE_NOT_FOUND') {
return routingError('notFound', name);
}
throw err;
}
const Component = appModule[name];
if (!Component) {
return routingError('missingExport', name);
}
return Component;
};
export const Pda = (props, context) => {
const { act, data } = useBackend(context);
const { app, owner, useRetro } = data;
if (!owner) {
return (
Warning: No ID information found! Please swipe ID!
);
}
let App = getPdaApp(app.template);
const [settingsMode, setSettingsMode] = useLocalState(context, 'settingsMode', false);
return (
{(settingsMode && ) || (
)}
);
};
const PDAHeader = (props, context) => {
const { act, data } = useBackend(context);
const { settingsMode, setSettingsMode } = props;
const { idInserted, idLink, cartridge_name, stationTime } = data;
return (
{!!idInserted && (
)}
{stationTime}
);
};
const PDASettings = (props, context) => {
const { act, data } = useBackend(context);
const { idInserted, idLink, cartridge_name, touch_silent } = data;
return (
act('Retro')} />
act('TouchSounds')}
/>
{!!cartridge_name && (
act('Eject')} content={cartridge_name} />
)}
{!!idInserted && (
act('Authenticate')} content={idLink} />
)}
);
};
const PDAFooter = (props, context) => {
const { act, data } = useBackend(context);
const { setSettingsMode } = props;
const { app, useRetro } = data;
return (
act('Back')}
/>
{
setSettingsMode(false);
act('Home');
}}
/>
);
};