mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-05 22:36:05 +02:00
adjust whats new dialog word
This commit is contained in:
@@ -15,6 +15,12 @@
|
|||||||
<h2 class="m-0 text-[23px] font-bold tracking-tight">
|
<h2 class="m-0 text-[23px] font-bold tracking-tight">
|
||||||
{{ t(whatsNewDialog.titleKey || 'onboarding.whatsnew.title') }}
|
{{ t(whatsNewDialog.titleKey || 'onboarding.whatsnew.title') }}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
|
<p
|
||||||
|
v-if="whatsNewDialog.subtitleKey"
|
||||||
|
class="mt-1 text-[13px] text-muted-foreground">
|
||||||
|
{{ t(whatsNewDialog.subtitleKey) }}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Feature Cards -->
|
<!-- Feature Cards -->
|
||||||
@@ -88,7 +94,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { markRaw } from 'vue';
|
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 { storeToRefs } from 'pinia';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
|
|
||||||
@@ -122,16 +128,16 @@
|
|||||||
|
|
||||||
const iconMap = {
|
const iconMap = {
|
||||||
search: markRaw(Search),
|
search: markRaw(Search),
|
||||||
'layout-dashboard': markRaw(LayoutDashboard),
|
'folder-heart': markRaw(FolderHeart),
|
||||||
activity: markRaw(Activity),
|
'refresh-cw': markRaw(RefreshCw),
|
||||||
images: markRaw(Images)
|
'mouse-pointer-click': markRaw(MousePointerClick)
|
||||||
};
|
};
|
||||||
|
|
||||||
const hueMap = {
|
const hueMap = {
|
||||||
search: '142',
|
search: '142',
|
||||||
'layout-dashboard': '45',
|
'folder-heart': '340',
|
||||||
activity: '200',
|
'refresh-cw': '200',
|
||||||
images: '280'
|
'mouse-pointer-click': '45'
|
||||||
};
|
};
|
||||||
|
|
||||||
function resolveIcon(iconName) {
|
function resolveIcon(iconName) {
|
||||||
|
|||||||
+13
-12
@@ -3000,28 +3000,29 @@
|
|||||||
"cta": "Got It",
|
"cta": "Got It",
|
||||||
"common": {
|
"common": {
|
||||||
"got_it": "Got It",
|
"got_it": "Got It",
|
||||||
"view_changelog": "View changelog",
|
"view_changelog": "View All Changes",
|
||||||
"support": "Support VRCX"
|
"support": "Support VRCX"
|
||||||
},
|
},
|
||||||
"releases": {
|
"releases": {
|
||||||
"2026_04_05": {
|
"2026_04_05": {
|
||||||
"title": "What's New in VRCX",
|
"title": "Explore New Features",
|
||||||
|
"subtitle": "A few useful features you might not notice.",
|
||||||
"items": {
|
"items": {
|
||||||
"quick_search": {
|
"quick_search": {
|
||||||
"title": "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": {
|
"local_favorite_groups": {
|
||||||
"title": "Dashboard",
|
"title": "Local Favorites",
|
||||||
"description": "Build a workspace that fits how you use VRCX."
|
"description": "Create unlimited custom friend groups beyond VRChat's limits."
|
||||||
},
|
},
|
||||||
"activity_insights": {
|
"auto_status": {
|
||||||
"title": "Activity Insights",
|
"title": "Auto Status",
|
||||||
"description": "See shared online time, Most Visited Worlds, and activity trends."
|
"description": "Auto-switch status based on friend presence, filtered by group."
|
||||||
},
|
},
|
||||||
"my_avatars": {
|
"right_click_menus": {
|
||||||
"title": "My Avatars",
|
"title": "Context Menus",
|
||||||
"description": "Browse and manage your avatars with less friction."
|
"description": "Right-click on friends, tables, and headers for quick actions."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,16 +6,16 @@ const whatsNewReleases = Object.freeze({
|
|||||||
icon: 'search'
|
icon: 'search'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'dashboard',
|
key: 'local_favorite_groups',
|
||||||
icon: 'layout-dashboard'
|
icon: 'folder-heart'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'activity_insights',
|
key: 'auto_status',
|
||||||
icon: 'activity'
|
icon: 'refresh-cw'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'my_avatars',
|
key: 'right_click_menus',
|
||||||
icon: 'images'
|
icon: 'mouse-pointer-click'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -36,7 +36,7 @@ function normalizeReleaseVersion(version) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} 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) {
|
function getWhatsNewRelease(version) {
|
||||||
const normalizedVersion = normalizeReleaseVersion(version);
|
const normalizedVersion = normalizeReleaseVersion(version);
|
||||||
@@ -52,6 +52,7 @@ function getWhatsNewRelease(version) {
|
|||||||
const baseKey = `onboarding.whatsnew.releases.${i18nKey}`;
|
const baseKey = `onboarding.whatsnew.releases.${i18nKey}`;
|
||||||
return {
|
return {
|
||||||
titleKey: `${baseKey}.title`,
|
titleKey: `${baseKey}.title`,
|
||||||
|
subtitleKey: `${baseKey}.subtitle`,
|
||||||
items: release.items.map((item) => ({
|
items: release.items.map((item) => ({
|
||||||
...item,
|
...item,
|
||||||
titleKey: `${baseKey}.items.${item.key}.title`,
|
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() {
|
function getLatestWhatsNewRelease() {
|
||||||
const versions = Object.keys(whatsNewReleases);
|
const versions = Object.keys(whatsNewReleases);
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import * as workerTimers from 'worker-timers';
|
|||||||
const emptyWhatsNewDialog = () => ({
|
const emptyWhatsNewDialog = () => ({
|
||||||
visible: false,
|
visible: false,
|
||||||
titleKey: '',
|
titleKey: '',
|
||||||
|
subtitleKey: '',
|
||||||
items: []
|
items: []
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -199,6 +200,7 @@ export const useVRCXUpdaterStore = defineStore('VRCXUpdater', () => {
|
|||||||
whatsNewDialog.value = {
|
whatsNewDialog.value = {
|
||||||
visible: true,
|
visible: true,
|
||||||
titleKey: release.titleKey,
|
titleKey: release.titleKey,
|
||||||
|
subtitleKey: release.subtitleKey,
|
||||||
items: release.items.map((item) => ({ ...item }))
|
items: release.items.map((item) => ({ ...item }))
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -218,6 +220,7 @@ export const useVRCXUpdaterStore = defineStore('VRCXUpdater', () => {
|
|||||||
whatsNewDialog.value = {
|
whatsNewDialog.value = {
|
||||||
visible: true,
|
visible: true,
|
||||||
titleKey: release.titleKey,
|
titleKey: release.titleKey,
|
||||||
|
subtitleKey: release.subtitleKey,
|
||||||
items: release.items.map((item) => ({ ...item }))
|
items: release.items.map((item) => ({ ...item }))
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user