Farmbot-Web-App/frontend/devices/components/hardware_settings/pin_guard.tsx

89 lines
3.1 KiB
TypeScript
Raw Normal View History

2017-12-16 18:21:13 -07:00
import * as React from "react";
import { PinGuardMCUInputGroup } from "../pin_guard_input_group";
import { PinGuardProps } from "../interfaces";
import { Header } from "./header";
2019-09-19 07:41:37 -06:00
import { Collapse, Position } from "@blueprintjs/core";
import { Row, Col, Help } from "../../../ui/index";
2020-02-18 12:21:09 -07:00
import { ToolTips, DeviceSetting } from "../../../constants";
2019-04-02 13:59:37 -06:00
import { t } from "../../../i18next_wrapper";
2020-02-18 12:21:09 -07:00
import { Highlight } from "../maybe_highlight";
2020-03-13 15:06:40 -06:00
import { DevSettings } from "../../../account/dev/dev_support";
2017-12-16 18:21:13 -07:00
export function PinGuard(props: PinGuardProps) {
2018-03-09 02:34:24 -07:00
const { pin_guard } = props.controlPanelState;
2019-06-21 15:45:44 -06:00
const { dispatch, sourceFwConfig, resources } = props;
2020-03-13 15:06:40 -06:00
const newFormat = DevSettings.futureFeaturesEnabled();
2020-02-18 12:21:09 -07:00
return <Highlight className={"section"}
settingName={DeviceSetting.pinGuard}>
2017-12-16 18:21:13 -07:00
<Header
expanded={pin_guard}
2020-02-18 12:21:09 -07:00
title={DeviceSetting.pinGuard}
panel={"pin_guard"}
2017-12-16 18:21:13 -07:00
dispatch={dispatch} />
<Collapse isOpen={!!pin_guard}>
2020-03-13 15:06:40 -06:00
{!newFormat &&
<Row>
<Col xs={3} xsOffset={3}
className={"widget-body-tooltips"}>
<label>
{t("Pin Number")}
</label>
<Help text={ToolTips.PIN_GUARD_PIN_NUMBER} requireClick={true}
position={Position.TOP_RIGHT} />
</Col>
<Col xs={4}>
<label>
{t("Timeout (sec)")}
</label>
</Col>
<Col xs={2} className={"centered-button-div"}>
<label>
{t("To State")}
</label>
</Col>
</Row>}
2017-12-16 18:21:13 -07:00
<PinGuardMCUInputGroup
2020-02-28 09:34:28 -07:00
label={t("Pin Guard {{ num }}", { num: 1 })}
2019-06-21 15:45:44 -06:00
pinNumKey={"pin_guard_1_pin_nr"}
timeoutKey={"pin_guard_1_time_out"}
activeStateKey={"pin_guard_1_active_state"}
2017-12-16 18:21:13 -07:00
dispatch={dispatch}
2019-06-21 15:45:44 -06:00
resources={resources}
2018-03-09 02:34:24 -07:00
sourceFwConfig={sourceFwConfig} />
2017-12-16 18:21:13 -07:00
<PinGuardMCUInputGroup
2020-02-28 09:34:28 -07:00
label={t("Pin Guard {{ num }}", { num: 2 })}
2019-06-21 15:45:44 -06:00
pinNumKey={"pin_guard_2_pin_nr"}
timeoutKey={"pin_guard_2_time_out"}
activeStateKey={"pin_guard_2_active_state"}
2017-12-16 18:21:13 -07:00
dispatch={dispatch}
2019-06-21 15:45:44 -06:00
resources={resources}
2018-03-09 02:34:24 -07:00
sourceFwConfig={sourceFwConfig} />
2017-12-16 18:21:13 -07:00
<PinGuardMCUInputGroup
2020-02-28 09:34:28 -07:00
label={t("Pin Guard {{ num }}", { num: 3 })}
2019-06-21 15:45:44 -06:00
pinNumKey={"pin_guard_3_pin_nr"}
timeoutKey={"pin_guard_3_time_out"}
activeStateKey={"pin_guard_3_active_state"}
2017-12-16 18:21:13 -07:00
dispatch={dispatch}
2019-06-21 15:45:44 -06:00
resources={resources}
2018-03-09 02:34:24 -07:00
sourceFwConfig={sourceFwConfig} />
2017-12-16 18:21:13 -07:00
<PinGuardMCUInputGroup
2020-02-28 09:34:28 -07:00
label={t("Pin Guard {{ num }}", { num: 4 })}
2019-06-21 15:45:44 -06:00
pinNumKey={"pin_guard_4_pin_nr"}
timeoutKey={"pin_guard_4_time_out"}
activeStateKey={"pin_guard_4_active_state"}
2017-12-16 18:21:13 -07:00
dispatch={dispatch}
2019-06-21 15:45:44 -06:00
resources={resources}
2018-03-09 02:34:24 -07:00
sourceFwConfig={sourceFwConfig} />
2017-12-16 18:21:13 -07:00
<PinGuardMCUInputGroup
2020-02-28 09:34:28 -07:00
label={t("Pin Guard {{ num }}", { num: 5 })}
2019-06-21 15:45:44 -06:00
pinNumKey={"pin_guard_5_pin_nr"}
timeoutKey={"pin_guard_5_time_out"}
activeStateKey={"pin_guard_5_active_state"}
2017-12-16 18:21:13 -07:00
dispatch={dispatch}
2019-06-21 15:45:44 -06:00
resources={resources}
2018-03-09 02:34:24 -07:00
sourceFwConfig={sourceFwConfig} />
2017-12-16 18:21:13 -07:00
</Collapse>
2020-02-18 12:21:09 -07:00
</Highlight>;
2017-12-16 18:21:13 -07:00
}