mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-21 06:11:45 +00:00
Fix a batch of reported bugs (#1145)
* fix(maps): fall back to OSM/Wikipedia for place photos and normalize non-standard language codes (#1137) * fix(auth): refuse password reset for OIDC/SSO-linked accounts (#1129) * fix(docker): ship server/assets (airports + atlas geo) in the runtime image (#1133, #1119) * fix(unraid): point the template at a PNG icon Unraid can render (#1073) * fix(offline): serve cached file blobs when offline or on network failure (#1046, #1069) * fix(map): centre the selected pin in the visible map area above the bottom panel (#1125) * fix(pdf): render persisted place-photo proxy URLs as images (#1130) * fix(planner): show the selected place category in the edit form (#1134) * fix(dashboard): collapse list-view trip cards to a compact row on mobile (#1132)
This commit is contained in:
@@ -148,6 +148,24 @@ export async function upsertSyncMeta(meta: SyncMeta): Promise<void> {
|
||||
await offlineDb.syncMeta.put(meta);
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a pre-downloaded file blob for offline use. Returns null when the file
|
||||
* was never cached (or on any read error). The stored MIME is reapplied so the
|
||||
* caller's inline-vs-download decision stays correct even if the persisted Blob
|
||||
* lost its type.
|
||||
*/
|
||||
export async function getCachedBlob(url: string): Promise<Blob | null> {
|
||||
try {
|
||||
const entry = await offlineDb.blobCache.get(url);
|
||||
if (!entry) return null;
|
||||
return entry.blob.type
|
||||
? entry.blob
|
||||
: new Blob([entry.blob], { type: entry.mime || 'application/octet-stream' });
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// ── Eviction / cleanup ────────────────────────────────────────────────────────
|
||||
|
||||
/** Delete all cached data for one trip (eviction or explicit clear). */
|
||||
|
||||
Reference in New Issue
Block a user