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

View File

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

View File

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

View File

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