Commit graph

65 commits

Author SHA1 Message Date
258723ea72 refactor: Reconnect banner Blaze -> native React (drops findDOMNode)
Reconnect rendered the Blaze meteorStatus template via
gadicc:blaze-react-component, whose bridge uses the deprecated findDOMNode
(warned on every page since it's always mounted). Reimplemented natively
with useTracker(Meteor.status) + a countdown effect, same behaviour and
reusing 255kb:meteor-status's .meteor-status CSS. Also dropped the dead
Blaze import from App.js.

Remaining findDOMNode warnings are third-party only: react-progress-bar.js
(LoadingBar) and Status.js's Blaze serverFacts (/status admin page).
Browser-verified home renders, no banner while connected, no new errors.
REST smoke byte-identical.
2026-07-21 14:08:52 +02:00
4ddaa0d8ec cleanup: defaultProps -> JS default params on our function components
React 19 drops defaultProps on function components. Converted the 9 of
ours that used it (App, Navigation, ReSendEmail, Reconnect, OAuthLoginButton,
PageHeader, Page, EditDocument, EditSubscription) to destructured default
params; App defaults userId/emailAddress in its withTracker instead (it
spreads {...props} widely). Class components keep defaultProps (still
supported). The only defaultProps warnings left are from the react-share
npm package (CreatedButton/Icon), not our code. REST smoke byte-identical.
2026-07-21 13:54:02 +02:00
e2d13ca64c deps: react-router-dom 4 -> 6 (history 5, react-router-bootstrap 0.26)
Removes the Router/Switch/Route/Link/LinkContainer legacy-context
warnings. Keeps the shared history singleton (used outside React by
NotificationsObserver + Utils/location) via unstable_HistoryRouter, and
bridges v6 hooks back to v4-shaped history/match/location props with a
new withRouterCompat HOC so the ~20 class pages stay untouched.

- <Switch> -> <Routes>, component= -> element=
- Authenticated/Public -> guard components (children or <Navigate replace>)
- LocationListener -> useLocation + useEffect function
- regex route /fire/:type(active|archive|alert)/:id -> /fire/:type/:id
- history.listen callback is ({ location }) in history v5

Browser-verified: SPA nav, /subscriptions->/login auth redirect,
deep-link /fire/archive/:id (params), browser back/forward. REST smoke
byte-identical.
2026-07-21 13:00:15 +02:00
a1a1b9a801 deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt)
Removes the largest batch of React-19-blocking warnings: the 0.31
components (Grid, FormGroup, ControlLabel, Navbar.Header/Brand, Checkbox,
SafeAnchor) all leaned on legacy context / defaultProps.

29 files converted: Grid->Container, FormGroup/ControlLabel/FormControl/
HelpBlock -> Form.Group/Label/Control/Text, Checkbox -> Form.Check (label
as prop), bsStyle->variant (default->secondary), bsSize->size,
pull-right->float-end. Custom Col.js now re-exports v2's Col; custom
NavItem.js rewritten self-contained (no SafeAnchor/createChainedFunction);
Navigation.js drops react-bootstrap Navbar (raw markup anyway).

