adjust whats new dialog word

This commit is contained in:
pa
2026-03-24 09:51:38 +09:00
parent 468696dfce
commit 0af5e33684
4 changed files with 38 additions and 27 deletions

View File

@@ -15,6 +15,12 @@
<h2 class="m-0 text-[23px] font-bold tracking-tight">
{{ t(whatsNewDialog.titleKey || 'onboarding.whatsnew.title') }}
</h2>
<p
v-if="whatsNewDialog.subtitleKey"
class="mt-1 text-[13px] text-muted-foreground">
{{ t(whatsNewDialog.subtitleKey) }}
</p>
</div>
<!-- Feature Cards -->
@@ -88,7 +94,7 @@
<script setup>
import { markRaw } from 'vue';
import { LayoutDashboard, Search, Activity, Images } from 'lucide-vue-next';
import { Search, FolderHeart, RefreshCw, MousePointerClick } from 'lucide-vue-next';
import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n';
@@ -122,16 +128,16 @@
const iconMap = {
search: markRaw(Search),
'layout-dashboard': markRaw(LayoutDashboard),
activity: markRaw(Activity),
images: markRaw(Images)
'folder-heart': markRaw(FolderHeart),
'refresh-cw': markRaw(RefreshCw),
'mouse-pointer-click': markRaw(MousePointerClick)
};
const hueMap = {
search: '142',
'layout-dashboard': '45',
activity: '200',
images: '280'
'folder-heart': '340',
'refresh-cw': '200',
'mouse-pointer-click': '45'
};
function resolveIcon(iconName) {

View File

@@ -3000,28 +3000,29 @@
"cta": "Got It",
"common": {
"got_it": "Got It",
"view_changelog": "View changelog",
"view_changelog": "View All Changes",
"support": "Support VRCX"
},
"releases": {
"2026_04_05": {
"title": "What's New in VRCX",
"title": "Explore New Features",
"subtitle": "A few useful features you might not notice.",
"items": {
"quick_search": {
"title": "Quick Search",
"description": "Find users, worlds, and avatars in seconds."
"description": "Press Ctrl+K (⌘K) to find users, worlds, groups, and avatars."
},
"dashboard": {
"title": "Dashboard",
"description": "Build a workspace that fits how you use VRCX."
"local_favorite_groups": {
"title": "Local Favorites",
"description": "Create unlimited custom friend groups beyond VRChat's limits."
},
"activity_insights": {
"title": "Activity Insights",
"description": "See shared online time, Most Visited Worlds, and activity trends."
"auto_status": {
"title": "Auto Status",
"description": "Auto-switch status based on friend presence, filtered by group."
},
"my_avatars": {
"title": "My Avatars",
"description": "Browse and manage your avatars with less friction."
"right_click_menus": {
"title": "Context Menus",
"description": "Right-click on friends, tables, and headers for quick actions."
}
}
}

View File

@@ -6,16 +6,16 @@ const whatsNewReleases = Object.freeze({
icon: 'search'
},
{
key: 'dashboard',
icon: 'layout-dashboard'
key: 'local_favorite_groups',
icon: 'folder-heart'
},
{
key: 'activity_insights',
icon: 'activity'
key: 'auto_status',
icon: 'refresh-cw'
},
{
key: 'my_avatars',
icon: 'images'
key: 'right_click_menus',
icon: 'mouse-pointer-click'
}
]
}
@@ -36,7 +36,7 @@ function normalizeReleaseVersion(version) {
/**
* @param {string} version
* @returns {{titleKey: string, items: Array<{key: string, icon: string, titleKey: string, descriptionKey: string}>} | null}
* @returns {{titleKey: string, subtitleKey: string, items: Array<{key: string, icon: string, titleKey: string, descriptionKey: string}>} | null}
*/
function getWhatsNewRelease(version) {
const normalizedVersion = normalizeReleaseVersion(version);
@@ -52,6 +52,7 @@ function getWhatsNewRelease(version) {
const baseKey = `onboarding.whatsnew.releases.${i18nKey}`;
return {
titleKey: `${baseKey}.title`,
subtitleKey: `${baseKey}.subtitle`,
items: release.items.map((item) => ({
...item,
titleKey: `${baseKey}.items.${item.key}.title`,
@@ -61,7 +62,7 @@ function getWhatsNewRelease(version) {
}
/**
* @returns {{titleKey: string, items: Array<{key: string, icon: string, titleKey: string, descriptionKey: string}>} | null}
* @returns {{titleKey: string, subtitleKey: string, items: Array<{key: string, icon: string, titleKey: string, descriptionKey: string}>} | null}
*/
function getLatestWhatsNewRelease() {
const versions = Object.keys(whatsNewReleases);

View File

@@ -19,6 +19,7 @@ import * as workerTimers from 'worker-timers';
const emptyWhatsNewDialog = () => ({
visible: false,
titleKey: '',
subtitleKey: '',
items: []
});
@@ -199,6 +200,7 @@ export const useVRCXUpdaterStore = defineStore('VRCXUpdater', () => {
whatsNewDialog.value = {
visible: true,
titleKey: release.titleKey,
subtitleKey: release.subtitleKey,
items: release.items.map((item) => ({ ...item }))
};
@@ -218,6 +220,7 @@ export const useVRCXUpdaterStore = defineStore('VRCXUpdater', () => {
whatsNewDialog.value = {
visible: true,
titleKey: release.titleKey,
subtitleKey: release.subtitleKey,
items: release.items.map((item) => ({ ...item }))
};