mirror of
https://github.com/vrcx-team/VRCX.git
synced 2026-04-06 00:32:02 +02:00
tidy up
This commit is contained in:
@@ -35,28 +35,7 @@
|
||||
|
||||
const { previousInstancesInfoDialog, previousInstancesListDialog } = storeToRefs(instanceStore);
|
||||
|
||||
const isOpen = computed({
|
||||
get: () =>
|
||||
userStore.userDialog.visible ||
|
||||
worldStore.worldDialog.visible ||
|
||||
avatarStore.avatarDialog.visible ||
|
||||
groupStore.groupDialog.visible ||
|
||||
previousInstancesInfoDialog.value.visible ||
|
||||
previousInstancesListDialog.value.visible,
|
||||
set: (value) => {
|
||||
if (!value) {
|
||||
userStore.userDialog.visible = false;
|
||||
worldStore.worldDialog.visible = false;
|
||||
avatarStore.avatarDialog.visible = false;
|
||||
groupStore.groupDialog.visible = false;
|
||||
instanceStore.hidePreviousInstancesDialogs();
|
||||
uiStore.clearDialogCrumbs();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const dialogCrumbs = computed(() => uiStore.dialogCrumbs);
|
||||
const activeCrumb = computed(() => dialogCrumbs.value[dialogCrumbs.value.length - 1] || null);
|
||||
const activeType = computed(() => {
|
||||
const type = (() => {
|
||||
if (previousInstancesInfoDialog.value.visible) {
|
||||
@@ -77,8 +56,7 @@
|
||||
if (groupStore.groupDialog.visible) {
|
||||
return 'group';
|
||||
}
|
||||
const crumb = activeCrumb.value;
|
||||
return crumb?.type ?? null;
|
||||
return null;
|
||||
})();
|
||||
return type;
|
||||
});
|
||||
@@ -116,6 +94,19 @@
|
||||
return {};
|
||||
}
|
||||
});
|
||||
const isOpen = computed({
|
||||
get: () => activeComponent.value !== null,
|
||||
set: (value) => {
|
||||
if (!value) {
|
||||
userStore.userDialog.visible = false;
|
||||
worldStore.worldDialog.visible = false;
|
||||
avatarStore.avatarDialog.visible = false;
|
||||
groupStore.groupDialog.visible = false;
|
||||
instanceStore.hidePreviousInstancesDialogs();
|
||||
uiStore.clearDialogCrumbs();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const dialogClass = computed(() => {
|
||||
switch (activeType.value) {
|
||||
|
||||
@@ -190,12 +190,12 @@ export const useAvatarStore = defineStore('Avatar', () => {
|
||||
groupStore.groupDialog.visible ||
|
||||
instanceStore.previousInstancesInfoDialog.visible ||
|
||||
instanceStore.previousInstancesListDialog.visible;
|
||||
if (!hadActiveDialog) {
|
||||
uiStore.clearDialogCrumbs();
|
||||
}
|
||||
if (!options.skipBreadcrumb) {
|
||||
uiStore.pushDialogCrumb('avatar', avatarId);
|
||||
}
|
||||
uiStore.openDialog({
|
||||
type: 'avatar',
|
||||
id: avatarId,
|
||||
skipBreadcrumb: options.skipBreadcrumb,
|
||||
hadActiveDialog
|
||||
});
|
||||
instanceStore.hidePreviousInstancesDialogs();
|
||||
userStore.userDialog.visible = false;
|
||||
worldStore.worldDialog.visible = false;
|
||||
|
||||
@@ -142,12 +142,12 @@ export const useGroupStore = defineStore('Group', () => {
|
||||
avatarStore.avatarDialog.visible ||
|
||||
instanceStore.previousInstancesInfoDialog.visible ||
|
||||
instanceStore.previousInstancesListDialog.visible;
|
||||
if (!hadActiveDialog) {
|
||||
uiStore.clearDialogCrumbs();
|
||||
}
|
||||
if (!options.skipBreadcrumb) {
|
||||
uiStore.pushDialogCrumb('group', groupId);
|
||||
}
|
||||
uiStore.openDialog({
|
||||
type: 'group',
|
||||
id: groupId,
|
||||
skipBreadcrumb: options.skipBreadcrumb,
|
||||
hadActiveDialog
|
||||
});
|
||||
instanceStore.hidePreviousInstancesDialogs();
|
||||
userStore.userDialog.visible = false;
|
||||
worldStore.worldDialog.visible = false;
|
||||
|
||||
@@ -290,15 +290,24 @@ export const useInstanceStore = defineStore('Instance', () => {
|
||||
}
|
||||
|
||||
function showPreviousInstancesInfoDialog(instanceId, options = {}) {
|
||||
const hadActiveDialog =
|
||||
userStore.userDialog.visible ||
|
||||
worldStore.worldDialog.visible ||
|
||||
groupStore.groupDialog.visible ||
|
||||
previousInstancesInfoDialog.value.visible ||
|
||||
previousInstancesListDialog.value.visible ||
|
||||
uiStore.dialogCrumbs.length > 0;
|
||||
hidePreviousInstancesDialogs();
|
||||
previousInstancesInfoDialog.value.visible = true;
|
||||
previousInstancesInfoDialog.value.instanceId = instanceId;
|
||||
if (!options.skipBreadcrumb && instanceId) {
|
||||
uiStore.pushDialogCrumb(
|
||||
'previous-instances-info',
|
||||
instanceId,
|
||||
formatPreviousInstancesInfoLabel(instanceId)
|
||||
);
|
||||
if (instanceId) {
|
||||
uiStore.openDialog({
|
||||
type: 'previous-instances-info',
|
||||
id: instanceId,
|
||||
label: formatPreviousInstancesInfoLabel(instanceId),
|
||||
skipBreadcrumb: options.skipBreadcrumb,
|
||||
hadActiveDialog
|
||||
});
|
||||
const location = parseLocation(instanceId);
|
||||
if (
|
||||
location.worldId &&
|
||||
@@ -326,6 +335,13 @@ export const useInstanceStore = defineStore('Instance', () => {
|
||||
targetRef,
|
||||
options = {}
|
||||
) {
|
||||
const hadActiveDialog =
|
||||
userStore.userDialog.visible ||
|
||||
worldStore.worldDialog.visible ||
|
||||
groupStore.groupDialog.visible ||
|
||||
previousInstancesInfoDialog.value.visible ||
|
||||
previousInstancesListDialog.value.visible ||
|
||||
uiStore.dialogCrumbs.length > 0;
|
||||
hidePreviousInstancesDialogs();
|
||||
previousInstancesListDialog.value.variant = variant;
|
||||
let resolved = null;
|
||||
@@ -342,16 +358,18 @@ export const useInstanceStore = defineStore('Instance', () => {
|
||||
previousInstancesListDialog.value.visible = true;
|
||||
previousInstancesListDialog.value.openFlg = true;
|
||||
nextTick(() => (previousInstancesListDialog.value.openFlg = false));
|
||||
if (!options.skipBreadcrumb && resolved?.id) {
|
||||
if (resolved?.id) {
|
||||
const label =
|
||||
variant === 'user'
|
||||
? resolved.displayName || resolved.id
|
||||
: resolved.name || resolved.id;
|
||||
uiStore.pushDialogCrumb(
|
||||
`previous-instances-${variant}`,
|
||||
resolved.id,
|
||||
label
|
||||
);
|
||||
uiStore.openDialog({
|
||||
type: `previous-instances-${variant}`,
|
||||
id: resolved.id,
|
||||
label,
|
||||
skipBreadcrumb: options.skipBreadcrumb,
|
||||
hadActiveDialog
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -107,6 +107,21 @@ export const useUiStore = defineStore('Ui', () => {
|
||||
dialogCrumbs.value = [];
|
||||
}
|
||||
|
||||
function openDialog({
|
||||
type,
|
||||
id,
|
||||
label = '',
|
||||
skipBreadcrumb = false,
|
||||
hadActiveDialog = false
|
||||
}) {
|
||||
if (!hadActiveDialog) {
|
||||
clearDialogCrumbs();
|
||||
}
|
||||
if (!skipBreadcrumb) {
|
||||
pushDialogCrumb(type, id, label);
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure file drops outside of the screenshot manager don't navigate to the file path dropped.
|
||||
// This issue persists on prompts created with prompt(), unfortunately. Not sure how to fix that.
|
||||
document.body.addEventListener('drop', function (e) {
|
||||
@@ -191,6 +206,7 @@ export const useUiStore = defineStore('Ui', () => {
|
||||
pushDialogCrumb,
|
||||
setDialogCrumbLabel,
|
||||
jumpDialogCrumb,
|
||||
clearDialogCrumbs
|
||||
clearDialogCrumbs,
|
||||
openDialog
|
||||
};
|
||||
});
|
||||
|
||||
@@ -774,12 +774,12 @@ export const useUserStore = defineStore('User', () => {
|
||||
groupStore.groupDialog.visible ||
|
||||
instanceStore.previousInstancesInfoDialog.visible ||
|
||||
instanceStore.previousInstancesListDialog.visible;
|
||||
if (!hadActiveDialog) {
|
||||
uiStore.clearDialogCrumbs();
|
||||
}
|
||||
if (!options.skipBreadcrumb) {
|
||||
uiStore.pushDialogCrumb('user', userId);
|
||||
}
|
||||
uiStore.openDialog({
|
||||
type: 'user',
|
||||
id: userId,
|
||||
skipBreadcrumb: options.skipBreadcrumb,
|
||||
hadActiveDialog
|
||||
});
|
||||
instanceStore.hidePreviousInstancesDialogs();
|
||||
worldStore.worldDialog.visible = false;
|
||||
avatarStore.avatarDialog.visible = false;
|
||||
|
||||
@@ -91,12 +91,12 @@ export const useWorldStore = defineStore('World', () => {
|
||||
groupStore.groupDialog.visible ||
|
||||
instanceStore.previousInstancesInfoDialog.visible ||
|
||||
instanceStore.previousInstancesListDialog.visible;
|
||||
if (!hadActiveDialog) {
|
||||
uiStore.clearDialogCrumbs();
|
||||
}
|
||||
if (!options.skipBreadcrumb) {
|
||||
uiStore.pushDialogCrumb('world', L.worldId);
|
||||
}
|
||||
uiStore.openDialog({
|
||||
type: 'world',
|
||||
id: L.worldId,
|
||||
skipBreadcrumb: options.skipBreadcrumb,
|
||||
hadActiveDialog
|
||||
});
|
||||
D.visible = true;
|
||||
instanceStore.hidePreviousInstancesDialogs();
|
||||
userStore.userDialog.visible = false;
|
||||
|
||||
Reference in New Issue
Block a user