CSS stays on Bootstrap 4 (alexwine:bootstrap-4) for now: the BS4->5 jump
is entangled with the jQuery carousel/swipe + navbar-collapse and is
tracked as separate debt in UPGRADE.md. Only .form-label needed a shim
(forms.scss). Browser-verified home carousel+navbar, signup form + terms
checkbox, login form; REST smoke byte-identical.
2026-07-21 12:44:46 +02:00
f1eae84e25 deps: react-helmet -> react-helmet-async 2
react-helmet 5 is unmaintained and breaks under React 18 StrictMode.
Same <Helmet> API in the 15 pages; HelmetProvider wraps <App/> in the
client entry. Browser-verified: per-page titles, meta description and
hreflang alternates all inject. REST smoke byte-identical.
2026-07-18 06:14:14 +02:00
c6c22643c1 scss: migrate @import -> @use, lighten/darken -> color.adjust (dart-sass)
Silences the dart-sass deprecation warnings that flooded every build:
- All @import of local partials (colors, mixins, and the CSS-emitting
  partials) -> @use '...' as * (partials are pure defs, so 'as *' keeps the
  global names and the ~25 call sites unchanged). Added explicit @use './colors'
  to bootstrap-overrides.scss and cookies-eu.scss, which used -palette*
  transitively (broke under @use's scoping).
- lighten(c, x%) -> color.adjust(c, $lightness: x%) and darken -> negative,
  with @use 'sass:color' in the 6 affected files.
Compiles clean (byte-for-byte CSS behavior preserved).
2026-07-17 18:18:04 +02:00
eb3aec82ae meteor3: purge dead client packages — web UI renders on 3.1
alanning:roles removed (client crashed the whole bundle; plain user.roles
checks instead), selaias:cookie-consent replaced by in-repo React banner,
publish-performant-counts vendored with countAsync, Meteor.autorun dropped
(App)/Tracker.autorun (FiresMap), and the map publications not covered by
the REST smoke (activefiresmyloc, activefiresunionmyloc, fireAlerts,
oauth.verifyConfiguration) converted to async APIs.

Verified in browser: / and /fires render with map + cookie banner, zero
uncaught exceptions. REST smoke byte-identical (12/12).
2026-07-14 11:32:19 +02:00
vjrj
564b9e8ead Trying to fix race condition in i18n load 2018-11-18 15:43:48 +01:00
vjrj
6e82e2813b Added rendertron flag 2018-05-07 23:56:10 +02:00
vjrj
bf757a7f84 href lang for different pages 2018-03-14 10:35:07 +01:00
vjrj
4954b907de Autoreconnect 2018-03-07 11:44:56 +01:00
vjrj
dfd31e69ca Refactor App for better ErrorHandling when i18next is not ready 2018-03-03 11:41:43 +01:00
vjrj
ccbfe642a8 Added industries collection 2018-02-26 12:11:23 +01:00
vjrj
ae3b9e5faf About page 2018-02-22 10:49:15 +01:00
vjrj
f46aabb4d3 Added feedback 2018-02-21 15:29:25 +01:00
vjrj
84ab9f9cdc Move simple icon where used 2018-02-20 09:29:24 +01:00
vjrj
151c792fc6 Disabled feedback in production 2018-02-19 09:40:40 +01:00
vjrj
719ea435d4 Feedback not in home and email for non auth users 2018-02-18 20:21:26 +01:00
vjrj
2c53428f8d Feedback only for auth users 2018-02-18 17:37:39 +01:00
vjrj
ba32c4fd0d Feedback button 2018-02-18 17:00:54 +01:00
vjrj
2477c985d6 Added popup to alerts 2018-02-15 18:10:38 +01:00
vjrj
aec4c2a0b0 Added meta hreflang 2018-02-15 17:13:54 +01:00
vjrj
8809a3e3c8 Some work with spiderable 2018-02-14 10:26:22 +01:00
vjrj
ac0fa6cebd Refactor 2018-02-12 12:17:24 +01:00
vjrj
e46ae3a000 Added zones nav link 2018-02-12 09:49:13 +01:00
vjrj
eca58df6c2 Fire popupsand active/archive urls 2018-02-08 11:15:23 +01:00
vjrj
464af6b9d1 More work with titles & descriptions 2018-02-07 15:27:12 +01:00
vjrj
650a30a244 Added error test page 2018-01-31 19:05:37 +01:00
vjrj
61c0a65009 Error boundary for general errors 2018-01-31 18:45:17 +01:00
vjrj
67ab0186b5 Added facts status 2018-01-31 10:43:15 +01:00
vjrj
81acc255d7 Added meta management via react-helmet 2018-01-30 19:10:37 +01:00
vjrj
58c54e5b94 Telegram auth (wip) 2018-01-26 12:49:53 +01:00
vjrj
4674b48069 Cookie consent when i18n ready 2018-01-24 19:35:55 +01:00
vjrj
cd16f45d8e Style improvements for mobile 2018-01-19 11:04:14 +01:00
vjrj
3bf21c8caf Added web and email notifications. Tests. Fire page 2018-01-16 16:19:29 +01:00
vjrj
ba09269456 Re-added reconnect 2018-01-09 12:15:34 +01:00
vjrj
1742cd4913 Improvement in Subs and FireMap Union 2017-12-19 20:02:14 +01:00
vjrj
918103a17b More work with subscriptions 2017-12-17 02:00:53 +01:00
vjrj
316e14f0ea Added subs management (wip) 2017-12-16 18:47:08 +01:00
vjrj
5bed310153 More work in header and distanceslider 2017-12-12 00:38:40 +01:00
vjrj
441dfa4c62 More work in home, footer, new credits page 2017-12-11 07:56:54 +01:00
vjrj
b6b8f893e3 Gkey improved. New pages. Home improved based in startbootstrap 2017-12-10 03:32:12 +01:00
vjrj
f1786541cd Many improvements: navbar, favico, new icons 2017-12-07 17:29:17 +01:00
vjrj
df96b6e51e Subs form (wip) 2017-12-06 11:04:34 +01:00
vjrj
ecc3e33ad7 Added sandbox 2017-12-04 19:21:08 +01:00
vjrj
2e36c9cd17 Improved FiresMap (makers checkbox, better calcs, etc) 2017-12-03 16:54:24 +01:00
vjrj
fe7a314d92 Added geolocation. Improved map subs. FireMap page 2017-12-01 21:18:10 +01:00
vjrj
055469055c Added piwik 2017-11-29 22:17:00 +01:00
vjrj
fef4c99189 Added sentry 2017-11-29 16:29:12 +01:00
vjrj
5ab88f7a39 Added connection status 2017-11-29 13:38:04 +01:00