From 9042bd0b69014c3a97835960ec36cac733e3ef80 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sat, 4 Apr 2026 14:56:09 +0700 Subject: [PATCH] web: Replace null defaults with undefined for optional props Aligns optional prop types and defaults with TypeScript/Svelte 5 idioms by dropping explicit null in favor of undefined throughout components. --- .../domains/[domain]/DomainInformationCard.svelte | 4 ++-- .../src/routes/users/[uid]/domains/new/+page.svelte | 4 ++-- web/src/lib/components/inputs/NewDomain.svelte | 8 ++++---- web/src/lib/components/modals/Footer.svelte | 4 ++-- web/src/lib/components/pages/Provider.svelte | 10 +++++----- .../components/providers/SettingsStateButtons.svelte | 4 ++-- .../domains/[dn]/[[historyid]]/ServiceBadges.svelte | 2 +- .../domains/[dn]/[[historyid]]/ServiceCard.svelte | 6 +++--- .../[[historyid]]/[subdomain]/[serviceid]/+page.svelte | 6 +++--- 9 files changed, 24 insertions(+), 24 deletions(-) diff --git a/web-admin/src/routes/users/[uid]/domains/[domain]/DomainInformationCard.svelte b/web-admin/src/routes/users/[uid]/domains/[domain]/DomainInformationCard.svelte index 342b6a17..974b5dae 100644 --- a/web-admin/src/routes/users/[uid]/domains/[domain]/DomainInformationCard.svelte +++ b/web-admin/src/routes/users/[uid]/domains/[domain]/DomainInformationCard.svelte @@ -78,8 +78,8 @@ body: { domain: domainName, group: group || undefined, - id_owner: id_owner || undefined, - id_provider: id_provider || undefined, + id_owner: id_owner, + id_provider: id_provider, } }); diff --git a/web-admin/src/routes/users/[uid]/domains/new/+page.svelte b/web-admin/src/routes/users/[uid]/domains/new/+page.svelte index 98c94098..deabd960 100644 --- a/web-admin/src/routes/users/[uid]/domains/new/+page.svelte +++ b/web-admin/src/routes/users/[uid]/domains/new/+page.svelte @@ -59,8 +59,8 @@ body: { domain: domain, group: group || undefined, - id_owner: id_owner || undefined, - id_provider: id_provider || undefined, + id_owner: id_owner, + id_provider: id_provider, } }); diff --git a/web/src/lib/components/inputs/NewDomain.svelte b/web/src/lib/components/inputs/NewDomain.svelte index a5486242..7918cff8 100644 --- a/web/src/lib/components/inputs/NewDomain.svelte +++ b/web/src/lib/components/inputs/NewDomain.svelte @@ -47,8 +47,8 @@ addingNewDomain?: boolean; autofocus?: boolean; noButton?: boolean; - preAddFunc?: null | ((arg0: string) => Promise); - provider?: Provider | null; + preAddFunc?: (arg0: string) => Promise; + provider?: Provider; value?: string; [key: string]: any } @@ -57,8 +57,8 @@ addingNewDomain = $bindable(false), autofocus = false, noButton = false, - preAddFunc = null, - provider = null, + preAddFunc, + provider, value = $bindable(""), ...rest }: Props = $props(); diff --git a/web/src/lib/components/modals/Footer.svelte b/web/src/lib/components/modals/Footer.svelte index 9773c02f..e0418fb4 100644 --- a/web/src/lib/components/modals/Footer.svelte +++ b/web/src/lib/components/modals/Footer.svelte @@ -35,7 +35,7 @@ interface Props { toggle: () => void; step: number; - service?: ServiceCombined | null; + service?: ServiceCombined; form?: string; origin?: Domain | undefined; update?: boolean; @@ -49,7 +49,7 @@ let { toggle, step, - service = $bindable(null), + service = $bindable(), form = "addSvcForm", origin = undefined, update = false, diff --git a/web/src/lib/components/pages/Provider.svelte b/web/src/lib/components/pages/Provider.svelte index 0fc3fccb..fd816a6b 100644 --- a/web/src/lib/components/pages/Provider.svelte +++ b/web/src/lib/components/pages/Provider.svelte @@ -43,8 +43,8 @@ edit?: boolean; ptype: string; state: number; - providerId?: string | null; - value?: ProviderSettingsState | null; + providerId?: string; + value?: ProviderSettingsState; } let { @@ -52,12 +52,12 @@ edit = false, ptype, state: formstate, - providerId = null, - value = $bindable(null) + providerId, + value = $bindable() }: Props = $props(); // - function createProviderForm(ptype: string, providerId: string | null, value: ProviderSettingsState | null, edit: boolean): ProviderForm { + function createProviderForm(ptype: string, providerId: string | undefined, value: ProviderSettingsState | undefined, edit: boolean): ProviderForm { const pf = new ProviderForm( ptype, () => refreshProviders().then(() => navigate("/?newProvider")), diff --git a/web/src/lib/components/providers/SettingsStateButtons.svelte b/web/src/lib/components/providers/SettingsStateButtons.svelte index 62714dad..52fdc0cb 100644 --- a/web/src/lib/components/providers/SettingsStateButtons.svelte +++ b/web/src/lib/components/providers/SettingsStateButtons.svelte @@ -34,7 +34,7 @@ interface Props { canDoNext?: boolean; edit?: boolean; - form?: CustomForm | null; + form?: CustomForm; nextInProgress?: boolean; previousInProgress?: boolean; submitForm?: string; @@ -44,7 +44,7 @@ let { canDoNext = true, edit = false, - form = null, + form, nextInProgress = false, previousInProgress = false, submitForm, diff --git a/web/src/routes/domains/[dn]/[[historyid]]/ServiceBadges.svelte b/web/src/routes/domains/[dn]/[[historyid]]/ServiceBadges.svelte index d225c4fd..7bb69e74 100644 --- a/web/src/routes/domains/[dn]/[[historyid]]/ServiceBadges.svelte +++ b/web/src/routes/domains/[dn]/[[historyid]]/ServiceBadges.svelte @@ -32,7 +32,7 @@ interface Props { class?: ClassValue; - service: HappydnsService | null; + service?: HappydnsService; } let { service, class: className = "" }: Props = $props(); diff --git a/web/src/routes/domains/[dn]/[[historyid]]/ServiceCard.svelte b/web/src/routes/domains/[dn]/[[historyid]]/ServiceCard.svelte index 1665a015..2b43ed7a 100644 --- a/web/src/routes/domains/[dn]/[[historyid]]/ServiceCard.svelte +++ b/web/src/routes/domains/[dn]/[[historyid]]/ServiceCard.svelte @@ -37,7 +37,7 @@ import { controls as ctrlServiceDetails } from "../ServiceDetailsOffcanvas.svelte"; import { controls as ctrlServicePath } from "$lib/components/services/NewServicePath.svelte"; import type { Domain } from "$lib/model/domain"; - import type { ServiceCombined } from "$lib/model/service.svelte"; + import type { HappydnsService } from "$lib/api-base/types.gen"; import { servicesSpecs, servicesSpecsLoaded } from "$lib/stores/services"; import { t } from "$lib/translations"; import PropagationCountdown from "$lib/components/services/PropagationCountdown.svelte"; @@ -45,11 +45,11 @@ interface Props { dn: string; origin: Domain; - service?: ServiceCombined | null; + service?: HappydnsService; zoneId: string; } - let { dn, origin, service = $bindable(null), zoneId }: Props = $props(); + let { dn, origin, service, zoneId }: Props = $props(); // Will be changed by PropagationCountdown let isPropagating = $state(true); diff --git a/web/src/routes/domains/[dn]/[[historyid]]/[subdomain]/[serviceid]/+page.svelte b/web/src/routes/domains/[dn]/[[historyid]]/[subdomain]/[serviceid]/+page.svelte index c7863c81..b3ff990e 100644 --- a/web/src/routes/domains/[dn]/[[historyid]]/[subdomain]/[serviceid]/+page.svelte +++ b/web/src/routes/domains/[dn]/[[historyid]]/[subdomain]/[serviceid]/+page.svelte @@ -59,7 +59,7 @@ let svcType: string = $derived(page.url.searchParams.get("type") ?? ""); - let service: HappydnsService | null = $state(null); + let service: HappydnsService | undefined = $state(); let serviceLoading = $state(false); let serviceTitle = $derived.by(() => { @@ -76,7 +76,7 @@ $effect(() => { if (data.serviceid !== "new") { const svcs = $thisZone?.services[data.subdomain]; - service = svcs?.find((s) => s._id === data.serviceid) ?? null; + service = svcs?.find((s) => s._id === data.serviceid); } }); @@ -128,7 +128,7 @@ ); } - function helpLink(svc: HappydnsService | null): string { + function helpLink(svc: HappydnsService | undefined): string { if (!svc?._svctype) return ""; const svcPart = svc._svctype.toLowerCase().split("."); let path = svcPart[svcPart.length - 1] + "/";