diff --git a/src/components/gpx/Gpx.tsx b/src/components/gpx/Gpx.tsx index 9af9f79..1582c76 100644 --- a/src/components/gpx/Gpx.tsx +++ b/src/components/gpx/Gpx.tsx @@ -1,10 +1,4 @@ -import { - Component, - createEffect, - For, - onCleanup, - Suspense, -} from 'solid-js'; +import { Component, createEffect, For, onCleanup, Suspense } from 'solid-js'; import OlMap from 'ol/Map'; @@ -33,6 +27,13 @@ export const Gpx: Component = ({ map, gpxId }) => { const gpx = createCachedSignal(params); onCleanup(() => { + console.log({ + caller: 'Gpx / onCleanup', + gpxId, + gpx: gpx(), + params, + }); + destroyCachedSignal(params); }); diff --git a/src/components/rte/Rte.tsx b/src/components/rte/Rte.tsx index e5c0a2a..204cb25 100644 --- a/src/components/rte/Rte.tsx +++ b/src/components/rte/Rte.tsx @@ -22,6 +22,13 @@ export const Rte: Component = ({ vectorSource, rteId, context }) => { const rte = createCachedSignal(params); onCleanup(() => { + console.log({ + caller: 'Rte / onCleanup', + rteId, + rte: rte(), + params, + }); + destroyCachedSignal(params); }); diff --git a/src/components/trk/Trk.tsx b/src/components/trk/Trk.tsx index 749b8ef..8786053 100644 --- a/src/components/trk/Trk.tsx +++ b/src/components/trk/Trk.tsx @@ -33,6 +33,7 @@ export const Trk: Component = ({ vectorSource, trkId, context }) => { const trk = createCachedSignal(params); onCleanup(() => { + console.log({ caller: 'Trk / onCleanup', trkId, trk: trk(), params }); destroyCachedSignal(params); }); diff --git a/src/components/trkseg/Trkseg.tsx b/src/components/trkseg/Trkseg.tsx index cf92d03..7f6547d 100644 --- a/src/components/trkseg/Trkseg.tsx +++ b/src/components/trkseg/Trkseg.tsx @@ -25,8 +25,24 @@ export const Trkseg: Component = ({ }; const trkseg = createCachedSignal(params); + const clearFeatures = () => { + [`${trksegId}/start`, trksegId, `${trksegId}/end`].forEach((id) => { + const feature = vectorSource.getFeatureById(id); + if (feature) { + vectorSource.removeFeature(feature); + } + }); + }; + onCleanup(() => { + console.log({ + caller: 'Trkseg / onCleanup', + trksegId, + trkseg: trkseg(), + params, + }); destroyCachedSignal(params); + clearFeatures(); }); createEffect(() => { @@ -86,12 +102,7 @@ export const Trkseg: Component = ({ const features = new GeoJSON().readFeatures(geo); console.log({ caller: 'Trkseg', features }); - [`${trksegId}/start`, trksegId, `${trksegId}/end`].forEach((id) => { - const feature = vectorSource.getFeatureById(id); - if (feature) { - vectorSource.removeFeature(feature); - } - }); + clearFeatures(); vectorSource.addFeatures(features); } }); diff --git a/src/components/wpt/Wpt.tsx b/src/components/wpt/Wpt.tsx index 86ed529..e5d2ff2 100644 --- a/src/components/wpt/Wpt.tsx +++ b/src/components/wpt/Wpt.tsx @@ -38,6 +38,13 @@ export const Wpt: Component = ({ const wpt = createCachedSignal(params); onCleanup(() => { + console.log({ + caller: 'Wpt / onCleanup', + wptId, + wpt: wpt(), + params, + }); + destroyCachedSignal(params); }); diff --git a/src/db/trk.ts b/src/db/trk.ts index d42872a..cc53a43 100644 --- a/src/db/trk.ts +++ b/src/db/trk.ts @@ -57,7 +57,7 @@ export const deleteTrk = async (params: any) => { const { id } = params; const docs = await getFamily(id, { include_docs: false }); console.log({ caller: 'deleteTrk' }, id, docs); - const deletedDocs = docs.rows.map((doc: any) => ({ + const deletedDocs = docs.rows.reverse().map((doc: any) => ({ _deleted: true, _id: doc.id, _rev: doc.value.rev,