diff --git a/packages/backend/src/schema.gql b/packages/backend/src/schema.gql index cf4db3b4..0e78a25e 100644 --- a/packages/backend/src/schema.gql +++ b/packages/backend/src/schema.gql @@ -250,11 +250,11 @@ type Auction { } type DNSRecordAttributes { - name: string; - value: string; - request: string; - resourceType: string; - version: string; + name: String + value: String + request: String + resourceType: String + version: String } input AuctionParams { diff --git a/packages/frontend/src/components/projects/project/settings/DomainCard.tsx b/packages/frontend/src/components/projects/project/settings/DomainCard.tsx index 28775e96..6edbc4d4 100644 --- a/packages/frontend/src/components/projects/project/settings/DomainCard.tsx +++ b/packages/frontend/src/components/projects/project/settings/DomainCard.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { Domain, DomainStatus, Project } from 'gql-client'; import { @@ -23,6 +23,7 @@ import { } from 'components/shared/CustomIcon'; import { Heading } from 'components/shared/Heading'; import { Button } from 'components/shared/Button'; +import { useParams } from 'react-router-dom'; enum RefreshStatus { IDLE, @@ -56,9 +57,11 @@ const DomainCard = ({ onUpdate, }: DomainCardProps) => { const { toast, dismiss } = useToast(); + const { id } = useParams(); const [refreshStatus, SetRefreshStatus] = useState(RefreshStatus.IDLE); const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const [editDialogOpen, setEditDialogOpen] = useState(false); + const [IPAddress, setIPAddress] = useState(); const client = useGQLClient(); @@ -83,6 +86,26 @@ const DomainCard = ({ } }; + useEffect(() => { + const fetchDNSData = async () => { + if (id === undefined) { + toast({ + id: 'domain_cannot_find_project', + title: 'Cannot find project', + variant: 'error', + onDismiss: dismiss, + }); + return; + } + + const dnsData = await client.getLatestDNSDataByProjectId(id); + + setIPAddress(dnsData.value); + }; + + fetchDNSData(); + }, [id, client]); + return ( <>
@@ -192,7 +215,7 @@ const DomainCard = ({ {DOMAIN_RECORD.type} {DOMAIN_RECORD.name} - {DOMAIN_RECORD.value} + {IPAddress} diff --git a/packages/frontend/src/pages/org-slug/projects/id/settings/domains/add/Config.tsx b/packages/frontend/src/pages/org-slug/projects/id/settings/domains/add/Config.tsx index d3419c06..bbfe7888 100644 --- a/packages/frontend/src/pages/org-slug/projects/id/settings/domains/add/Config.tsx +++ b/packages/frontend/src/pages/org-slug/projects/id/settings/domains/add/Config.tsx @@ -7,6 +7,7 @@ import { InlineNotification } from 'components/shared/InlineNotification'; import { ArrowRightCircleIcon } from 'components/shared/CustomIcon'; import { ProjectSettingContainer } from 'components/projects/project/settings/ProjectSettingContainer'; import { useToast } from 'components/shared/Toast'; +import { useEffect, useState } from 'react'; const Config = () => { const { id, orgSlug } = useParams(); @@ -16,6 +17,8 @@ const Config = () => { const primaryDomainName = searchParams.get('name'); const { toast, dismiss } = useToast(); + const [IPAddress, setIPAddress] = useState(); + const handleSubmitDomain = async () => { if (primaryDomainName === null) { toast({ @@ -59,6 +62,26 @@ const Config = () => { } }; + useEffect(() => { + const fetchDNSData = async () => { + if (id === undefined) { + toast({ + id: 'domain_cannot_find_project', + title: 'Cannot find project', + variant: 'error', + onDismiss: dismiss, + }); + return; + } + + const dnsData = await client.getLatestDNSDataByProjectId(id); + + setIPAddress(dnsData.value); + }; + + fetchDNSData(); + }, [id, client]); + // TODO: Figure out DNS Provider if possible and update appropriatly return ( @@ -79,13 +102,7 @@ const Config = () => { A @ - IP.OF.THE.SP - - - - CNAME - subdomain - domain.of.the.sp + {IPAddress}