import { useBackend } from '../backend';
import { Window } from '../layouts';
import { Fragment } from 'inferno';
import { Button, Box, Section, LabeledList, NumberInput, Icon } from '../components';
import { round } from 'common/math';
import { formatSiUnit, formatPower } from '../format';
import { FullscreenNotice } from './common/FullscreenNotice';
export const ShieldGenerator = (props, context) => {
const { act, data } = useBackend(context);
const { locked } = data;
return (
{locked ? : }
);
};
const ShieldGeneratorLocked = (props, context) => (
Swipe your ID to begin.
);
const ShieldGeneratorContent = (props, context) => {
const { act, data } = useBackend(context);
const {
capacitors,
active,
failing,
radius,
max_radius,
z_range,
max_z_range,
average_field_strength,
target_field_strength,
max_field_strength,
shields,
upkeep,
strengthen_rate,
max_strengthen_rate,
gen_power,
} = data.lockedData;
const capacitorLen = (capacitors || []).length;
return (
{failing ? Unstable : Stable}
{round(average_field_strength, 2)} Renwick (
{(target_field_strength && round((100 * average_field_strength) / target_field_strength, 1)) || 'NA'}%)
{formatPower(upkeep)}
{formatPower(gen_power)}
{shields} m²
{capacitorLen ? (
capacitors.map((cap, i) => (
{cap.active ? Online : Offline}
{formatSiUnit(cap.stored_charge, 0, 'J')} ({100 * round(cap.stored_charge / cap.max_charge, 2)}
%)
{cap.failing ? Discharging : OK.}
))
) : (
No Capacitors Connected
)}
act('toggle')}
/>
}>
act('change_radius', { val: val })}
/>
act('z_range', { val: val })}
/>
round(val, 1)}
unit="Renwick/s"
onDrag={(e, val) => act('strengthen_rate', { val: val })}
/>
act('target_field_strength', { val: val })}
/>
);
};