editOpen = false} on:deleted={() => { window.location.href = base; }} />
{/if}
diff --git a/site/src/components/EditDrawer.svelte b/site/src/components/EditDrawer.svelte
index 9397030..47b18fc 100644
--- a/site/src/components/EditDrawer.svelte
+++ b/site/src/components/EditDrawer.svelte
@@ -5,7 +5,7 @@
export let activityId: string;
export let editUrl: string;
- const dispatch = createEventDispatcher<{ saved: { title: string; description: string }; close: void }>();
+ const dispatch = createEventDispatcher<{ saved: { title: string; description: string }; close: void; deleted: void }>();
const SPORTS: Sport[] = ['cycling', 'running', 'hiking', 'walking', 'swimming', 'skiing', 'other'];
const STAT_PANELS = [
@@ -21,6 +21,8 @@
let saving = false;
let saveStatus = '';
let saveOk = false;
+ let confirmDelete = false;
+ let deleting = false;
// Form state
let title = '';
@@ -120,6 +122,22 @@
: [...hideStats, key];
}
+ async function deleteActivity() {
+ if (!confirmDelete) { confirmDelete = true; return; }
+ deleting = true;
+ try {
+ const res = await fetch(api, { method: 'DELETE' });
+ if (!res.ok) throw new Error(await res.text());
+ dispatch('deleted');
+ } catch (e: any) {
+ saveStatus = `Delete failed: ${e.message}`;
+ saveOk = false;
+ confirmDelete = false;
+ } finally {
+ deleting = false;
+ }
+ }
+
load();
@@ -284,11 +302,26 @@
+
{#if saveStatus}
{saveStatus}