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