♻️ pass the default domainId instead of the base domain

This commit is contained in:
Fred KISSIE
2025-12-17 00:52:12 +01:00
parent 6fc54bcc9e
commit e02fa7c148
2 changed files with 9 additions and 30 deletions

View File

@@ -91,24 +91,6 @@ export default function GeneralForm() {
`${resource.ssl ? "https" : "http"}://${toUnicode(resource.fullDomain || "")}` `${resource.ssl ? "https" : "http"}://${toUnicode(resource.fullDomain || "")}`
); );
const [defaultSubdomain, defaultBaseDomain] = useMemo(() => {
const resourceUrl = new URL(resourceFullDomain);
const domain = resourceUrl.hostname;
const allDomainParts = domain.split(".");
let sub = undefined;
let base = domain;
if (allDomainParts.length >= 3) {
// 3 parts: [subdomain, domain, tld]
const [first, ...rest] = allDomainParts;
sub = first;
base = rest.join(".");
}
return [sub, base];
}, [resourceFullDomain]);
const [selectedDomain, setSelectedDomain] = useState<{ const [selectedDomain, setSelectedDomain] = useState<{
domainId: string; domainId: string;
subdomain?: string; subdomain?: string;
@@ -507,8 +489,8 @@ export default function GeneralForm() {
<DomainPicker <DomainPicker
orgId={orgId as string} orgId={orgId as string}
cols={1} cols={1}
defaultSubdomain={defaultSubdomain} defaultSubdomain={resource.subdomain}
defaultBaseDomain={defaultBaseDomain} defaultDomainId={resource.domainId}
onDomainChange={(res) => { onDomainChange={(res) => {
const selected = { const selected = {
domainId: res.domainId, domainId: res.domainId,

View File

@@ -74,8 +74,9 @@ interface DomainPickerProps {
}) => void; }) => void;
cols?: number; cols?: number;
hideFreeDomain?: boolean; hideFreeDomain?: boolean;
defaultSubdomain?: string; defaultFullDomain?: string | null;
defaultBaseDomain?: string; defaultSubdomain?: string | null;
defaultDomainId?: string | null;
} }
export default function DomainPicker({ export default function DomainPicker({
@@ -84,7 +85,8 @@ export default function DomainPicker({
cols = 2, cols = 2,
hideFreeDomain = false, hideFreeDomain = false,
defaultSubdomain, defaultSubdomain,
defaultBaseDomain defaultFullDomain,
defaultDomainId
}: DomainPickerProps) { }: DomainPickerProps) {
const { env } = useEnvContext(); const { env } = useEnvContext();
const api = createApiClient({ env }); const api = createApiClient({ env });
@@ -139,7 +141,7 @@ export default function DomainPicker({
// Select the first organization domain or the one provided from props // Select the first organization domain or the one provided from props
const firstOrgDomain = const firstOrgDomain =
organizationDomains.find( organizationDomains.find(
(domain) => domain.baseDomain === defaultBaseDomain (domain) => domain.domainId === defaultDomainId
) ?? organizationDomains[0]; ) ?? organizationDomains[0];
const domainOption: DomainOption = { const domainOption: DomainOption = {
id: `org-${firstOrgDomain.domainId}`, id: `org-${firstOrgDomain.domainId}`,
@@ -175,12 +177,7 @@ export default function DomainPicker({
setSelectedBaseDomain(freeDomainOption); setSelectedBaseDomain(freeDomainOption);
} }
} }
}, [ }, [hideFreeDomain, loadingDomains, organizationDomains, defaultDomainId]);
hideFreeDomain,
loadingDomains,
organizationDomains,
defaultBaseDomain
]);
const checkAvailability = useCallback( const checkAvailability = useCallback(
async (input: string) => { async (input: string) => {