import React from "react"; import { TypedDocumentNode, useQuery } from "urql"; import { Spinner } from "./Spinner"; type Props = { document: TypedDocumentNode; variables?: Variables; children: ({ data }: { data: Data }) => React.ReactElement | null; }; export function Query({ document, variables, children, }: Props): React.ReactElement | null { const [result] = useQuery({ query: document, variables, }); const { data, fetching, error } = result; if (fetching) { return (

); } if (error) { return (

Internal error: {error.message}

); } if (!data) { return (

Internal error

); } return children({ data }); }