import { round } from 'common/math';
import { Fragment } from 'inferno';
import { useBackend } from '../backend';
import { Box, Button, Flex, Icon, LabeledList, NoticeBox, ProgressBar, Section, Tabs } from '../components';
import { COLORS } from '../constants';
import { ComplexModal, modalRegisterBodyOverride } from '../interfaces/common/ComplexModal';
import { Window } from '../layouts';
const viewRecordModalBodyOverride = (modal, context) => {
const { act, data } = useBackend(context);
const { activerecord, realname, health, unidentity, strucenzymes } = modal.args;
const damages = health.split(' - ');
return (
{realname}
{damages.length > 1 ? (
{damages[0]}
|
{damages[2]}
|
{damages[3]}
|
{damages[1]}
) : (
Unknown
)}
{unidentity}
{strucenzymes}
act('disk', {
option: 'load',
})
}
/>
act('clone', {
ref: activerecord,
})
}
/>
act('del_rec')} />
);
};
export const CloningConsole = (props, context) => {
const { act, data } = useBackend(context);
const { menu } = data;
modalRegisterBodyOverride('view_rec', viewRecordModalBodyOverride);
return (
);
};
const CloningConsoleNavigation = (props, context) => {
const { act, data } = useBackend(context);
const { menu } = data;
return (
act('menu', {
num: 1,
})
}>
Main
act('menu', {
num: 2,
})
}>
Records
);
};
const CloningConsoleBody = (props, context) => {
const { data } = useBackend(context);
const { menu } = data;
let body;
if (menu === 1) {
body = ;
} else if (menu === 2) {
body = ;
}
return body;
};
const CloningConsoleMain = (props, context) => {
const { act, data } = useBackend(context);
const { loading, scantemp, occupant, locked, can_brainscan, scan_mode, numberofpods, pods, selected_pod } = data;
const isLocked = locked && !!occupant;
return (
Scanner Lock:
act('lock')}
/>
act('eject')}
/>
}>
{loading ? (
Scanning...
) : (
{scantemp.text}
)}
{!!can_brainscan && (
act('toggle_mode')}
/>
)}
act('scan')}
/>
{numberofpods ? (
pods.map((pod, i) => {
let podAction;
if (pod.status === 'cloning') {
podAction = (
{round(pod.progress, 0) + '%'}
);
} else if (pod.status === 'mess') {
podAction = (
ERROR
);
} else {
podAction = (
act('selectpod', {
ref: pod.pod,
})
}
/>
);
}
return (
Pod #{i + 1}
= 150 ? 'good' : 'bad'} inline>
= 150 ? 'circle' : 'circle-o'} />
{pod.biomass}
{podAction}
);
})
) : (
No pods detected. Unable to clone.
)}
);
};
const CloningConsoleRecords = (props, context) => {
const { act, data } = useBackend(context);
const { records } = data;
if (!records.length) {
return (
No records found.
);
}
return (
{records.map((record, i) => (
act('view_rec', {
ref: record.record,
})
}
/>
))}
);
};
const CloningConsoleTemp = (props, context) => {
const { act, data } = useBackend(context);
const { temp } = data;
if (!temp || !temp.text || temp.text.length <= 0) {
return;
}
const tempProp = { [temp.style]: true };
return (
{temp.text}
act('cleartemp')} />
);
};
const CloningConsoleStatus = (props, context) => {
const { act, data } = useBackend(context);
const { scanner, numberofpods, autoallowed, autoprocess, disk } = data;
return (
{!!autoallowed && (
Auto-processing:
act('autoprocess', {
on: autoprocess ? 0 : 1,
})
}
/>
)}
act('disk', {
option: 'eject',
})
}
/>
}>
{scanner ? Connected : Not connected!}
{numberofpods ? {numberofpods} connected : None connected!}
);
};