-
Notifications
You must be signed in to change notification settings - Fork 3.2k
[Due for payment 2025-02-25] [Due for payment 2025-02-19] [$250] Unable to leave a random workspace invited to #55462
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
Comments
Triggered auto assignment to @JmillsExpensify ( |
This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989 |
Can repro. Please assign me C+ as per https://expensify.slack.com/archives/C02NK2DQWUX/p1737328646622939 ![]() |
ProposalPlease re-state the problem that we are trying to solve in this issue.Unable to quit from a random workspace invited to What is the root cause of that problem?New feature What changes do you think we should make in order to solve the problem?We should create a feature that allows users to leave a workspace. To implement it, refer to this test branch Test branchI will explain what we will do to implement the leave workspace feature.
{isPolicyUser && readOnly && (
// or {!(isAdmin || isOwner) && ( like https://github.com/Expensify/App/blob/46e252577d25630e33bc5e23f8992004b5d06ccb/src/pages/workspace/WorkspacesListPage.tsx#L198
<View style={[styles.flexRow, styles.mt6, styles.mnw120]}>
<Button
accessibilityLabel={translate('common.leave')}
text={translate('common.leave')}
onPress={() => setIsLeaveModalOpen(true)}
icon={Expensicons.Exit}
/>
</View>
)}
const [isLeaveModalOpen, setIsLeaveModalOpen] = useState(false);
<ConfirmModal
title={translate('common.leave')}
isVisible={isLeaveModalOpen}
onConfirm={confirmLeaveAndHideModal}
onCancel={() => setIsLeaveModalOpen(false)}
prompt={translate('workspace.common.leaveConfirmation')}
confirmText={translate('common.leave')}
cancelText={translate('common.cancel')}
danger
/>
const confirmLeaveAndHideModal = useCallback(() => {
if (!policy?.id || !policyName) {
return;
}
Policy.leaveWorkspace(policy.id);
setIsDeleteModalOpen(false);
// If the workspace being deleted is the active workspace, switch to the "All Workspaces" view
if (activeWorkspaceID === policy.id) {
setActiveWorkspaceID(undefined);
Navigation.dismissModal();
const rootState = navigationRef.current?.getRootState() as State<RootStackParamList>;
const topmostBottomTabRoute = getTopmostBottomTabRoute(rootState);
if (topmostBottomTabRoute?.name === SCREENS.SETTINGS.ROOT) {
Navigation.setParams({policyID: undefined}, topmostBottomTabRoute?.key);
}
}
}, [policy?.id, policyName, activeWorkspaceID, setActiveWorkspaceID]); POCScreen.Recording.2025-01-20.at.11.56.57.mp4What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?We create test for leaveWorksapce function What alternative solutions did you explore? (Optional)Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job. |
ProposalPlease re-state the problem that we are trying to solve in this issue.
What is the root cause of that problem?
What changes do you think we should make in order to solve the problem?
instead of:
when they select themselves. Therefore, we can update:
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?NA What alternative solutions did you explore? (Optional)ResultScreen.Recording.2025-01-20.at.15.08.56.mov |
@JmillsExpensify Uh oh! This issue is overdue by 2 days. Don't forget to update your issues! |
@JmillsExpensify Can you assign me C+ here as per #55462 (comment) Edit - There seems to be additional cases we need to cover in this issue. |
Additional cases to handle - Allow anyone to leave the workspace except users who met any of the following conditions:
|
@huult @truph01 Can you update your proposals to handle these cases? Mock |
@shubham1206agra We will adjust the condition here to display the leave button for each case |
Currently, I am checking the leave button if it is not isAdmin || isOwner |
@huult I am afraid you need to give more details than that to get your proposal completed |
Is it really a bug? , because we already have the Screen.Recording.2025-01-24.at.6.16.22.PM.mov |
@Shahidullah-Muffakir It is more of a feature request right now. |
@JmillsExpensify Still overdue 6 days?! Let's take care of this! |
@JmillsExpensify 8 days overdue is a lot. Should this be a Weekly issue? If so, feel free to change it! |
Job added to Upwork: https://www.upwork.com/jobs/~021884532293307294606 |
@Expensify/marketing could we get some 👀 on copy for this please? Just for the button ("Leave workspace" seems easy enough) and then for the confirmation pop up - something like Thank you! |
I like it! Small tweak but we can say "...you'll lose access..." |
oh sorry one more @jamesdeanexpensify - do we want just |
Adding approved EN and ES here: Button:
Modal:
|
I don't think that's true. You, for example, keep access to your expense reports. What's the warning message copy we show on OldDot? |
@trjExpensify Can I ask about the payment for this ticket? As mentioned in this comment, can I receive any payment now, or will I receive the payment once this issue is complete? |
We're reverting the PR as it'll cause regressions, so once #56750 is complete. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.97-1 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2025-02-19. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.99-2 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2025-02-25. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
Uh oh!
There was an error while loading. Please reload this page.
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Version Number: 9.0.87-0
Reproducible in staging?: need reproduction
Reproducible in production?: need reproduction
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @quinthar
Slack conversation (hyperlinked to channel name): expense
Action Performed:
Expected Result:
Should be able to remove from the workspace invited to as a member
Actual Result:
There is no way to get removed from the workspace
Workaround:
unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Add any screenshot/video evidence
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @JmillsExpensifyThe text was updated successfully, but these errors were encountered: