Commit graph

42 commits

Author SHA1 Message Date
e5f7a0f4be fix(maps): entregar el mapa solo cuando tiene tamano real (MapReady)
MapReady entregaba el mapa en el useEffect de montaje, cuando el contenedor
puede no tener tamano todavia. En FiresMap eso hacia que getBounds() lanzara;
el catch solo avisaba ("Failed to set map bounds and scale") y mapSize nunca
se seteaba, con lo que la suscripcion de fuegos por viewport NI SE CREABA:
loading eterno y tile-pane vacio (0 capas) pese a haber 7470 fuegos.

Evidencia: en Meteor.connection._subscriptions solo aparecian activefirestotal,
activefiresuniontotal, settings y userData — ninguna por localizacion.

Ahora se entrega via map.whenReady() + invalidateSize(), solo cuando getSize()
no es 0, con reintento en el evento resize y entrega unica (flag delivered).

Toca el componente compartido por todos los mapas: al desplegar hay que
re-verificar /fires, /zones, /subscriptions, home y detalle de fuego.
SIN DESPLEGAR todavia (la imagen viva es la de 01:33, sin este cambio).
2026-07-28 07:46:19 +02:00
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
12bdbe8fed deps: i18next 10 -> 23, react-i18next 7 -> 14
Modernizes the whole i18n stack:
- 48 translate([], {wait:true}) / translate() HOCs -> withTranslation()
- react.wait:true -> react.useSuspense:false
- whitelist -> supportedLngs; added compatibilityJSON: 'v3' so our
  natural-language keys + v3 _plural layout keep working (custom
  separators ss/eth/dj preserved)
- backends: xhr -> i18next-http-backend (client), sync-fs ->
  i18next-fs-backend (server); dropped i18next-localstorage-cache
  (was enabled:false); languagedetector 2 -> 8
- ReSendEmail: <Interpolate> (removed in v10) -> <Trans values={{email}}/>,
  dropped the removed bare t export
- saveMissing handler signature (lngs, ns, key, fallbackValue)

Silences the per-component Translate/I18n legacy-context warnings.
Browser-verified es/en switch and <Trans> interpolation on /fires;
REST smoke byte-identical.
2026-07-18 06:28:41 +02:00
9feaca9d0b fix: fire ids leaked into URLs as ObjectID("...") on Mongo 7
Fire collections use idGeneration:'MONGO', so _id is a Mongo.ObjectID whose
toString() is ObjectID("<hex>"), not the bare hex. Interpolating _id into a
URL produced /fire/archive/ObjectID("c0..."), which no route matches -> the
fire-detail page 404'd. New hexId() helper returns the 24-char hex for an
ObjectID (and passes plain strings through); applied at the three string-context
sites: the map-marker click URL (MarkListeners), the active->archive redirect,
and the comments referenceId (Fires.js). Left falsePositives.insert untouched —
its check() expects a Meteor.Collection.ObjectID, so it takes the object.

Verified in browser: /fire/archive/<hex> and /fire/active/<hex> render the
detail page (map + comments), URL stays clean hex, no ObjectID( anywhere.
2026-07-17 18:31:59 +02:00
vjrj
4cbbe65fa3 Fix wrong grey tiles 2022-08-13 19:37:56 +02:00
vjrj
b9457fe141 Minor changes in fires union 2018-12-23 13:31:41 +01:00
vjrj
5f9a84dfd7 Unify don't calc boundaries of empty union 2018-11-18 15:45:14 +01:00
vjrj
6abe668740 Added fires union (wip) 2018-11-18 11:48:03 +01:00
vjrj
e96e6ee8f7 Union of polygon to lib 2018-09-16 17:06:23 +02:00
vjrj
a208eb7ea1 More work with unify, circle/square 2018-09-11 11:40:17 +02:00
vjrj
7b056ae754 Terrain instead of satellite in Fires page 2018-04-19 12:52:25 +02:00
vjrj
d2d9b2cf05 Fire neighbour icon 2018-03-10 17:05:16 +01:00
vjrj
72f4ee7fd2 Added version to icons 2018-03-10 13:51:07 +01:00
vjrj
182dc4d878 Fire icons resized 2018-03-10 13:09:41 +01:00
vjrj
815bbb48fe Added opacity to maps 2018-03-04 10:44:26 +01:00
vjrj
dc92574bc3 Full screen on maps 2018-02-27 11:37:54 +01:00
vjrj
1df41f1e5a Industry message changed 2018-02-26 16:36:52 +01:00
vjrj
ccbfe642a8 Added industries collection 2018-02-26 12:11:23 +01:00
vjrj
5e9e6896c0 Fire icon sizes 2018-02-23 17:02:54 +01:00
vjrj
7ce9317876 Maps colors improved 2018-02-20 13:39:05 +01:00
vjrj
7df050a2b1 Use gmaps in fire page for better false positive detection 2018-02-20 09:44:29 +01:00
vjrj
e980bbdb24 Less clicks to show fire info 2018-02-20 09:11:07 +01:00
vjrj
308ad08e74 Tooltip in industries 2018-02-17 09:41:21 +01:00
vjrj
824f66df03 import L 2018-02-17 08:26:46 +01:00
vjrj
2a6d8bea78 False positives only for active fires 2018-02-16 20:40:41 +01:00
vjrj
79eed373d4 Make subs union no clickable (interactive) and wait for fire alerts 2018-02-16 16:46:06 +01:00
vjrj
2477c985d6 Added popup to alerts 2018-02-15 18:10:38 +01:00
vjrj
ac4331edbd Subs union to server side 2018-02-14 18:21:50 +01:00
vjrj
a7f9e51b5f Truncate subs union 2018-02-12 19:56:46 +01:00
vjrj
47b55267df Truncate subs union 2018-02-12 17:23:01 +01:00
vjrj
8e924d1de4 Trying to catch subs union error 2018-02-12 16:59:03 +01:00
vjrj
735dd55531 Fire industries marks 2018-02-08 15:54:47 +01:00
vjrj
eca58df6c2 Fire popupsand active/archive urls 2018-02-08 11:15:23 +01:00
vjrj
26cfadb8da Check subscriptions params 2018-01-23 20:30:06 +01:00
vjrj
fc9f3f1aa7 ssl in bw map 2018-01-23 15:47:05 +01:00
vjrj
7a672bca87 Added confirm 2017-12-20 12:59:25 +01:00
vjrj
9e5fc1baba Added area removing 2017-12-20 01:31:39 +01:00
vjrj
8fbb6716fc Added Layers to SelectionMap. Fixes in index and more 2017-12-20 00:23:41 +01:00
vjrj
1742cd4913 Improvement in Subs and FireMap Union 2017-12-19 20:02:14 +01:00
vjrj
56a7468ae3 Improved firesmap 2017-12-15 17:43:45 +01:00
vjrj
5e5724e535 Refactorization 2017-12-12 17:21:56 +01:00
vjrj
f6453c77d7 Refactorization of FiresMap 2017-12-12 15:20:03 +01:00