todos-contra-el-fuego-web/imports/ui/components
vjrj 229b2cb233 cleanup: UNSAFE_componentWillReceiveProps -> modern lifecycles (React 19)
The 4 class components on UNSAFE_componentWillReceiveProps converted:
- FromNow, FireStats: state is a pure mirror of props -> getDerivedStateFromProps
- Fires: split the derived state (getDerivedStateFromProps) from the URL-
  canonicalization side effect (componentDidUpdate, guarded by prevProps) so
  the side effect never runs inside the pure gDSFP
- SelectionMap: marker is also locally draggable, so gDSFP would clobber a
  drag -> componentDidUpdate guarded on a real center/distance value change
  (no clobber, no setState loop), merged with the existing fit()

Browser-verified: /fires count, fire detail + FromNow, active-fire URL
canonicalizes to /fire/archive/:id, home SelectionMap renders stably (no
render loop). No UNSAFE_ warnings remain from our code. REST smoke
byte-identical.
2026-07-21 14:03:44 +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 Mobile notifications 2018-08-02 12:42:19 +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: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +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 cleanup: defaultProps -> JS default params on our function components 2026-07-21 13:54:02 +02:00
ReSendEmail cleanup: defaultProps -> JS default params on our function components 2026-07-21 13:54:02 +02:00
SelectionMap cleanup: UNSAFE_componentWillReceiveProps -> modern lifecycles (React 19) 2026-07-21 14:03:44 +02:00
ShareIt deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +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