diff --git a/apps/journal/app/routes/api.routes.$id.edit-in-planner.ts b/apps/journal/app/routes/api.routes.$id.edit-in-planner.ts index 6f4e502..a37f2fb 100644 --- a/apps/journal/app/routes/api.routes.$id.edit-in-planner.ts +++ b/apps/journal/app/routes/api.routes.$id.edit-in-planner.ts @@ -35,7 +35,7 @@ export async function action({ params, request }: Route.ActionArgs) { const session = (await sessionResp.json()) as { url: string; - initialWaypoints?: Array<{ lat: number; lon: number; name?: string }>; + initialWaypoints?: Array<{ lat: number; lon: number; name?: string; isDayBreak?: boolean; note?: string; osmId?: number; poiTags?: Record }>; initialNoGoAreas?: Array<{ points: Array<{ lat: number; lon: number }> }>; initialNotes?: string; }; diff --git a/apps/journal/app/routes/routes.$id.tsx b/apps/journal/app/routes/routes.$id.tsx index 8e44af4..27dc611 100644 --- a/apps/journal/app/routes/routes.$id.tsx +++ b/apps/journal/app/routes/routes.$id.tsx @@ -32,7 +32,7 @@ export async function loader({ params, request }: Route.LoaderArgs) { // Parse GPX once for day stats and waypoint POI data let dayStats: Array<{ dayNumber: number; startName?: string; endName?: string; distance: number; ascent: number; descent: number }> = []; - let waypoints: Array<{ lat: number; lon: number; name?: string; isDayBreak?: boolean; osmId?: number; poiTags?: Record }> = []; + let waypoints: Array<{ lat: number; lon: number; name?: string; isDayBreak?: boolean; note?: string; osmId?: number; poiTags?: Record }> = []; if (route.gpx) { try { const { computeDays, parseGpxAsync } = await import("@trails-cool/gpx"); @@ -42,6 +42,7 @@ export async function loader({ params, request }: Route.LoaderArgs) { lon: w.lon, name: w.name, isDayBreak: w.isDayBreak, + note: w.note, osmId: w.osmId, poiTags: w.poiTags as Record | undefined, })); @@ -398,15 +399,18 @@ export default function RouteDetailPage({ loaderData }: Route.ComponentProps) { )} - {waypoints.some((w) => w.osmId || w.poiTags) && ( + {waypoints.some((w) => w.osmId || w.poiTags || w.note) && (

{t("routes.waypoints")}

    - {waypoints.filter((w) => w.osmId || w.poiTags || w.name).map((w, i) => ( + {waypoints.filter((w) => w.osmId || w.poiTags || w.note || w.name).map((w, i) => (
  • {w.name ?? `${w.lat.toFixed(5)}, ${w.lon.toFixed(5)}`}

    + {w.note && ( +

    {w.note}

    + )} {w.poiTags && (
    {w.poiTags.phone && ( diff --git a/apps/planner/app/components/SaveToJournalButton.tsx b/apps/planner/app/components/SaveToJournalButton.tsx index 2ba7885..6a15232 100644 --- a/apps/planner/app/components/SaveToJournalButton.tsx +++ b/apps/planner/app/components/SaveToJournalButton.tsx @@ -47,6 +47,7 @@ export function SaveToJournalButton({ yjs, callbackUrl, callbackToken, returnUrl lon: yMap.get("lon") as number, name: yMap.get("name") as string | undefined, isDayBreak: yMap.get("overnight") === true ? true : undefined, + note: yMap.get("note") as string | undefined, osmId: yMap.get("osmId") as number | undefined, poiTags: yMap.get("poiTags") as WaypointPoiTags | undefined, })); diff --git a/apps/planner/app/lib/use-yjs.ts b/apps/planner/app/lib/use-yjs.ts index 2681edc..0f18dda 100644 --- a/apps/planner/app/lib/use-yjs.ts +++ b/apps/planner/app/lib/use-yjs.ts @@ -42,7 +42,7 @@ export interface YjsState { export function useYjs( sessionId: string, - initialWaypoints?: Array<{ lat: number; lon: number; name?: string; isDayBreak?: boolean }>, + initialWaypoints?: Array<{ lat: number; lon: number; name?: string; isDayBreak?: boolean; note?: string; osmId?: number; poiTags?: Record }>, initialNoGoAreas?: Array<{ points: Array<{ lat: number; lon: number }> }>, initialNotes?: string, ): YjsState | null { @@ -108,6 +108,9 @@ export function useYjs( yMap.set("lon", wp.lon); if (wp.name) yMap.set("name", wp.name); if (wp.isDayBreak) yMap.set("overnight", true); + if (wp.note) yMap.set("note", wp.note); + if (wp.osmId !== undefined) yMap.set("osmId", wp.osmId); + if (wp.poiTags) yMap.set("poiTags", wp.poiTags); waypoints.push([yMap]); } if (initialNoGoAreas?.length && noGoAreas.length === 0) { diff --git a/apps/planner/app/routes/api.sessions.ts b/apps/planner/app/routes/api.sessions.ts index df4e17c..a2cf7e0 100644 --- a/apps/planner/app/routes/api.sessions.ts +++ b/apps/planner/app/routes/api.sessions.ts @@ -19,7 +19,7 @@ export async function action({ request }: Route.ActionArgs) { return withDb(async () => { const session = await createSession({ callbackUrl, callbackToken }); - let initialWaypoints: Array<{ lat: number; lon: number; name?: string; isDayBreak?: boolean }> | undefined; + let initialWaypoints: Array<{ lat: number; lon: number; name?: string; isDayBreak?: boolean; note?: string; osmId?: number; poiTags?: Record }> | undefined; let initialNoGoAreas: Array<{ points: Array<{ lat: number; lon: number }> }> | undefined; let initialNotes: string | undefined; if (gpx) {