From 86263019b47afc8f7931d6c998a82fea846c84dc Mon Sep 17 00:00:00 2001 From: wcjord <32568597+wcjord@users.noreply.github.com> Date: Tue, 23 Jun 2026 13:08:50 -0400 Subject: [PATCH] =?UTF-8?q?spike(world-map):=20OpenFreeMap=20vector=20dark?= =?UTF-8?q?=20basemap=20(#7077)=20=E2=80=94=20parked=20pending=20web-perf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/routes/world/world_map.dart | 10 ++++ lib/routes/world/world_map_view.dart | 47 ++++++++++++---- pubspec.lock | 80 +++++++++++++++++++++++----- pubspec.yaml | 5 ++ 4 files changed, 119 insertions(+), 23 deletions(-) diff --git a/lib/routes/world/world_map.dart b/lib/routes/world/world_map.dart index e3f187a7ec..6284750c5d 100644 --- a/lib/routes/world/world_map.dart +++ b/lib/routes/world/world_map.dart @@ -6,6 +6,7 @@ import 'package:flutter_map/flutter_map.dart'; import 'package:go_router/go_router.dart'; import 'package:latlong2/latlong.dart'; import 'package:matrix/matrix.dart'; +import 'package:vector_map_tiles/vector_map_tiles.dart'; import 'package:fluffychat/features/activity_sessions/activity_plan_repo.dart'; import 'package:fluffychat/features/course_plans/courses/course_plan_room_extension.dart'; @@ -89,6 +90,15 @@ class WorldMapController extends State with SingleTickerProviderStateMixin { final MapController _ownController = MapController(); + /// #7077: the OpenFreeMap dark vector style, loaded ONCE. A single Style read + /// fans out to the tilejson, glyphs, and sprite; the dark base layer + /// FutureBuilds on this and falls back to the CartoDB raster until it resolves + /// (or if it errors), so dark mode is never blank. `late final` so it is + /// created on first access only — i.e. only in dark mode. + late final Future