summit log fix

This commit is contained in:
Christian Beutel
2025-02-16 20:44:48 +01:00
parent bb26e8ee9b
commit 539364970d

View File

@@ -107,11 +107,13 @@
.object({ .object({
gpx_data: z.string().optional(), gpx_data: z.string().optional(),
summit_logs: z.array(SummitLogCreateSchema).optional(), summit_logs: z.array(SummitLogCreateSchema).optional(),
waypoints: z.array( waypoints: z
WaypointCreateSchema.extend({ .array(
marker: z.any().optional(), WaypointCreateSchema.extend({
}), marker: z.any().optional(),
).optional(), }),
)
.optional(),
}) })
.optional(), .optional(),
}); });
@@ -194,7 +196,7 @@
photoFiles, photoFiles,
gpxFile, gpxFile,
); );
setFields(updatedTrail) setFields(updatedTrail);
} }
listAddEnabled = true; listAddEnabled = true;
@@ -403,16 +405,17 @@
} }
function saveWaypoint(savedWaypoint: Waypoint) { function saveWaypoint(savedWaypoint: Waypoint) {
let editedWaypointIndex = $formData.expand!.waypoints?.findIndex( let editedWaypointIndex =
(s) => s.id == savedWaypoint.id, $formData.expand!.waypoints?.findIndex(
) ?? -1; (s) => s.id == savedWaypoint.id,
) ?? -1;
if (editedWaypointIndex >= 0) { if (editedWaypointIndex >= 0) {
$formData.expand!.waypoints![editedWaypointIndex] = savedWaypoint; $formData.expand!.waypoints![editedWaypointIndex] = savedWaypoint;
} else { } else {
savedWaypoint.id = cryptoRandomString({ length: 15 }); savedWaypoint.id = cryptoRandomString({ length: 15 });
$formData.expand!.waypoints = [ $formData.expand!.waypoints = [
...$formData.expand!.waypoints ?? [], ...($formData.expand!.waypoints ?? []),
savedWaypoint, savedWaypoint,
]; ];
@@ -422,9 +425,8 @@
function moveMarker(marker: M.Marker, wpId?: string) { function moveMarker(marker: M.Marker, wpId?: string) {
const position = marker.getLngLat(); const position = marker.getLngLat();
const editableWaypointIndex = $formData.expand!.waypoints?.findIndex( const editableWaypointIndex =
(w) => w.id == wpId, $formData.expand!.waypoints?.findIndex((w) => w.id == wpId) ?? -1;
) ?? -1;
const editableWaypoint = const editableWaypoint =
$formData.expand!.waypoints![editableWaypointIndex]; $formData.expand!.waypoints![editableWaypointIndex];
if (!editableWaypoint) { if (!editableWaypoint) {
@@ -432,7 +434,7 @@
} }
editableWaypoint.lat = position.lat; editableWaypoint.lat = position.lat;
editableWaypoint.lon = position.lng; editableWaypoint.lon = position.lng;
$formData.expand!.waypoints = [...$formData.expand!.waypoints ?? []]; $formData.expand!.waypoints = [...($formData.expand!.waypoints ?? [])];
// updateTrailOnMap(); // updateTrailOnMap();
} }
@@ -445,16 +447,18 @@
let editedSummitLogIndex = $formData.expand!.summit_logs?.findIndex( let editedSummitLogIndex = $formData.expand!.summit_logs?.findIndex(
(s) => s.id == log.id, (s) => s.id == log.id,
); );
if ((editedSummitLogIndex ?? -1) >= 0) {
if (editedSummitLogIndex ?? 0 >= 0) {
$formData.expand!.summit_logs![editedSummitLogIndex!] = log; $formData.expand!.summit_logs![editedSummitLogIndex!] = log;
} else { } else {
log.id = cryptoRandomString({ length: 15 }); log.id = cryptoRandomString({ length: 15 });
$formData.expand!.summit_logs = [ $formData.expand!.summit_logs = [
...$formData.expand!.summit_logs ?? [], ...($formData.expand!.summit_logs ?? []),
log, log,
]; ];
} }
console.log($formData.expand?.summit_logs);
} }
function handleSummitLogMenuClick( function handleSummitLogMenuClick(