diff --git a/web/src/lib/components/trail/trail_list_item.svelte b/web/src/lib/components/trail/trail_list_item.svelte
index 5bfca3f5..2a082b6b 100644
--- a/web/src/lib/components/trail/trail_list_item.svelte
+++ b/web/src/lib/components/trail/trail_list_item.svelte
@@ -4,24 +4,26 @@
import { trails_delete, trails_index } from "$lib/stores/trail_store";
import { currentUser } from "$lib/stores/user_store";
import { formatMeters, formatTimeHHMM } from "$lib/util/format_util";
- import Dropdown from "../base/dropdown.svelte";
+ import Dropdown, { type DropdownItem } from "../base/dropdown.svelte";
export let trail: Trail;
- const dropdownItems = [
- { text: "Edit", value: "edit" },
- { text: "Delete", value: "delete" },
+ const dropdownItems: DropdownItem[] = [
+ { text: "Open", value: "open", icon: "up-right-from-square" },
+ { text: "Show on map", value: "map", icon: "map" },
+ { text: "Edit", value: "edit", icon: "pen" },
];
async function handleDropdownClick(
currentTrail: Trail,
item: { text: string; value: any },
) {
- if (item.value == "edit") {
+ if (item.value == "open") {
+ goto(`/trail/view/${currentTrail.id}`);
+ } else if (item.value == "map") {
+ goto(`/map/?lat=${currentTrail.lat}&lon=${currentTrail.lon}`);
+ } else if (item.value == "edit") {
goto(`/trail/edit/${currentTrail.id}`);
- } else if (item.value == "delete") {
- await trails_delete(currentTrail);
- await trails_index();
}
}
diff --git a/web/src/lib/components/waypoint/waypoint_modal.svelte b/web/src/lib/components/waypoint/waypoint_modal.svelte
index 76aa7031..9de397bf 100644
--- a/web/src/lib/components/waypoint/waypoint_modal.svelte
+++ b/web/src/lib/components/waypoint/waypoint_modal.svelte
@@ -2,12 +2,12 @@
import { Waypoint, waypointSchema } from "$lib/models/waypoint";
import { createEventDispatcher } from "svelte";
+ import { waypoint } from "$lib/stores/waypoint_store";
import { createForm } from "$lib/vendor/svelte-form-lib/index";
+ import { util } from "$lib/vendor/svelte-form-lib/util";
import Modal from "../base/modal.svelte";
import TextField from "../base/text_field.svelte";
import Textarea from "../base/textarea.svelte";
- import { waypoint } from "$lib/stores/waypoint_store";
- import { util } from "$lib/vendor/svelte-form-lib/util";
export let openModal: (() => void) | undefined = undefined;
export let closeModal: (() => void) | undefined = undefined;
diff --git a/web/src/routes/map/+page.svelte b/web/src/routes/map/+page.svelte
index 359c692e..a5cf159b 100644
--- a/web/src/routes/map/+page.svelte
+++ b/web/src/routes/map/+page.svelte
@@ -1,9 +1,11 @@
-
-
- {$trail.name}
-
-
-
- {$trail.location}
-
-
- {#if $currentUser && $currentUser.id == $trail.author}
-
-
handleDropdownClick(e.detail)}
- >
+
+
+
+ {$trail.name}
+
+
+
+ {$trail.location}
+
- {/if}
+ {#if $currentUser && $currentUser.id == $trail.author}
+
+ {#each dropdownItems as item}
+
+ {/each}
+
+ {/if}
+