web/satellite: fix project switch when removing project members

This change fixes an issue where the currently selected project would
be switched when removing project members.

Change-Id: I8138b4229eb7933d25a2fe84e5aa0b5846fc79b8
This commit is contained in:
Jeremy Wharton 2023-07-09 21:45:04 -05:00 committed by Storj Robot
parent 73d65fce9a
commit 0f9a0ba9cd

View File

@ -32,6 +32,7 @@
border-radius="10px"
:on-press="closeModal"
:is-transparent="true"
:is-disabled="isLoading"
/>
<VButton
label="Remove"
@ -42,6 +43,7 @@
font-size="14px"
border-radius="10px"
:on-press="onRemove"
:is-disabled="isLoading"
/>
</div>
</div>
@ -62,6 +64,7 @@ import { useAppStore } from '@/store/modules/appStore';
import { useProjectsStore } from '@/store/modules/projectsStore';
import { useProjectMembersStore } from '@/store/modules/projectMembersStore';
import { useConfigStore } from '@/store/modules/configStore';
import { useLoading } from '@/composables/useLoading';
import VModal from '@/components/common/VModal.vue';
import VButton from '@/components/common/VButton.vue';
@ -75,6 +78,7 @@ const projectsStore = useProjectsStore();
const pmStore = useProjectMembersStore();
const notify = useNotify();
const router = useRouter();
const { isLoading, withLoading } = useLoading();
const analytics: AnalyticsHttpApi = new AnalyticsHttpApi();
@ -97,7 +101,7 @@ async function setProjectState(): Promise<void> {
return;
}
if (!projects.includes(projectsStore.state.selectedProject)) {
if (!projects.some(p => p.id === projectsStore.state.selectedProject.id)) {
projectsStore.selectProject(projects[0].id);
}
@ -105,17 +109,23 @@ async function setProjectState(): Promise<void> {
}
async function onRemove(): Promise<void> {
try {
await pmStore.deleteProjectMembers(projectsStore.state.selectedProject.id);
await setProjectState();
} catch (error) {
notify.error(`Error while deleting users from projectMembers. ${error.message}`, AnalyticsErrorEventSource.PROJECT_MEMBERS_HEADER);
return;
}
await withLoading(async () => {
try {
await pmStore.deleteProjectMembers(projectsStore.state.selectedProject.id);
notify.success('Members were successfully removed from the project');
pmStore.setSearchQuery('');
} catch (error) {
notify.error(`Error removing project members. ${error.message}`, AnalyticsErrorEventSource.PROJECT_MEMBERS_HEADER);
}
notify.success('Members were successfully removed from project');
pmStore.setSearchQuery('');
closeModal();
try {
await setProjectState();
} catch (error) {
notify.error(`Unable to fetch project members. ${error.message}`, AnalyticsErrorEventSource.PROJECT_MEMBERS_HEADER);
}
closeModal();
});
}
/**