diff --git a/src/lib/components/domains/cnameTable.svelte b/src/lib/components/domains/cnameTable.svelte
index a7c20acb7..6ca2422e8 100644
--- a/src/lib/components/domains/cnameTable.svelte
+++ b/src/lib/components/domains/cnameTable.svelte
@@ -1,6 +1,7 @@
@@ -52,7 +53,7 @@
CNAME
- {subdomain}
+ {subdomain || '@'}
void = () => {};
export let onNavigateToAAAA: () => void = () => {};
- let subdomain = domain?.split('.')?.slice(0, -2)?.join('.');
+ let subdomain = getSubdomain(domain);
const aTabVisible =
!isCloud &&
diff --git a/src/lib/helpers/tlds.ts b/src/lib/helpers/tlds.ts
index 6de3c3888..84fabf2c3 100644
--- a/src/lib/helpers/tlds.ts
+++ b/src/lib/helpers/tlds.ts
@@ -4,7 +4,7 @@ import { parse } from 'tldts';
* Returns the apex/root domain from a full domain string.
*/
export function getApexDomain(domain: string): string | null {
- return parse(domain).domain;
+ return parse(domain, { allowPrivateDomains: true }).domain;
}
/**
@@ -13,8 +13,17 @@ export function getApexDomain(domain: string): string | null {
export function isASubdomain(domain: string | null): boolean {
if (!domain) return false;
- const { domain: apex, subdomain } = parse(domain);
+ const { domain: apex, subdomain } = parse(domain, { allowPrivateDomains: true });
if (!apex) return false;
return !!subdomain;
}
+
+/**
+ * Returns the subdomain part from a full domain string.
+ */
+export function getSubdomain(domain: string): string {
+ if (!domain) return '';
+
+ return parse(domain, { allowPrivateDomains: true }).subdomain || '';
+}