Farmbot-Web-App/frontend/devices/components/boolean_mcu_input_group.tsx

70 lines
2.0 KiB
TypeScript
Raw Normal View History

2017-06-29 12:54:02 -06:00
import * as React from "react";
import { ToggleButton } from "../../controls/toggle_button";
import { settingToggle } from "../actions";
2019-09-19 07:41:37 -06:00
import { Row, Col, Help } from "../../ui/index";
2017-06-29 12:54:02 -06:00
import { BooleanMCUInputGroupProps } from "./interfaces";
2019-09-19 07:41:37 -06:00
import { Position } from "@blueprintjs/core";
2020-02-18 12:21:09 -07:00
import { t } from "../../i18next_wrapper";
import { Highlight } from "./maybe_highlight";
2017-06-29 12:54:02 -06:00
export function BooleanMCUInputGroup(props: BooleanMCUInputGroupProps) {
2017-08-28 05:49:13 -06:00
const {
2017-06-29 12:54:02 -06:00
tooltip,
2020-02-18 12:21:09 -07:00
label,
2017-06-29 12:54:02 -06:00
x,
y,
z,
2018-01-29 13:53:24 -07:00
disable,
grayscale,
2017-08-11 17:14:55 -06:00
caution,
2018-03-09 02:34:24 -07:00
displayAlert,
sourceFwConfig,
dispatch,
2017-06-29 12:54:02 -06:00
} = props;
2018-03-09 02:34:24 -07:00
const xParam = sourceFwConfig(x);
const yParam = sourceFwConfig(y);
const zParam = sourceFwConfig(z);
2017-06-29 12:54:02 -06:00
return <Row>
2020-02-18 12:21:09 -07:00
<Highlight settingName={label}>
<Col xs={6} className={"widget-body-tooltips"}>
<label>
{t(label)}
{caution &&
<i className="fa fa-exclamation-triangle caution-icon" />}
</label>
<Help text={tooltip} requireClick={true} position={Position.RIGHT} />
</Col>
<Col xs={2} className={"centered-button-div"}>
<ToggleButton
grayscale={grayscale?.x}
disabled={disable?.x}
dim={!xParam.consistent}
toggleValue={xParam.value}
toggleAction={() =>
dispatch(settingToggle(x, sourceFwConfig, displayAlert))} />
</Col>
<Col xs={2} className={"centered-button-div"}>
<ToggleButton
grayscale={grayscale?.y}
disabled={disable?.y}
dim={!yParam.consistent}
toggleValue={yParam.value}
toggleAction={() =>
dispatch(settingToggle(y, sourceFwConfig, displayAlert))} />
</Col>
<Col xs={2} className={"centered-button-div"}>
<ToggleButton
grayscale={grayscale?.z}
disabled={disable?.z}
dim={!zParam.consistent}
toggleValue={zParam.value}
toggleAction={() =>
dispatch(settingToggle(z, sourceFwConfig, displayAlert))} />
</Col>
</Highlight>
</Row>;
2017-06-29 12:54:02 -06:00
}