diff --git a/src/lib/components/deployments/version-table-row.svelte b/src/lib/components/deployments/version-table-row.svelte index 2be664703a..802d84d820 100644 --- a/src/lib/components/deployments/version-table-row.svelte +++ b/src/lib/components/deployments/version-table-row.svelte @@ -1,6 +1,4 @@ diff --git a/src/lib/pages/deployment-page.ts b/src/lib/pages/deployment-page.ts deleted file mode 100644 index 040641a93b..0000000000 --- a/src/lib/pages/deployment-page.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { fetchDeployment } from '$lib/services/deployments-service'; -import { decodeURIForSvelte } from '$lib/utilities/encode-uri'; - -export function loadDeploymentPage({ - params, - depends, -}: { - params: { namespace: string; deployment: string }; - depends: (...deps: `${string}:${string}`[]) => void; -}) { - depends('data:deployment'); - const deploymentName = decodeURIForSvelte(params.deployment); - return { - deploymentPromise: fetchDeployment({ - namespace: params.namespace, - deploymentName, - }), - }; -} diff --git a/src/lib/pages/deployment.svelte b/src/lib/pages/deployment.svelte index 48ba90233c..a98e0d4b26 100644 --- a/src/lib/pages/deployment.svelte +++ b/src/lib/pages/deployment.svelte @@ -14,22 +14,30 @@ deleteWorkerDeployment, fetchDeployment, } from '$lib/services/deployments-service'; - import type { WorkerDeploymentResponse } from '$lib/types/deployments'; import { decodeURIForSvelte } from '$lib/utilities/encode-uri'; import { routeForWorkerDeployments } from '$lib/utilities/route-for'; interface Props { - deploymentPromise?: Promise; showInstancesLink?: boolean; } - let { deploymentPromise, showInstancesLink = true }: Props = $props(); + let { showInstancesLink = true }: Props = $props(); const { namespace } = $derived(page.params); const deploymentName = $derived(decodeURIForSvelte(page.params.deployment)); - const effectiveDeploymentPromise = $derived( - deploymentPromise ?? fetchDeployment({ namespace, deploymentName }), - ); + + // fetchDeployment lives here rather than in +page.ts because it requires a + // server-relative base URL that isn't available at import time for package + // consumers. + let lastInvalidatedAt = $state(Date.now()); + const effectiveDeploymentPromise = $derived.by(() => { + lastInvalidatedAt; // tracked so updating it re-fetches + return fetchDeployment({ namespace, deploymentName }); + }); + + function reload() { + lastInvalidatedAt = Date.now(); + } let showDeleteModal = $state(false); let deleteError = $state(); @@ -91,6 +99,7 @@ {namespace} {deploymentName} conflictToken={deployment.conflictToken} + onVersionDeleted={reload} /> {/each} diff --git a/src/routes/(app)/namespaces/[namespace]/workers/deployments/[deployment]/+page.svelte b/src/routes/(app)/namespaces/[namespace]/workers/deployments/[deployment]/+page.svelte index 131f225d75..83c51e6e15 100644 --- a/src/routes/(app)/namespaces/[namespace]/workers/deployments/[deployment]/+page.svelte +++ b/src/routes/(app)/namespaces/[namespace]/workers/deployments/[deployment]/+page.svelte @@ -1,18 +1,10 @@ @@ -20,4 +12,4 @@ title="{translate('deployments.deployment')} | {deployment}" url={page.url.href} /> - + diff --git a/src/routes/(app)/namespaces/[namespace]/workers/deployments/[deployment]/+page.ts b/src/routes/(app)/namespaces/[namespace]/workers/deployments/[deployment]/+page.ts deleted file mode 100644 index cf7b189885..0000000000 --- a/src/routes/(app)/namespaces/[namespace]/workers/deployments/[deployment]/+page.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { PageLoad } from './$types'; - -import { loadDeploymentPage } from '$lib/pages/deployment-page'; - -export const load: PageLoad = (event) => loadDeploymentPage(event);