fix main dialog container navigation

This commit is contained in:
pa
2026-01-22 22:01:10 +09:00
parent 24d45d5967
commit 290679fb24
4 changed files with 46 additions and 24 deletions

View File

@@ -19,6 +19,7 @@ import { useAdvancedSettingsStore } from './settings/advanced';
import { useAvatarProviderStore } from './avatarProvider'; import { useAvatarProviderStore } from './avatarProvider';
import { useFavoriteStore } from './favorite'; import { useFavoriteStore } from './favorite';
import { useGroupStore } from './group'; import { useGroupStore } from './group';
import { useInstanceStore } from './instance';
import { useModalStore } from './modal'; import { useModalStore } from './modal';
import { useUiStore } from './ui'; import { useUiStore } from './ui';
import { useUserStore } from './user'; import { useUserStore } from './user';
@@ -33,6 +34,7 @@ export const useAvatarStore = defineStore('Avatar', () => {
const avatarProviderStore = useAvatarProviderStore(); const avatarProviderStore = useAvatarProviderStore();
const vrcxUpdaterStore = useVRCXUpdaterStore(); const vrcxUpdaterStore = useVRCXUpdaterStore();
const advancedSettingsStore = useAdvancedSettingsStore(); const advancedSettingsStore = useAdvancedSettingsStore();
const instanceStore = useInstanceStore();
const userStore = useUserStore(); const userStore = useUserStore();
const worldStore = useWorldStore(); const worldStore = useWorldStore();
const groupStore = useGroupStore(); const groupStore = useGroupStore();
@@ -181,17 +183,22 @@ export const useAvatarStore = defineStore('Avatar', () => {
*/ */
function showAvatarDialog(avatarId, options = {}) { function showAvatarDialog(avatarId, options = {}) {
const D = avatarDialog.value; const D = avatarDialog.value;
if ( const hadActiveDialog =
!avatarDialog.value.visible && avatarDialog.value.visible ||
!userStore.userDialog.visible && userStore.userDialog.visible ||
!worldStore.worldDialog.visible && worldStore.worldDialog.visible ||
!groupStore.groupDialog.visible groupStore.groupDialog.visible ||
) { instanceStore.previousInstancesInfoDialog.visible ||
instanceStore.previousInstancesUserDialog.visible ||
instanceStore.previousInstancesWorldDialog.visible ||
instanceStore.previousInstancesGroupDialog.visible;
if (!hadActiveDialog) {
uiStore.clearDialogCrumbs(); uiStore.clearDialogCrumbs();
} }
if (!options.skipBreadcrumb) { if (!options.skipBreadcrumb) {
uiStore.pushDialogCrumb('avatar', avatarId); uiStore.pushDialogCrumb('avatar', avatarId);
} }
instanceStore.hidePreviousInstancesDialogs();
userStore.userDialog.visible = false; userStore.userDialog.visible = false;
worldStore.worldDialog.visible = false; worldStore.worldDialog.visible = false;
groupStore.groupDialog.visible = false; groupStore.groupDialog.visible = false;

View File

@@ -135,17 +135,22 @@ export const useGroupStore = defineStore('Group', () => {
if (!groupId) { if (!groupId) {
return; return;
} }
if ( const hadActiveDialog =
!groupDialog.value.visible && groupDialog.value.visible ||
!userStore.userDialog.visible && userStore.userDialog.visible ||
!worldStore.worldDialog.visible && worldStore.worldDialog.visible ||
!avatarStore.avatarDialog.visible avatarStore.avatarDialog.visible ||
) { instanceStore.previousInstancesInfoDialog.visible ||
instanceStore.previousInstancesUserDialog.visible ||
instanceStore.previousInstancesWorldDialog.visible ||
instanceStore.previousInstancesGroupDialog.visible;
if (!hadActiveDialog) {
uiStore.clearDialogCrumbs(); uiStore.clearDialogCrumbs();
} }
if (!options.skipBreadcrumb) { if (!options.skipBreadcrumb) {
uiStore.pushDialogCrumb('group', groupId); uiStore.pushDialogCrumb('group', groupId);
} }
instanceStore.hidePreviousInstancesDialogs();
userStore.userDialog.visible = false; userStore.userDialog.visible = false;
worldStore.worldDialog.visible = false; worldStore.worldDialog.visible = false;
avatarStore.avatarDialog.visible = false; avatarStore.avatarDialog.visible = false;

View File

@@ -767,17 +767,22 @@ export const useUserStore = defineStore('User', () => {
) { ) {
return; return;
} }
if ( const hadActiveDialog =
!userDialog.value.visible && userDialog.value.visible ||
!worldStore.worldDialog.visible && worldStore.worldDialog.visible ||
!avatarStore.avatarDialog.visible && avatarStore.avatarDialog.visible ||
!groupStore.groupDialog.visible groupStore.groupDialog.visible ||
) { instanceStore.previousInstancesInfoDialog.visible ||
instanceStore.previousInstancesUserDialog.visible ||
instanceStore.previousInstancesWorldDialog.visible ||
instanceStore.previousInstancesGroupDialog.visible;
if (!hadActiveDialog) {
uiStore.clearDialogCrumbs(); uiStore.clearDialogCrumbs();
} }
if (!options.skipBreadcrumb) { if (!options.skipBreadcrumb) {
uiStore.pushDialogCrumb('user', userId); uiStore.pushDialogCrumb('user', userId);
} }
instanceStore.hidePreviousInstancesDialogs();
worldStore.worldDialog.visible = false; worldStore.worldDialog.visible = false;
avatarStore.avatarDialog.visible = false; avatarStore.avatarDialog.visible = false;
groupStore.groupDialog.visible = false; groupStore.groupDialog.visible = false;

View File

@@ -84,17 +84,22 @@ export const useWorldStore = defineStore('World', () => {
if (L.worldId === '') { if (L.worldId === '') {
return; return;
} }
if ( const hadActiveDialog =
!worldDialog.visible && worldDialog.visible ||
!userStore.userDialog.visible && userStore.userDialog.visible ||
!avatarStore.avatarDialog.visible && avatarStore.avatarDialog.visible ||
!groupStore.groupDialog.visible groupStore.groupDialog.visible ||
) { instanceStore.previousInstancesInfoDialog.visible ||
instanceStore.previousInstancesUserDialog.visible ||
instanceStore.previousInstancesWorldDialog.visible ||
instanceStore.previousInstancesGroupDialog.visible;
if (!hadActiveDialog) {
uiStore.clearDialogCrumbs(); uiStore.clearDialogCrumbs();
} }
if (!options.skipBreadcrumb) { if (!options.skipBreadcrumb) {
uiStore.pushDialogCrumb('world', L.worldId); uiStore.pushDialogCrumb('world', L.worldId);
} }
instanceStore.hidePreviousInstancesDialogs();
userStore.userDialog.visible = false; userStore.userDialog.visible = false;
avatarStore.avatarDialog.visible = false; avatarStore.avatarDialog.visible = false;
groupStore.groupDialog.visible = false; groupStore.groupDialog.visible = false;