@@ -18,6 +18,7 @@ import StyledMenu from '@/components/shared/StyledMenu.vue';
1818import { useLanguageSwitcher } from ' @/i18n/composables' ;
1919import type { Locale } from ' @/i18n/types' ;
2020import AboutPage from ' @/views/AboutPage.vue' ;
21+ import { getDesktopRuntimeInfo } from ' @/utils/desktopRuntime' ;
2122
2223enableKatex ();
2324enableMermaid ();
@@ -46,8 +47,8 @@ let version = ref('');
4647let releases = ref ([]);
4748let updatingDashboardLoading = ref (false );
4849let installLoading = ref (false );
49- const isElectronApp = ref (
50- typeof window !== ' undefined' && !! window .astrbotDesktop ?.isElectron
50+ const isDesktopReleaseMode = ref (
51+ typeof window !== ' undefined' && !! window .astrbotDesktop ?.isDesktop
5152);
5253const redirectConfirmDialog = ref (false );
5354const pendingRedirectUrl = ref (' ' );
@@ -133,7 +134,7 @@ function confirmExternalRedirect() {
133134 }
134135}
135136
136- const getReleaseUrlForElectron = () => {
137+ const getReleaseUrlForDesktop = () => {
137138 const firstRelease = (releases .value as any [])?.[0 ];
138139 if (firstRelease ?.tag_name ) {
139140 const tag = firstRelease .tag_name as string ;
@@ -147,12 +148,12 @@ const getReleaseUrlForElectron = () => {
147148};
148149
149150function handleUpdateClick() {
150- if (isElectronApp .value ) {
151+ if (isDesktopReleaseMode .value ) {
151152 requestExternalRedirect (' ' );
152153 resolvingReleaseTarget .value = true ;
153154 checkUpdate ();
154155 void getReleases ().finally (() => {
155- pendingRedirectUrl .value = getReleaseUrlForElectron () || fallbackReleaseUrl ;
156+ pendingRedirectUrl .value = getReleaseUrlForDesktop () || fallbackReleaseUrl ;
156157 resolvingReleaseTarget .value = false ;
157158 });
158159 return ;
@@ -246,7 +247,7 @@ function checkUpdate() {
246247 } else {
247248 updateStatus .value = res .data .message ;
248249 }
249- dashboardHasNewVersion .value = isElectronApp .value
250+ dashboardHasNewVersion .value = isDesktopReleaseMode .value
250251 ? false
251252 : res .data .data .dashboard_has_new_version ;
252253 })
@@ -388,13 +389,9 @@ const changeLanguage = async (langCode: string) => {
388389};
389390
390391onMounted (async () => {
391- try {
392- isElectronApp .value = !! window .astrbotDesktop ?.isElectron ||
393- !! (await window .astrbotDesktop ?.isElectronRuntime ?.());
394- } catch {
395- isElectronApp .value = false ;
396- }
397- if (isElectronApp .value ) {
392+ const runtimeInfo = await getDesktopRuntimeInfo ();
393+ isDesktopReleaseMode .value = runtimeInfo .isDesktopRuntime ;
394+ if (isDesktopReleaseMode .value ) {
398395 dashboardHasNewVersion .value = false ;
399396 }
400397});
@@ -441,7 +438,7 @@ onMounted(async () => {
441438 <small v-if =" hasNewVersion" >
442439 {{ t('core.header.version.hasNewVersion') }}
443440 </small >
444- <small v-else-if =" dashboardHasNewVersion && !isElectronApp " >
441+ <small v-else-if =" dashboardHasNewVersion && !isDesktopReleaseMode " >
445442 {{ t('core.header.version.dashboardHasNewVersion') }}
446443 </small >
447444 </div >
@@ -524,7 +521,7 @@ onMounted(async () => {
524521 <v-icon >mdi-arrow-up-circle</v-icon >
525522 </template >
526523 <v-list-item-title >{{ t('core.header.updateDialog.title') }}</v-list-item-title >
527- <template v-slot :append v-if =" hasNewVersion || (dashboardHasNewVersion && ! isElectronApp )" >
524+ <template v-slot :append v-if =" hasNewVersion || (dashboardHasNewVersion && ! isDesktopReleaseMode )" >
528525 <v-chip size =" x-small" color =" primary" variant =" tonal" class =" ml-2" >!</v-chip >
529526 </template >
530527 </v-list-item >
0 commit comments