-
Notifications
You must be signed in to change notification settings - Fork 4k
Surface "Import workflows" on the Workflows page #94694
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
80ab6d4
Surface Import workflows on the Workflows page
MelvinBot c336859
Merge remote-tracking branch 'origin/main' into claude-importWorkflow…
MelvinBot 90c5e99
Move More menu to page header and restore Add approval workflow in card
MelvinBot 1123f29
Route Import workflows mapping step to a Workflows-context imported s…
MelvinBot ef4aaec
Merge remote-tracking branch 'origin/main' into claude-importWorkflow…
MelvinBot b9f028b
Reorder imports in ImportWorkflowsPage to satisfy import/order grouping
MelvinBot 80c9738
Address Codex review: gate import by workflow write access, add 'Add …
MelvinBot 3333db4
Fix: keep Workflows central pane under imported role picker
MelvinBot a40dc69
Merge remote-tracking branch 'origin/main' into claude-importWorkflow…
MelvinBot 68ba641
Show only Import workflows in the Workflows More menu; restore Add ap…
MelvinBot 93a63c0
Block workflows import for HR read-only workflow mode
MelvinBot 1a4108c
Merge remote-tracking branch 'origin/main' into claude-importWorkflow…
MelvinBot 1b6cd8b
Route Submit 2026 workspaces to approvals upgrade from Import workflows
MelvinBot 42859f9
Merge remote-tracking branch 'origin/main' into claude-importWorkflow…
MelvinBot f06158b
Use 'Invite members' title and 'Invite' CTA on the workflows import c…
MelvinBot ef7a67d
Merge remote-tracking branch 'origin/main' into claude-importWorkflow…
MelvinBot 4f5d823
Merge branch 'main' into claude-importWorkflowsOnWorkflowsPage
deetergp File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When a workflow import includes non-workspace submitters/approvers, the confirmation page can open
imported-members-rolefromWORKFLOWS_IMPORTED_CONFIRMATION, but the dynamic screen is still only related toSCREENS.WORKSPACE.MEMBERSinWORKSPACE_TO_RHP. BecausegetAdaptedStateFromPath()uses that inverse relation before considering the dynamic route's base path, refreshing/deep-linking/adapting this role picker reconstructs the Members page underneath instead of Workflows, so closing the RHP drops users into the wrong workspace section. This needs a workflow-specific relation/route or other handling before allowing the workflows confirmation as an entry screen.Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@MelvinBot lets fix this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in 3333db4.
Root cause: the imported-members role picker (
DYNAMIC_IMPORTED_MEMBERS_ROLE) was listed underSCREENS.WORKSPACE.MEMBERSinWORKSPACE_TO_RHP.ts. Its inverse (RHP_TO_WORKSPACE) maps each RHP screen to exactly one central pane, soRHP_TO_WORKSPACE[role] = MEMBERS. On refresh/deep-link,getMatchingFullScreenRoutematched that relation before reaching the dynamic base-path branch, forcing Members underneath even when the picker was opened from Workflows — exactly what you flagged.Fix: removed the role screen from that relation (
WORKSPACE_TO_RHP.ts). It's a dynamic route, so with no static pingetMatchingFullScreenRoutenow falls through to its dynamic-suffix branch, which stripsimported-members-role, re-parses the base confirmation path, and recurses — resolvingRHP_TO_WORKSPACE[WORKFLOWS_IMPORTED_CONFIRMATION] = WORKFLOWSfrom the workflow flow andMEMBERS_IMPORTED_CONFIRMATION → MEMBERSfrom the member flow. So the correct section is now reconstructed underneath for both entry points, and closing the RHP lands the user in the right place.Why not just add it to the WORKFLOWS group too?
createInverseRelationcollapses to one central pane per RHP screen (last write wins), so listing it under both would simply swap the regression from Workflows to Members. Deferring to the base path is the only way to serve both entry points — the same mechanism dynamic routes already rely on (e.g.VERIFY_ACCOUNT, the accounting export selectors). Added an inline comment on the omission so it isn't "helpfully" re-added later.Checks:
lint(changed file) ✅, navigation Jest suite ✅ (37 suites / 419 tests). Pre-existingtsgoerrors in the loading-indicator components (StyleSheet.absoluteFillObject) are unrelated to this change; the authoritativetypecheck(tsc) runs in CI.