mirror of
https://github.com/mattermost/mattermost-mobile.git
synced 2026-11-06 10:50:13 +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. Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| .. | ||
| (add-server) | ||
| (browse_channels) | ||
| (channel_info) | ||
| (custom_status) | ||
| (settings) | ||
| _layout.tsx | ||
| apps_form.tsx | ||
| channel_bookmark.tsx | ||
| create_direct_message.tsx | ||
| create_or_edit_channel.tsx | ||
| dialog_router.tsx | ||
| edit_post.tsx | ||
| edit_profile.tsx | ||
| edit_server.tsx | ||
| find_channels.tsx | ||
| integration_selector.tsx | ||
| invite.tsx | ||
| join_team.tsx | ||
| pdf_viewer.tsx | ||
| reschedule_draft.tsx | ||