Farmbot-Web-App/frontend/account/dev/dev_widget.tsx

68 lines
2.0 KiB
TypeScript

import * as React from "react";
import {
Widget, WidgetHeader, WidgetBody, Row, Col, BlurableInput
} from "../../ui";
import { ToggleButton } from "../../controls/toggle_button";
import { setWebAppConfigValue } from "../../config_storage/actions";
import { BooleanConfigKey } from "farmbot/dist/resources/configs/web_app";
import { DevSettings } from "./dev_support";
export const DevWidgetFERow = () =>
<Row>
<Col xs={8}>
<label>
{"Enable unstable FE features"}
</label>
</Col>
<Col xs={4}>
<ToggleButton
toggleValue={DevSettings.futureFeaturesEnabled()}
toggleAction={DevSettings.futureFeaturesEnabled()
? DevSettings.disableFutureFeatures
: DevSettings.enableFutureFeatures} />
</Col>
</Row>;
export const DevWidgetFBOSRow = () => {
return <Row>
<Col xs={6}>
<label>
{"Change FBOS version"}
</label>
</Col>
<Col xs={1}>
<button className="fb-button red fa fa-times"
onClick={DevSettings.resetFbosVersionOverride} />
</Col>
<Col xs={1}>
<button className="fb-button green fa fa-angle-double-up"
onClick={DevSettings.setMaxFbosVersionOverride} />
</Col>
<Col xs={4}>
<BlurableInput type="text"
value={DevSettings.overriddenFbosVersion() || ""}
onCommit={e =>
DevSettings.setFbosVersionOverride(e.currentTarget.value)} />
</Col>
</Row>;
};
export const DevWidget = ({ dispatch }: { dispatch: Function }) =>
<Widget>
<WidgetHeader title={"Dev options"}>
<button className="fb-button red"
onClick={() => {
DevSettings.disableFutureFeatures();
DevSettings.resetFbosVersionOverride();
dispatch(setWebAppConfigValue(
"show_dev_menu" as BooleanConfigKey, false));
}}>
{"Reset all and remove this widget"}
</button>
</WidgetHeader>
<WidgetBody>
<DevWidgetFERow />
<DevWidgetFBOSRow />
</WidgetBody>
</Widget>;