import React from "react"; import {gql, useQuery} from "@apollo/client"; import {HStack, Text} from "@chakra-ui/layout"; import {Select, VStack} from "@chakra-ui/react"; function ForeignKeyDisplay(props: any) { const { tableName, cols, displayColumns, foreignId } = props; // create a function to generate graphql query const generateQuery = (tableName: string, cols: Array) => { let query = `query { ${tableName}_by_pk(id: ${foreignId}) { ${cols.join("\n")} } }`; return query; }; let getQuery = generateQuery(tableName, cols); let theQuery = gql` ${getQuery} `; const {data, loading, error} = useQuery(theQuery); if (loading) { return
Loading...
; } if (error) { console.log("error ", error); return
Error...
; } if (!data) { return No data; } let text = "" if (data[`${tableName}_by_pk`]) { displayColumns?.forEach((item: any) => { text += data[`${tableName}_by_pk`][item] + " " }) } else { text = "null" } return ( {text} ); } export default ForeignKeyDisplay;