mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-06 14:46:04 +02:00
Open last dialog on error
This commit is contained in:
+73
-1
@@ -18,6 +18,11 @@ import { useWorldStore } from './world';
|
||||
|
||||
export const useUiStore = defineStore('Ui', () => {
|
||||
const notificationStore = useNotificationStore();
|
||||
const userStore = useUserStore();
|
||||
const worldStore = useWorldStore();
|
||||
const avatarStore = useAvatarStore();
|
||||
const groupStore = useGroupStore();
|
||||
const instanceStore = useInstanceStore();
|
||||
const router = useRouter();
|
||||
const keys = useMagicKeys();
|
||||
const { directAccessPaste } = useSearchStore();
|
||||
@@ -108,6 +113,71 @@ export const useUiStore = defineStore('Ui', () => {
|
||||
dialogCrumbs.value.splice(index + 1);
|
||||
}
|
||||
|
||||
function jumpBackDialogCrumb() {
|
||||
if (dialogCrumbs.value.length > 1) {
|
||||
dialogCrumbs.value.splice(dialogCrumbs.value.length - 1);
|
||||
}
|
||||
if (dialogCrumbs.value.length === 0) {
|
||||
closeMainDialog();
|
||||
return;
|
||||
}
|
||||
handleBreadcrumbClick(dialogCrumbs.value.length - 1);
|
||||
}
|
||||
|
||||
function handleBreadcrumbClick(index) {
|
||||
const item = dialogCrumbs.value[index];
|
||||
if (!item) {
|
||||
return;
|
||||
}
|
||||
jumpDialogCrumb(index);
|
||||
if (item.type === 'user') {
|
||||
userStore.showUserDialog(item.id, { skipBreadcrumb: true });
|
||||
return;
|
||||
}
|
||||
if (item.type === 'world') {
|
||||
worldStore.showWorldDialog(item.id, null, {
|
||||
skipBreadcrumb: true
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (item.type === 'avatar') {
|
||||
avatarStore.showAvatarDialog(item.id, { skipBreadcrumb: true });
|
||||
return;
|
||||
}
|
||||
if (item.type === 'group') {
|
||||
groupStore.showGroupDialog(item.id, { skipBreadcrumb: true });
|
||||
return;
|
||||
}
|
||||
if (item.type === 'previous-instances-user') {
|
||||
instanceStore.showPreviousInstancesListDialog('user', item.id, {
|
||||
skipBreadcrumb: true
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (item.type === 'previous-instances-world') {
|
||||
instanceStore.showPreviousInstancesListDialog('world', item.id, {
|
||||
skipBreadcrumb: true
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (item.type === 'previous-instances-group') {
|
||||
instanceStore.showPreviousInstancesListDialog('group', item.id, {
|
||||
skipBreadcrumb: true
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (item.type === 'previous-instances-info') {
|
||||
instanceStore.showPreviousInstancesInfoDialog(item.id, {
|
||||
skipBreadcrumb: true
|
||||
});
|
||||
return;
|
||||
}
|
||||
console.error(
|
||||
`Unknown dialog crumb type: ${item.type}, closing dialog`
|
||||
);
|
||||
closeMainDialog();
|
||||
}
|
||||
|
||||
function clearDialogCrumbs() {
|
||||
dialogCrumbs.value = [];
|
||||
}
|
||||
@@ -260,6 +330,8 @@ export const useUiStore = defineStore('Ui', () => {
|
||||
jumpDialogCrumb,
|
||||
clearDialogCrumbs,
|
||||
closeMainDialog,
|
||||
openDialog
|
||||
openDialog,
|
||||
jumpBackDialogCrumb,
|
||||
handleBreadcrumbClick
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user