mirror of
https://github.com/mattermost/mattermost-mobile.git
synced 2026-11-05 10:28:54 +00:00
Four route files were still consuming useLocalSearchParams directly,
bypassing the safeParseJSON decode that every other route already
uses via usePropsFromParams. Combined with propsToParams unconditionally
JSON.stringify'ing every prop (#9931), that means their string params
arrived with literal quote characters embedded (e.g. rootId "abc123"
-> `"abc123"`).
Impact:
- thread.tsx: rootId doesn't match any post in the DB, rootPost stays
undefined, ThreadContent never renders. The user sees a blank thread
screen with subtitle `in "channel name"` (visible quote characters).
- code.tsx: code param is rendered verbatim by the highlighter with
outer quotes and escaped inner quotes/backslashes. The MM-69330
workaround (bypassing the hook to preserve string type) is obsolete
now that propsToParams always JSON-encodes: safeParseJSON('"42"')
returns the string '42', not the number 42.
- about.tsx / settings_display_timezone_select.tsx: header text and
timezone identifier arrive with extra quotes.
Migrating all four to usePropsFromParams closes the symmetry: every
param is JSON-encoded on send and JSON-decoded on receive.
Also updates code.test.tsx to feed the route JSON-encoded params, so
the MM-69330 regression coverage still exercises the exact scenario
seen in production.
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| actions | ||
| client | ||
| components | ||
| constants | ||
| context | ||
| database | ||
| helpers | ||
| hooks | ||
| i18n | ||
| init | ||
| keyboard | ||
| managers | ||
| products | ||
| queries | ||
| routes | ||
| screens | ||
| store | ||
| utils | ||