diff --git a/src/App.js b/src/App.js index 99e6c74..8ebd2b2 100644 --- a/src/App.js +++ b/src/App.js @@ -1,16 +1,39 @@ import React from "react"; import logo from "./logo.svg"; //import "./App.css"; -import { Grommet, Box } from "grommet"; +import { Grommet, Box, grommet } from "grommet"; +import { deepMerge } from "grommet/utils"; import client from "./apolloclient"; import { ApolloProvider } from "@apollo/react-hooks"; import Devices from "./devices"; +const theme = deepMerge(grommet, { + global: { + colors: { + brand: "#ff4e4e", + text: "#336", + }, + focus: { + border: { + color: "#ff4e4e80", + }, + outline: { + size: "0px", + }, + }, + }, + button: { + border: { + radius: "4px", + }, + }, +}); + function App() { return ( - + diff --git a/src/components/indi/number.js b/src/components/indi/number.js index de353e4..df82ab2 100644 --- a/src/components/indi/number.js +++ b/src/components/indi/number.js @@ -1,20 +1,55 @@ -import React from "react"; +import React, { useState } from "react"; import { Box, TextInput, Button } from "grommet"; +import gql from "graphql-tag"; +import { useMutation } from "@apollo/react-hooks"; + +const SEND = gql` + mutation sendOneNumber($input: OneNumberInput!) { + sendOneNumber(input: $input) + } +`; + +const NumberValue = ({ vector, value }) => { + const [newval, setNewval] = useState(value.number); + const [sendOneNumber] = useMutation(SEND); + + return ( + + {value.label || value.name} + {value.formated || value.number} + {vector.permission !== 0 && ( + + setNewval(e.target.value)} + > + + + )} + + ); +}; const NumberVector = ({ vector }) => { return ( {vector.values.map((v) => ( - - {v.label || v.name} ({v.min},{v.max},{v.step}) - {v.formated || v.number} - {vector.permission !== 0 && ( - - - - - )} - + ))} ); diff --git a/src/components/indi/property.js b/src/components/indi/property.js index 15be198..6d8f70a 100644 --- a/src/components/indi/property.js +++ b/src/components/indi/property.js @@ -1,7 +1,8 @@ import React from "react"; import { Box } from "grommet"; +import { StatusGoodSmall } from "grommet-icons"; -import { stateToEmoji } from "../../utils/indi"; +import { stateToColor } from "../../utils/indi"; import LightVector from "./light"; import NumberVector from "./number"; import SwitchVector from "./switch"; @@ -9,12 +10,13 @@ import TextVector from "./text"; const Property = ({ property }) => { return ( - - -
- {stateToEmoji(property.vector.state)}{" "} - {property.vector.label || property.name} -
+ + + + {property.vector.label || property.name} {property.vector.__typename === "NumberVector" && ( diff --git a/src/components/indi/switch.js b/src/components/indi/switch.js index 24aed8e..3b1f5a2 100644 --- a/src/components/indi/switch.js +++ b/src/components/indi/switch.js @@ -4,7 +4,7 @@ import gql from "graphql-tag"; import { useMutation } from "@apollo/react-hooks"; const SEND = gql` - mutation sendSwitch($input: SwitchInput) { + mutation sendSwitch($input: SwitchInput!) { sendSwitch(input: $input) } `; diff --git a/src/devices.js b/src/devices.js index 70764b8..c01eb20 100644 --- a/src/devices.js +++ b/src/devices.js @@ -58,12 +58,24 @@ const Devices = () => { } return ( - +
- ASTRAW + + AST(RAW)NOMY + - + +