todos-contra-el-fuego-web/imports/ui/pages
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
..
About deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Auth deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Credits deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Documents deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
EditDocument cleanup: defaultProps -> JS default params on our function components 2026-07-21 13:54:02 +02:00
EditSubscription cleanup: defaultProps -> JS default params on our function components 2026-07-21 13:54:02 +02:00
Fires cleanup: UNSAFE_componentWillReceiveProps -> modern lifecycles (React 19) 2026-07-21 14:03:44 +02:00
FiresMap cleanup: UNSAFE_componentWillReceiveProps -> modern lifecycles (React 19) 2026-07-21 14:03:44 +02:00
FireSubscription deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Index deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
License deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Login deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
Logout deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
NewDocument wip wiring up account forms 2017-05-25 16:31:01 -05:00
NewSubscription deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
NotFound deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
Page cleanup: defaultProps -> JS default params on our function components 2026-07-21 13:54:02 +02:00
Privacy deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Profile deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
RecoverPassword deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
ResetPassword deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
Sandbox deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Signup deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
Status deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
Subscriptions deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
Terms deps: i18next 10 -> 23, react-i18next 7 -> 14 2026-07-18 06:28:41 +02:00
TestError Simplify Test page 2018-03-03 08:41:53 +01:00
VerifyEmail deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
ViewDocument deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
ViewSubscription deps: react-bootstrap 0.31 -> 2 (Bootstrap 5 CSS deferred as debt) 2026-07-21 12:44:46 +02:00
ZonesMap ZonesMap refactor 2018-03-03 11:41:12 +01:00