This commit is contained in:
pa
2026-01-20 20:24:42 +09:00
committed by Natsumi
parent 6dfea34dd2
commit 0fa6e48fd7
10 changed files with 66 additions and 63 deletions
@@ -231,11 +231,11 @@
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent> <DropdownMenuContent>
<DropdownMenuItem @click="avatarDialogCommand('RefreshCw')"> <DropdownMenuItem @click="avatarDialogCommand('Refresh')">
<RefreshCw class="size-4" /> <RefreshCw class="size-4" />
{{ t('dialog.avatar.actions.refresh') }} {{ t('dialog.avatar.actions.refresh') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem @click="avatarDialogCommand('Share2')"> <DropdownMenuItem @click="avatarDialogCommand('Share')">
<Share2 class="size-4" /> <Share2 class="size-4" />
{{ t('dialog.avatar.actions.share') }} {{ t('dialog.avatar.actions.share') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -306,7 +306,7 @@
<DropdownMenuItem <DropdownMenuItem
v-if="avatarDialog.hasImposter" v-if="avatarDialog.hasImposter"
variant="destructive" variant="destructive"
@click="avatarDialogCommand('Trash2 Imposter')"> @click="avatarDialogCommand('Delete Imposter')">
<Trash2 class="size-4" /> <Trash2 class="size-4" />
{{ t('dialog.avatar.actions.delete_impostor') }} {{ t('dialog.avatar.actions.delete_impostor') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -734,10 +734,10 @@
function avatarDialogCommand(command) { function avatarDialogCommand(command) {
const D = avatarDialog.value; const D = avatarDialog.value;
switch (command) { switch (command) {
case 'RefreshCw': case 'Refresh':
showAvatarDialog(D.id); showAvatarDialog(D.id);
break; break;
case 'Share2': case 'Share':
copyAvatarUrl(D.id); copyAvatarUrl(D.id);
break; break;
case 'Rename': case 'Rename':
@@ -770,7 +770,7 @@
.then(({ ok }) => { .then(({ ok }) => {
if (!ok) return; if (!ok) return;
switch (command) { switch (command) {
case 'Trash2 Favorite': case 'Delete Favorite':
favoriteRequest.deleteFavorite({ favoriteRequest.deleteFavorite({
objectId: D.id objectId: D.id
}); });
@@ -839,7 +839,7 @@
return args; return args;
}); });
break; break;
case 'Trash2': case 'Delete':
avatarRequest avatarRequest
.deleteAvatar({ .deleteAvatar({
avatarId: D.id avatarId: D.id
@@ -863,7 +863,7 @@
return args; return args;
}); });
break; break;
case 'Trash2 Imposter': case 'Delete Imposter':
avatarRequest avatarRequest
.deleteImposter({ .deleteImposter({
avatarId: D.id avatarId: D.id
@@ -240,11 +240,11 @@
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent> <DropdownMenuContent>
<DropdownMenuItem @click="groupDialogCommand('RefreshCw')"> <DropdownMenuItem @click="groupDialogCommand('Refresh')">
<RefreshCw class="size-4" /> <RefreshCw class="size-4" />
{{ t('dialog.group.actions.refresh') }} {{ t('dialog.group.actions.refresh') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem @click="groupDialogCommand('Share2')"> <DropdownMenuItem @click="groupDialogCommand('Share')">
<Share2 class="size-4" /> <Share2 class="size-4" />
{{ t('dialog.group.actions.share') }} {{ t('dialog.group.actions.share') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -1523,7 +1523,7 @@
return; return;
} }
switch (command) { switch (command) {
case 'Share2': case 'Share':
copyToClipboard(groupDialog.value.ref.$url); copyToClipboard(groupDialog.value.ref.$url);
break; break;
case 'Create Post': case 'Create Post':
@@ -1535,7 +1535,7 @@
case 'Invite To Group': case 'Invite To Group':
showInviteGroupDialog(D.id, ''); showInviteGroupDialog(D.id, '');
break; break;
case 'RefreshCw': case 'Refresh':
showGroupDialog(D.id); showGroupDialog(D.id);
break; break;
case 'Leave Group': case 'Leave Group':
@@ -30,11 +30,11 @@
</div> </div>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent> <DropdownMenuContent>
<DropdownMenuItem @click="onCommand('RefreshCw')"> <DropdownMenuItem @click="onCommand('Refresh')">
<RefreshCw class="size-4" /> <RefreshCw class="size-4" />
{{ t('dialog.user.actions.refresh') }} {{ t('dialog.user.actions.refresh') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem @click="onCommand('Share2')"> <DropdownMenuItem @click="onCommand('Share')">
<Share2 class="size-4" /> <Share2 class="size-4" />
{{ t('dialog.user.actions.share') }} {{ t('dialog.user.actions.share') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -48,19 +48,19 @@
{{ t('dialog.user.actions.show_fallback_avatar') }} {{ t('dialog.user.actions.show_fallback_avatar') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuSeparator /> <DropdownMenuSeparator />
<DropdownMenuItem @click="onCommand('Pencil Social Status')"> <DropdownMenuItem @click="onCommand('Edit Social Status')">
<Pencil class="size-4" /> <Pencil class="size-4" />
{{ t('dialog.user.actions.edit_status') }} {{ t('dialog.user.actions.edit_status') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem @click="onCommand('Pencil Language')"> <DropdownMenuItem @click="onCommand('Edit Language')">
<Pencil class="size-4" /> <Pencil class="size-4" />
{{ t('dialog.user.actions.edit_language') }} {{ t('dialog.user.actions.edit_language') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem @click="onCommand('Pencil Bio')"> <DropdownMenuItem @click="onCommand('Edit Bio')">
<Pencil class="size-4" /> <Pencil class="size-4" />
{{ t('dialog.user.actions.edit_bio') }} {{ t('dialog.user.actions.edit_bio') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem @click="onCommand('Pencil Pronouns')"> <DropdownMenuItem @click="onCommand('Edit Pronouns')">
<Pencil class="size-4" /> <Pencil class="size-4" />
{{ t('dialog.user.actions.edit_pronouns') }} {{ t('dialog.user.actions.edit_pronouns') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -72,7 +72,7 @@
<Mail class="size-4" /> <Mail class="size-4" />
{{ t('dialog.user.actions.request_invite') }} {{ t('dialog.user.actions.request_invite') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem @click="onCommand('Request Invite MessageSquare')"> <DropdownMenuItem @click="onCommand('Request Invite Message')">
<Mail class="size-4" /> <Mail class="size-4" />
{{ t('dialog.user.actions.request_invite_with_message') }} {{ t('dialog.user.actions.request_invite_with_message') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -85,7 +85,7 @@
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem <DropdownMenuItem
:disabled="!checkCanInvite(lastLocation.location)" :disabled="!checkCanInvite(lastLocation.location)"
@click="onCommand('Invite MessageSquare')"> @click="onCommand('Invite Message')">
<MessageSquare class="size-4" /> <MessageSquare class="size-4" />
{{ t('dialog.user.actions.invite_with_message') }} {{ t('dialog.user.actions.invite_with_message') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -123,7 +123,7 @@
<Settings class="size-4" /> <Settings class="size-4" />
{{ t('dialog.user.actions.group_moderation') }} {{ t('dialog.user.actions.group_moderation') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem @click="onCommand('Pencil Note Memo')"> <DropdownMenuItem @click="onCommand('Edit Note Memo')">
<Pencil class="size-4" /> <Pencil class="size-4" />
{{ t('dialog.user.actions.edit_note_memo') }} {{ t('dialog.user.actions.edit_note_memo') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -165,7 +165,7 @@
<DropdownMenuItem <DropdownMenuItem
v-else v-else
:disabled="userDialog.ref.$isModerator" :disabled="userDialog.ref.$isModerator"
@click="onCommand('Moderation VolumeX')"> @click="onCommand('Moderation Mute')">
<VolumeX class="size-4" /> <VolumeX class="size-4" />
{{ t('dialog.user.actions.moderation_mute') }} {{ t('dialog.user.actions.moderation_mute') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -1695,19 +1695,19 @@
if (D.visible === false) { if (D.visible === false) {
return; return;
} }
if (command === 'RefreshCw') { if (command === 'Refresh') {
showUserDialog(D.id); showUserDialog(D.id);
} else if (command === 'Share2') { } else if (command === 'Share') {
copyUserURL(D.id); copyUserURL(D.id);
} else if (command === 'Add Favorite') { } else if (command === 'Add Favorite') {
showFavoriteDialog('friend', D.id); showFavoriteDialog('friend', D.id);
} else if (command === 'Pencil Social Status') { } else if (command === 'Edit Social Status') {
showSocialStatusDialog(); showSocialStatusDialog();
} else if (command === 'Pencil Language') { } else if (command === 'Edit Language') {
showLanguageDialog(); showLanguageDialog();
} else if (command === 'Pencil Bio') { } else if (command === 'Edit Bio') {
showBioDialog(); showBioDialog();
} else if (command === 'Pencil Pronouns') { } else if (command === 'Edit Pronouns') {
showPronounsDialog(); showPronounsDialog();
} else if (command === 'Request Invite') { } else if (command === 'Request Invite') {
notificationRequest notificationRequest
@@ -1721,7 +1721,7 @@
toast('Request invite sent'); toast('Request invite sent');
return args; return args;
}); });
} else if (command === 'Invite MessageSquare') { } else if (command === 'Invite Message') {
L = parseLocation(lastLocation.value.location); L = parseLocation(lastLocation.value.location);
worldRequest worldRequest
.getCachedWorld({ .getCachedWorld({
@@ -1737,7 +1737,7 @@
D.id D.id
); );
}); });
} else if (command === 'Request Invite MessageSquare') { } else if (command === 'Request Invite Message') {
showSendInviteRequestDialog( showSendInviteRequestDialog(
{ {
platform: 'standalonewindows' platform: 'standalonewindows'
@@ -1802,7 +1802,7 @@
} else { } else {
setPlayerModeration(D.id, 5); setPlayerModeration(D.id, 5);
} }
} else if (command === 'Pencil Note Memo') { } else if (command === 'Edit Note Memo') {
isEditNoteAndMemoDialogVisible.value = true; isEditNoteAndMemoDialogVisible.value = true;
} else { } else {
const i18nPreFix = 'dialog.user.actions.'; const i18nPreFix = 'dialog.user.actions.';
@@ -1896,7 +1896,7 @@
let args; let args;
let key; let key;
switch (command) { switch (command) {
case 'Trash2 Favorite': case 'Delete Favorite':
favoriteRequest.deleteFavorite({ favoriteRequest.deleteFavorite({
objectId: userId objectId: userId
}); });
@@ -1963,7 +1963,7 @@
}); });
handlePlayerModerationDelete(args); handlePlayerModerationDelete(args);
break; break;
case 'Moderation VolumeX': { case 'Moderation Mute': {
args = await playerModerationRequest.sendPlayerModeration({ args = await playerModerationRequest.sendPlayerModeration({
moderated: userId, moderated: userId,
type: 'mute' type: 'mute'
@@ -198,11 +198,11 @@
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent> <DropdownMenuContent>
<DropdownMenuItem @click="worldDialogCommand('RefreshCw')"> <DropdownMenuItem @click="worldDialogCommand('Refresh')">
<RefreshCw class="size-4" /> <RefreshCw class="size-4" />
{{ t('dialog.world.actions.refresh') }} {{ t('dialog.world.actions.refresh') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem @click="worldDialogCommand('Share2')"> <DropdownMenuItem @click="worldDialogCommand('Share')">
<Share2 class="size-4" /> <Share2 class="size-4" />
{{ t('dialog.world.actions.share') }} {{ t('dialog.world.actions.share') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -240,7 +240,7 @@
<template v-if="currentUser.id !== worldDialog.ref.authorId"> <template v-if="currentUser.id !== worldDialog.ref.authorId">
<DropdownMenuItem <DropdownMenuItem
:disabled="!worldDialog.hasPersistData" :disabled="!worldDialog.hasPersistData"
@click="worldDialogCommand('Trash2 Persistent Data')"> @click="worldDialogCommand('Delete Persistent Data')">
<Upload class="size-4" /> <Upload class="size-4" />
{{ t('dialog.world.actions.delete_persistent_data') }} {{ t('dialog.world.actions.delete_persistent_data') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -300,11 +300,11 @@
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem <DropdownMenuItem
:disabled="!worldDialog.hasPersistData" :disabled="!worldDialog.hasPersistData"
@click="worldDialogCommand('Trash2 Persistent Data')"> @click="worldDialogCommand('Delete Persistent Data')">
<Upload class="size-4" /> <Upload class="size-4" />
{{ t('dialog.world.actions.delete_persistent_data') }} {{ t('dialog.world.actions.delete_persistent_data') }}
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem variant="destructive" @click="worldDialogCommand('Trash2')"> <DropdownMenuItem variant="destructive" @click="worldDialogCommand('Delete')">
<Trash2 class="size-4" /> <Trash2 class="size-4" />
{{ t('dialog.world.actions.delete') }} {{ t('dialog.world.actions.delete') }}
</DropdownMenuItem> </DropdownMenuItem>
@@ -948,13 +948,13 @@
return; return;
} }
switch (command) { switch (command) {
case 'Trash2 Favorite': case 'Delete Favorite':
case 'Make Home': case 'Make Home':
case 'Reset Home': case 'Reset Home':
case 'Publish': case 'Publish':
case 'Unpublish': case 'Unpublish':
case 'Trash2 Persistent Data': case 'Delete Persistent Data':
case 'Trash2': case 'Delete':
modalStore modalStore
.confirm({ .confirm({
description: t('confirm.command_question', { description: t('confirm.command_question', {
@@ -965,7 +965,7 @@
.then(({ ok }) => { .then(({ ok }) => {
if (!ok) return; if (!ok) return;
switch (command) { switch (command) {
case 'Trash2 Favorite': case 'Delete Favorite':
favoriteRequest.deleteFavorite({ favoriteRequest.deleteFavorite({
objectId: D.id objectId: D.id
}); });
@@ -1010,7 +1010,7 @@
return args; return args;
}); });
break; break;
case 'Trash2 Persistent Data': case 'Delete Persistent Data':
miscRequest miscRequest
.deleteWorldPersistData({ .deleteWorldPersistData({
worldId: D.id worldId: D.id
@@ -1023,7 +1023,7 @@
return args; return args;
}); });
break; break;
case 'Trash2': case 'Delete':
worldRequest worldRequest
.deleteWorld({ .deleteWorld({
worldId: D.id worldId: D.id
@@ -1053,7 +1053,7 @@
case 'Previous Instances': case 'Previous Instances':
showPreviousInstancesWorldDialog(D.ref); showPreviousInstancesWorldDialog(D.ref);
break; break;
case 'Share2': case 'Share':
copyWorldUrl(); copyWorldUrl();
break; break;
case 'Change Allowed Domains': case 'Change Allowed Domains':
@@ -1068,7 +1068,7 @@
case 'Change Image': case 'Change Image':
showChangeWorldImageDialog(); showChangeWorldImageDialog();
break; break;
case 'RefreshCw': case 'Refresh':
showWorldDialog(D.id); showWorldDialog(D.id);
break; break;
case 'New Instance': case 'New Instance':
+1 -1
View File
@@ -1973,7 +1973,7 @@
"accept_friend_request": "Continue? Accept Friend Request", "accept_friend_request": "Continue? Accept Friend Request",
"send_invite": "Continue? Send Invite", "send_invite": "Continue? Send Invite",
"decline_type": "Continue? Decline {type}", "decline_type": "Continue? Decline {type}",
"delete_type": "Continue? Trash2 {type}", "delete_type": "Continue? {type}",
"command_question": "Continue? {command}", "command_question": "Continue? {command}",
"restart_required_title": "Restart Required", "restart_required_title": "Restart Required",
"restart_now": "Restart Now", "restart_now": "Restart Now",
+2 -2
View File
@@ -103,7 +103,7 @@ export const useWorldStore = defineStore('World', () => {
D.treeData = {}; D.treeData = {};
D.bundleSizes = []; D.bundleSizes = [];
D.lastUpdated = ''; D.lastUpdated = '';
D.visible = true; D.visible = false;
D.loading = true; D.loading = true;
D.inCache = false; D.inCache = false;
D.cacheSize = ''; D.cacheSize = '';
@@ -217,7 +217,7 @@ export const useWorldStore = defineStore('World', () => {
}); });
} }
} }
return args; D.visible = true;
}); });
} }
+1 -1
View File
@@ -112,7 +112,7 @@
function deletePlayerModerationPrompt(row) { function deletePlayerModerationPrompt(row) {
modalStore modalStore
.confirm({ .confirm({
description: `Continue? Trash2 Moderation ${row.type}`, description: `Continue? Moderation ${row.type}`,
title: 'Confirm' title: 'Confirm'
}) })
.then(({ ok }) => ok && deletePlayerModeration(row)) .then(({ ok }) => ok && deletePlayerModeration(row))
@@ -7,21 +7,21 @@
<div style="font-size: 12px"> <div style="font-size: 12px">
{{ t('dialog.launch_options.description') }} <br /> {{ t('dialog.launch_options.description') }} <br />
{{ t('dialog.launch_options.example') }} {{ t('dialog.launch_options.example') }}
<Badge variant="outline" <div>--fps=144</div>
>--fps=144 --enable-debug-gui --enable-sdk-log-levels --enable-udon-debug-logging <div>--enable-debug-gui</div>
</Badge> <div>--enable-sdk-log-levels</div>
<div>--enable-udon-debug-logging</div>
</div> </div>
<InputGroupTextareaField <InputGroupTextareaField
v-model="launchOptionsDialog.launchArguments" v-model="launchOptionsDialog.launchArguments"
:autosize="{ minRows: 2, maxRows: 5 }" :autosize="{ minRows: 2, maxRows: 5 }"
:rows="2" :rows="2"
placeholder="" placeholder="e.g. --fps=144 --enable-sdk-log-levels"
style="margin-top: 10px"
input-class="resize-none" /> input-class="resize-none" />
<template v-if="!isLinux"> <template v-if="!isLinux">
<div style="font-size: 12px; margin-top: 10px"> <div class="text-sm">
{{ t('dialog.launch_options.path_override') }} {{ t('dialog.launch_options.path_override') }}
</div> </div>
@@ -29,12 +29,14 @@
v-model="launchOptionsDialog.vrcLaunchPathOverride" v-model="launchOptionsDialog.vrcLaunchPathOverride"
placeholder="C:\Program Files (x86)\Steam\steamapps\common\VRChat" placeholder="C:\Program Files (x86)\Steam\steamapps\common\VRChat"
:rows="1" :rows="1"
style="display: block; margin-top: 10px" class="mb-4"
spellcheck="false"
data-gramm="false"
input-class="resize-none min-h-0" /> input-class="resize-none min-h-0" />
</template> </template>
<DialogFooter> <DialogFooter>
<div class="flex items-center justify-between"> <div class="flex items-center justify-between w-full">
<div> <div>
<Button <Button
variant="outline" variant="outline"
@@ -60,10 +60,11 @@
style="flex: 1; margin-top: 5px"> style="flex: 1; margin-top: 5px">
<template #actions> <template #actions>
<Button <Button
size="sm" size="icon-sm"
variant="outline" variant="outline"
v-if="item.folderBrowser" v-if="item.folderBrowser"
@click="openConfigFolderBrowser(value)"> @click="openConfigFolderBrowser(value)">
<FolderOpen />
</Button> </Button>
</template> </template>
</InputGroupAction> </InputGroupAction>
@@ -151,10 +152,10 @@
</label> </label>
</div> </div>
<DialogFooter> <DialogFooter>
<div style="display: flex; align-items: center; justify-content: space-between"> <div style="display: flex; align-items: center; justify-content: space-between" class="w-full">
<div> <div>
<Button <Button
variant="ghost" variant="outline"
@click="openExternalLink('https://docs.vrchat.com/docs/configuration-file')" @click="openExternalLink('https://docs.vrchat.com/docs/configuration-file')"
>{{ t('dialog.config_json.vrchat_docs') }}</Button >{{ t('dialog.config_json.vrchat_docs') }}</Button
> >
@@ -177,10 +178,10 @@
import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog';
import { computed, ref, watch } from 'vue'; import { computed, ref, watch } from 'vue';
import { FolderOpen, RefreshCw } from 'lucide-vue-next';
import { Button } from '@/components/ui/button'; import { Button } from '@/components/ui/button';
import { Checkbox } from '@/components/ui/checkbox'; import { Checkbox } from '@/components/ui/checkbox';
import { InputGroupAction } from '@/components/ui/input-group'; import { InputGroupAction } from '@/components/ui/input-group';
import { RefreshCw } from 'lucide-vue-next';
import { Spinner } from '@/components/ui/spinner'; import { Spinner } from '@/components/ui/spinner';
import { storeToRefs } from 'pinia'; import { storeToRefs } from 'pinia';
import { toast } from 'vue-sonner'; import { toast } from 'vue-sonner';
@@ -329,7 +330,7 @@
function showDeleteAllVRChatCacheConfirm() { function showDeleteAllVRChatCacheConfirm() {
modalStore modalStore
.confirm({ .confirm({
description: 'Continue? Trash2 all VRChat cache', description: 'Continue? all VRChat cache',
title: 'Confirm' title: 'Confirm'
}) })
.then(({ ok }) => { .then(({ ok }) => {