Use a records for the wildcard

This commit is contained in:
Owen
2025-07-17 16:17:01 -07:00
parent e562946308
commit 0a2b1d9e53
3 changed files with 247 additions and 202 deletions

View File

@@ -1266,6 +1266,7 @@
"createDomainName": "Name:", "createDomainName": "Name:",
"createDomainValue": "Value:", "createDomainValue": "Value:",
"createDomainCnameRecords": "CNAME Records", "createDomainCnameRecords": "CNAME Records",
"createDomainARecords": "A Records",
"createDomainRecordNumber": "Record {number}", "createDomainRecordNumber": "Record {number}",
"createDomainTxtRecords": "TXT Records", "createDomainTxtRecords": "TXT Records",
"createDomainSaveTheseRecords": "Save These Records", "createDomainSaveTheseRecords": "Save These Records",

View File

@@ -29,6 +29,7 @@ export type CreateDomainResponse = {
domainId: string; domainId: string;
nsRecords?: string[]; nsRecords?: string[];
cnameRecords?: { baseDomain: string; value: string }[]; cnameRecords?: { baseDomain: string; value: string }[];
aRecords?: { baseDomain: string; value: string }[];
txtRecords?: { baseDomain: string; value: string }[]; txtRecords?: { baseDomain: string; value: string }[];
}; };
@@ -97,6 +98,7 @@ export async function createOrgDomain(
} }
let numOrgDomains: OrgDomains[] | undefined; let numOrgDomains: OrgDomains[] | undefined;
let aRecords: CreateDomainResponse["aRecords"];
let cnameRecords: CreateDomainResponse["cnameRecords"]; let cnameRecords: CreateDomainResponse["cnameRecords"];
let txtRecords: CreateDomainResponse["txtRecords"]; let txtRecords: CreateDomainResponse["txtRecords"];
let nsRecords: CreateDomainResponse["nsRecords"]; let nsRecords: CreateDomainResponse["nsRecords"];
@@ -239,7 +241,7 @@ export async function createOrgDomain(
} }
]; ];
} else if (type === "wildcard") { } else if (type === "wildcard") {
cnameRecords = [ aRecords = [
{ {
value: `Server IP Address`, value: `Server IP Address`,
baseDomain: `*.${baseDomain}` baseDomain: `*.${baseDomain}`
@@ -271,7 +273,8 @@ export async function createOrgDomain(
domainId: returned.domainId, domainId: returned.domainId,
cnameRecords, cnameRecords,
txtRecords, txtRecords,
nsRecords nsRecords,
aRecords
}, },
success: true, success: true,
error: false, error: false,

View File

@@ -205,8 +205,8 @@ export default function CreateDomainForm({
</Alert> </Alert>
<div className="space-y-4"> <div className="space-y-4">
{domainType === "ns" && {createdDomain.nsRecords &&
createdDomain.nsRecords && ( createdDomain.nsRecords.length > 0 && (
<div> <div>
<h3 className="font-medium mb-3"> <h3 className="font-medium mb-3">
{t("createDomainNsRecords")} {t("createDomainNsRecords")}
@@ -214,9 +214,7 @@ export default function CreateDomainForm({
<InfoSections cols={1}> <InfoSections cols={1}>
<InfoSection> <InfoSection>
<InfoSectionTitle> <InfoSectionTitle>
{t( {t("createDomainRecord")}
"createDomainRecord"
)}
</InfoSectionTitle> </InfoSectionTitle>
<InfoSectionContent> <InfoSectionContent>
<div className="space-y-2"> <div className="space-y-2">
@@ -252,9 +250,7 @@ export default function CreateDomainForm({
) => ( ) => (
<div <div
className="flex justify-between items-center" className="flex justify-between items-center"
key={ key={index}
index
}
> >
<CopyToClipboard <CopyToClipboard
text={ text={
@@ -271,28 +267,17 @@ export default function CreateDomainForm({
</div> </div>
)} )}
{(domainType == "cname" ||
domainType == "wildcard") && (
<>
{createdDomain.cnameRecords && {createdDomain.cnameRecords &&
createdDomain.cnameRecords createdDomain.cnameRecords.length > 0 && (
.length > 0 && (
<div> <div>
<h3 className="font-medium mb-3"> <h3 className="font-medium mb-3">
{t( {t("createDomainCnameRecords")}
"createDomainCnameRecords"
)}
</h3> </h3>
<InfoSections cols={1}> <InfoSections cols={1}>
{createdDomain.cnameRecords.map( {createdDomain.cnameRecords.map(
( (cnameRecord, index) => (
cnameRecord,
index
) => (
<InfoSection <InfoSection
key={ key={index}
index
}
> >
<InfoSectionTitle> <InfoSectionTitle>
{t( {t(
@@ -349,25 +334,83 @@ export default function CreateDomainForm({
</div> </div>
)} )}
{createdDomain.txtRecords && {createdDomain.aRecords &&
createdDomain.txtRecords createdDomain.aRecords.length > 0 && (
.length > 0 && (
<div> <div>
<h3 className="font-medium mb-3"> <h3 className="font-medium mb-3">
{t("createDomainARecords")}
</h3>
<InfoSections cols={1}>
{createdDomain.aRecords.map(
(aRecord, index) => (
<InfoSection
key={index}
>
<InfoSectionTitle>
{t( {t(
"createDomainTxtRecords" "createDomainRecordNumber",
{
number:
index +
1
}
)} )}
</InfoSectionTitle>
<InfoSectionContent>
<div className="space-y-2">
<div className="flex justify-between items-center">
<span className="text-sm font-medium">
{t(
"createDomainType"
)}
</span>
<span className="text-sm font-mono">
A
</span>
</div>
<div className="flex justify-between items-center">
<span className="text-sm font-medium">
{t(
"createDomainName"
)}
</span>
<span className="text-sm font-mono">
{
aRecord.baseDomain
}
</span>
</div>
<div className="flex justify-between items-center">
<span className="text-sm font-medium">
{t(
"createDomainValue"
)}
</span>
<span className="text-sm font-mono">
{
aRecord.value
}
</span>
</div>
</div>
</InfoSectionContent>
</InfoSection>
)
)}
</InfoSections>
</div>
)}
{createdDomain.txtRecords &&
createdDomain.txtRecords.length > 0 && (
<div>
<h3 className="font-medium mb-3">
{t("createDomainTxtRecords")}
</h3> </h3>
<InfoSections cols={1}> <InfoSections cols={1}>
{createdDomain.txtRecords.map( {createdDomain.txtRecords.map(
( (txtRecord, index) => (
txtRecord,
index
) => (
<InfoSection <InfoSection
key={ key={index}
index
}
> >
<InfoSectionTitle> <InfoSectionTitle>
{t( {t(
@@ -423,8 +466,6 @@ export default function CreateDomainForm({
</InfoSections> </InfoSections>
</div> </div>
)} )}
</>
)}
</div> </div>
{build == "saas" || {build == "saas" ||