import React, { useEffect, useState } from "react"; import { useQuery, useMutation } from "@apollo/client"; import gql from "graphql-tag"; import { deviceInfoFragment, propertyVectorFragment } from "./graphql/fragment"; import Device from "./components/indi/device"; import { Box, Tabs, Tab, Button, Header, Heading, Layer } from "grommet"; import { Contact } from "grommet-icons"; import { isConnectedQuery } from "./graphql/query"; const GETDEVICES = gql` query devices { devices { id ...DeviceInfo messages @client properties { id name ...PropertyVector } } } ${propertyVectorFragment} ${deviceInfoFragment} `; const CONNECT = gql` mutation connect { connect } `; const DISCONNECT = gql` mutation disconnect { disconnect } `; const useIndiState = () => { const { data } = useQuery(isConnectedQuery); const [connected, setConnected] = useState(false); useEffect(() => { data && setConnected(data.connected); }, [data]); return connected; }; const Devices = () => { //const connected = useIndiState(); const { data } = useQuery(GETDEVICES); const [connect] = useMutation(CONNECT); const [disconnect] = useMutation(DISCONNECT); const [openMsg, setOpenMsg] = useState(false); if (!data || !data.devices) { return