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);