Context
This is a sub-issue of #53493 (Replace modal screens with modals from @react-navigation).
For full background and migration approach, see the triage analysis comment and the sub-issue breakdown comment.
Problem
WorkspaceMemberDetailsRoleSelectionModal is currently implemented using react-native-modal, which causes animation inconsistencies on native platforms.
Migration approach (Group 2 — Lift local useState to Onyx)
- File:
src/pages/workspace/WorkspaceMemberRoleSelectionModal.tsx
- Used by: Only
ImportedMembersConfirmationPage.tsx
- On select:
onRoleChange(item) → setRole(item.value) local state, consumed by importPolicyMembers(policy, membersWithRole) API on submit
- State to lift:
role in ImportedMembersConfirmationPage → spreadsheet import form draft or a dedicated Onyx key, so the navigation page can write it and the parent reads it reactively.
Steps
- Lift the
role state from ImportedMembersConfirmationPage to an Onyx key or form draft.
- Create a new
@react-navigation modal route for role selection.
- Extract the modal content into a standalone screen component that writes the selected role to Onyx on selection.
- Replace the
<WorkspaceMemberRoleSelectionModal /> usage with a navigation call.
- Test on iOS, Android, and web.
Reference
Upwork Automation - Do Not Edit
- Upwork Job URL: https://www.upwork.com/jobs/~022054512594363288628
- Upwork Job ID: 2054512594363288628
- Last Price Increase: 2026-05-13
Issue Owner
Current Issue Owner: @ZhenjaHorbach
Issue Owner
Current Issue Owner: @ZhenjaHorbach
Context
This is a sub-issue of #53493 (Replace modal screens with modals from
@react-navigation).For full background and migration approach, see the triage analysis comment and the sub-issue breakdown comment.
Problem
WorkspaceMemberDetailsRoleSelectionModalis currently implemented usingreact-native-modal, which causes animation inconsistencies on native platforms.Migration approach (Group 2 — Lift local
useStateto Onyx)src/pages/workspace/WorkspaceMemberRoleSelectionModal.tsxImportedMembersConfirmationPage.tsxonRoleChange(item)→setRole(item.value)local state, consumed byimportPolicyMembers(policy, membersWithRole)API on submitroleinImportedMembersConfirmationPage→ spreadsheet import form draft or a dedicated Onyx key, so the navigation page can write it and the parent reads it reactively.Steps
rolestate fromImportedMembersConfirmationPageto an Onyx key or form draft.@react-navigationmodal route for role selection.<WorkspaceMemberRoleSelectionModal />usage with a navigation call.Reference
@react-navigation#53493Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @ZhenjaHorbachIssue Owner
Current Issue Owner: @ZhenjaHorbach