From 9d4f977026bbb4516f8cc97f715c0dc28bf2a13f Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Mon, 29 Jun 2026 20:16:29 +0800
Subject: [PATCH] Add performance diagnostics build
---
privatevoice.src/frontend/src/App.svelte | 33 ++++++++++++++++++++++++++-------
1 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/privatevoice.src/frontend/src/App.svelte b/privatevoice.src/frontend/src/App.svelte
index d0bfc4e..8406d60 100755
--- a/privatevoice.src/frontend/src/App.svelte
+++ b/privatevoice.src/frontend/src/App.svelte
@@ -11,10 +11,12 @@
import { deviceName, engineHardwareInfo } from './lib/stores/app'
import { setLocale, localeRevision } from './lib/i18n'
import { languageMode, languageID, effectiveLanguageID, uiLocale } from './lib/stores/config'
+ import type { UILocale } from './lib/stores/config'
let isIndicatorRoute = $state(window.location.hash === '#/indicator')
let showUpdateDialog = $state(false)
let languageReady = $state(false)
+ let showOnboarding = $state(false)
onMount(() => {
Call.ByName('voicesnap/services.ConfigService.GetLanguageSettings').then((settings: any) => {
@@ -52,6 +54,9 @@
const data = ev?.data
if (data?.status) {
engineStatus.set(data.status as any)
+ if (data.status === 'ready') {
+ showOnboarding = false
+ }
}
if (data?.hardwareInfo) {
engineHardwareInfo.set(data.hardwareInfo)
@@ -78,6 +83,9 @@
Call.ByName('voicesnap/services.EngineService.GetStatus').then((data: any) => {
if (data?.status) {
engineStatus.set(data.status as any)
+ if (data.status === 'ready') {
+ showOnboarding = false
+ }
}
if (data?.hardwareInfo) {
engineHardwareInfo.set(data.hardwareInfo)
@@ -96,13 +104,13 @@
function applyLanguageSettings(settings: any) {
const mode = settings?.languageMode === 'manual' ? 'manual' : 'auto'
- const configured = settings?.languageID === 'en' ? 'en' : 'zh-CN'
- const effective = settings?.effectiveLanguageID === 'en' ? 'en' : 'zh-CN'
- const locale = settings?.uiLocale === 'en' ? 'en' : 'zh'
+ const configured = typeof settings?.languageID === 'string' && settings.languageID ? settings.languageID : 'zh-CN'
+ const effective = typeof settings?.effectiveLanguageID === 'string' && settings.effectiveLanguageID ? settings.effectiveLanguageID : configured
+ const locale = typeof settings?.uiLocale === 'string' && settings.uiLocale ? settings.uiLocale : 'en'
languageMode.set(mode)
languageID.set(configured)
effectiveLanguageID.set(effective)
- uiLocale.set(locale)
+ uiLocale.set(locale as UILocale)
setLocale(locale)
languageReady = true
}
@@ -111,13 +119,24 @@
try {
const current: any = await Call.ByName('voicesnap/services.EngineService.GetCurrentModelStatus')
if (!current?.installed) {
- engineStatus.set('need_model')
+ const hasAnyInstalled: any = await Call.ByName('voicesnap/services.EngineService.HasAnyInstalledModel')
+ showOnboarding = !hasAnyInstalled
+ if (!hasAnyInstalled) {
+ engineStatus.set('need_model')
+ }
+ } else {
+ showOnboarding = false
}
} catch {
try {
const exists: any = await Call.ByName('voicesnap/services.EngineService.ModelExists')
if (!exists) {
- engineStatus.set('need_model')
+ const hasAnyInstalled: any = await Call.ByName('voicesnap/services.EngineService.HasAnyInstalledModel')
+ .catch(() => false)
+ showOnboarding = !hasAnyInstalled
+ if (!hasAnyInstalled) {
+ engineStatus.set('need_model')
+ }
}
} catch {}
}
@@ -129,7 +148,7 @@
{:else}
{#if languageReady}
{#key $localeRevision}
- {#if $engineStatus === 'need_model'}
+ {#if showOnboarding && $engineStatus === 'need_model'}
<OnboardingView />
{:else}
<SettingsWindow />
--
Gitblit v1.9.3