todos-contra-el-fuego-web/imports/ui/components
vjrj bc778bfd97 deps: react-leaflet 1.8 -> 4.2 (+ leaflet 1.9) — the last legacy react-* lib
Ground-up hooks rewrite of the app's core map. Removes the final batch of
React-19-blocking warnings (legacy context on Map/LayersControl/TileLayer/
Marker/CircleMarker/Circle/Tooltip + ReactDOM.render from the old controls).

Core: <Map> -> <MapContainer>; .leafletElement refs (6 files) -> the map/
layer instances directly, via a <MapReady> child (useMap) + plain refs on
Marker/Circle/GeoJSON; controlled viewport (onViewportChanged + state.center/
zoom) -> <MapEvents> (useMapEvents moveend/zoomend) + imperative setView;
onClick -> eventHandlers={{click}}; Path styling -> pathOptions/style;
subsUnion takes the L.Map directly.

The 4 v1-only plugins reimplemented (new in-repo helpers under Maps/):
- react-leaflet-control -> MapControl (L.Control + createPortal)
- react-leaflet-google  -> GoogleMutantLayer (createLayerComponent +
  leaflet.gridlayer.googlemutant; Google Maps API already loaded by Gkeys)
- react-leaflet-fullscreen -> createControlComponent + leaflet.fullscreen
- leaflet-sleep / leaflet-graphicscale kept as vanilla (work on leaflet 1.9)

Browser-verified: /fires (tiles, OSM+Google layer switch, custom control,
fullscreen, graphic scale, pan/zoom -> re-fetch, no NaN), fire detail
(GeoJSON rect + fitBounds), home (3 maps coexist; SelectionMap draggable
marker -> updatePosition + distance circle). Console now shows 0 React
warnings on home/fires. REST smoke byte-identical.
2026-07-21 18:45:15 +02:00
..
AccountPageFooter scss: migrate @import -> @use, lighten/darken -> color.adjust (dart-sass) 2026-07-17 18:18:04 +02:00
Authenticated deps: react-router-dom 4 -> 6 (history 5, react-router-bootstrap 0.26) 2026-07-21 13:00:15 +02:00
AuthenticatedNavigation deps: react-router-dom 4 -> 6 (history 5, react-router-bootstrap 0.26) 2026-07-21 13:00:15 +02:00
BetaRibbon deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
CenterInMyPosition deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
Chronos Site settings and fires fromNow Reactive 2018-01-29 11:30:17 +01:00
Col deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
Comments deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Content scss: migrate @import -> @use, lighten/darken -> color.adjust (dart-sass) 2026-07-17 18:18:04 +02:00
CookieConsent meteor3: purge dead client packages — web UI renders on 3.1 2026-07-14 11:32:19 +02:00
DistanceSlider deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
DocumentEditor deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
ErrorBoundary Against the Fire 2018-03-05 12:04:55 +01:00
Feedback deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
Footer deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
FromNow cleanup: UNSAFE_componentWillReceiveProps -> modern lifecycles (React 19) 2026-07-21 14:03:44 +02:00
History deps: react-router-dom 4 -> 6 (history 5, react-router-bootstrap 0.26) 2026-07-21 13:00:15 +02:00
Icon add last minute tweaks found while writing docs 2017-06-13 08:12:26 -05:00
InputHint scss: migrate @import -> @use, lighten/darken -> color.adjust (dart-sass) 2026-07-17 18:18:04 +02:00
Loading refactor: LoadingBar via progressbar.js + ref (drops react-progress-bar.js findDOMNode) 2026-07-21 14:24:32 +02:00
LocationAutocomplete deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
Maps deps: react-leaflet 1.8 -> 4.2 (+ leaflet 1.9) — the last legacy react-* lib 2026-07-21 18:45:15 +02:00
Navigation cleanup: defaultProps -> JS default params on our function components 2026-07-21 13:54:02 +02:00
NavItem deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
NotificationsObserver Mobile notifications 2018-08-02 12:42:19 +02:00
OAuthLoginButton cleanup: defaultProps -> JS default params on our function components 2026-07-21 13:54:02 +02:00
OAuthLoginButtons scss: migrate @import -> @use, lighten/darken -> color.adjust (dart-sass) 2026-07-17 18:18:04 +02:00
PageHeader cleanup: defaultProps -> JS default params on our function components 2026-07-21 13:54:02 +02:00
Prompt deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
Public deps: react-router-dom 4 -> 6 (history 5, react-router-bootstrap 0.26) 2026-07-21 13:00:15 +02:00
PublicNavigation deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Reconnect refactor: Reconnect banner Blaze -> native React (drops findDOMNode) 2026-07-21 14:08:52 +02:00
ReSendEmail cleanup: defaultProps -> JS default params on our function components 2026-07-21 13:54:02 +02:00
SelectionMap deps: react-leaflet 1.8 -> 4.2 (+ leaflet 1.9) — the last legacy react-* lib 2026-07-21 18:45:15 +02:00
ShareIt deps: react-share 2 -> 5 (drops its defaultProps warnings) 2026-07-21 14:14:48 +02:00
SubscriptionEditor deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Utils deps: react-router-dom 4 -> 6 (history 5, react-router-bootstrap 0.26) 2026-07-21 13:00:15 +02:00
withRouterCompat deps: react-router-dom 4 -> 6 (history 5, react-router-bootstrap 0.26) 2026-07-21 13:00:15 +02:00