Flags on languages, and stop copying platform lists

Featurekamo-internal
Ya
3 Septemba 2026, 19:55 UTC
Mwandishi
Kamo
Ahadi ya
6e5a5b9

Completes c20bac57. Languages now carry their flag, the same one the NavTop switcher shows and from the same source — the closed value as well as every row in the menu. Getting there exposed the real problem: options.ts had grown private copies of four lists the platform already owns, which is how the page it replaced worked too. • Languages were a retyped copy with no country codes, so a flag was not even possible. Now app/lib/languages.ts, which the NavTop switcher and the chat translator already share. • Currencies were a 34-entry seed against the platform's 160-odd, so a member paid in naira or shekels read their own currency as a bare code with no symbol and no name. Now app/constants/currencies.ts. • Time zones were retyped from the same 27 names. Now derived from TIMEZONE_ENUM_TO_IANA, the one complete map, so the picker cannot offer a zone nothing can resolve. • Work location keeps its values but they are now checked against the Java enum by test. Team membership status stays an explicit list on purpose: the generated TypeScript mirror is STALE and missing CONTRACTS_SENT, so deriving it from there would silently drop a status members are really set to. The Java enum has nine; a test pins all nine. Time zone rows now show what time it is there. Twenty-seven enum names with the underscores removed is a list you have to already know the answer to read; the time is the thing being chosen, so it is the thing shown. Also fixes a claim the first commit did not deliver: framer-motion does not consult prefers-reduced-motion by itself, so the room crossfade and the save bar animated regardless of the setting. MotionConfig reducedMotion="user" now covers both; the CSS-driven pieces already carried their own queries. And the country field renders its flag in the read view, matching the picker that produced it. Verified: npm test (14 guards + 5,121 tests, 70 of them over app/lib/memberProfile), tsc --noEmit, next build.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei