UNPKG

homebridge-am43-blinds-bluez

Version:

A homebridge plugin to control AM43 based shade motors in HomeKit. These include the A OK and Zemismart bluetooth based motors. This plugin requires a Homebridge host that supports Bluetooth 4.0

30 lines (29 loc) 1.49 kB
import React, { useState, useEffect } from "react"; import DeviceList from "./deviceList"; import { MotorInfo } from "./motorInfo"; import BreadCrumbs from "./breadCrumbs"; import { WaitForDevice } from "./waitForDevice"; const App = () => { const [inBlindEngineMode, setInBlindEngineMode] = useState(false); useEffect(() => { if (inBlindEngineMode) { homebridge.hideSchemaForm(); } else { homebridge.showSchemaForm(); } }, [inBlindEngineMode]); const [selectedDeviceId, setSelectedDeviceId] = useState(null); const onExit = () => { setSelectedDeviceId(null); setInBlindEngineMode(false); }; if (inBlindEngineMode) { return (React.createElement("div", { className: "card" }, React.createElement(BreadCrumbs, { selectedDeviceId: selectedDeviceId, onExitBlindsEngineMode: onExit, onReturnToDeviceList: () => setSelectedDeviceId(null) }), selectedDeviceId !== null ? (React.createElement(WaitForDevice, { deviceId: selectedDeviceId }, (device) => React.createElement(MotorInfo, { device: device }))) : (React.createElement(DeviceList, { onSelect: (id) => setSelectedDeviceId(id) })))); } return (React.createElement("div", { className: "d-flex justify-content-center" }, React.createElement("button", { type: "button", className: "btn btn-primary w-75", onClick: () => setInBlindEngineMode(true) }, "Blind Engine"))); }; export default App;