diff --git a/apps/desktop-ui/src/components/bottomPanel/tabs/terminal/BaseTerminal.vue b/apps/desktop-ui/src/components/bottomPanel/tabs/terminal/BaseTerminal.vue index ca0dcf34ec..92efc045ee 100644 --- a/apps/desktop-ui/src/components/bottomPanel/tabs/terminal/BaseTerminal.vue +++ b/apps/desktop-ui/src/components/bottomPanel/tabs/terminal/BaseTerminal.vue @@ -34,7 +34,7 @@ import { computed, onMounted, onUnmounted, ref } from 'vue' import { useI18n } from 'vue-i18n' import { useTerminal } from '@/composables/bottomPanelTabs/useTerminal' -import { electronAPI, isElectron } from '@/utils/envUtil' +import { electronAPI, isDesktop } from '@/utils/envUtil' import { cn } from '@/utils/tailwindUtil' const { t } = useI18n() @@ -84,7 +84,7 @@ const showContextMenu = (event: MouseEvent) => { electronAPI()?.showContextMenu({ type: 'text' }) } -if (isElectron()) { +if (isDesktop) { useEventListener(terminalEl, 'contextmenu', showContextMenu) } diff --git a/apps/desktop-ui/src/router.ts b/apps/desktop-ui/src/router.ts index d5142174db..daa8a634c9 100644 --- a/apps/desktop-ui/src/router.ts +++ b/apps/desktop-ui/src/router.ts @@ -4,11 +4,11 @@ import { createWebHistory } from 'vue-router' -import { isElectron } from '@/utils/envUtil' +import { isDesktop } from '@/utils/envUtil' import LayoutDefault from '@/views/layouts/LayoutDefault.vue' const isFileProtocol = window.location.protocol === 'file:' -const basePath = isElectron() ? '/' : window.location.pathname +const basePath = isDesktop ? '/' : window.location.pathname const router = createRouter({ history: isFileProtocol ? createWebHashHistory() : createWebHistory(basePath), diff --git a/apps/desktop-ui/src/utils/envUtil.ts b/apps/desktop-ui/src/utils/envUtil.ts index 96ba7f6d64..ff29be6547 100644 --- a/apps/desktop-ui/src/utils/envUtil.ts +++ b/apps/desktop-ui/src/utils/envUtil.ts @@ -1,6 +1,6 @@ import type { ElectronAPI } from '@comfyorg/comfyui-electron-types' -export function isElectron() { +function isElectron() { return 'electronAPI' in window && window.electronAPI !== undefined } @@ -9,5 +9,8 @@ export function electronAPI() { } export function isNativeWindow() { - return isElectron() && !!window.navigator.windowControlsOverlay?.visible + return isDesktop && !!window.navigator.windowControlsOverlay?.visible } + +/** Distribution type check - desktop-ui always runs in desktop context */ +export const isDesktop = isElectron() diff --git a/apps/desktop-ui/src/views/templates/BaseViewTemplate.vue b/apps/desktop-ui/src/views/templates/BaseViewTemplate.vue index 8a531e1340..6b0751f9c4 100644 --- a/apps/desktop-ui/src/views/templates/BaseViewTemplate.vue +++ b/apps/desktop-ui/src/views/templates/BaseViewTemplate.vue @@ -27,7 +27,7 @@ import { computed, nextTick, onMounted, ref } from 'vue' import LanguageSelector from '@/components/common/LanguageSelector.vue' -import { electronAPI, isElectron, isNativeWindow } from '../../utils/envUtil' +import { electronAPI, isDesktop, isNativeWindow } from '../../utils/envUtil' const { dark = false, hideLanguageSelector = false } = defineProps<{ dark?: boolean @@ -49,7 +49,7 @@ const lightTheme = { const topMenuRef = ref(null) onMounted(async () => { - if (isElectron()) { + if (isDesktop) { await nextTick() electronAPI().changeTheme({ diff --git a/src/components/TopMenuSection.vue b/src/components/TopMenuSection.vue index f9cc7054a3..8c42664ec6 100644 --- a/src/components/TopMenuSection.vue +++ b/src/components/TopMenuSection.vue @@ -75,16 +75,15 @@ import CurrentUserButton from '@/components/topbar/CurrentUserButton.vue' import LoginButton from '@/components/topbar/LoginButton.vue' import { useCurrentUser } from '@/composables/auth/useCurrentUser' import { buildTooltipConfig } from '@/composables/useTooltipConfig' +import { isDesktop } from '@/platform/distribution/types' import { app } from '@/scripts/app' import { useQueueStore } from '@/stores/queueStore' import { useRightSidePanelStore } from '@/stores/workspace/rightSidePanelStore' import { useWorkspaceStore } from '@/stores/workspaceStore' -import { isElectron } from '@/utils/envUtil' const workspaceStore = useWorkspaceStore() const rightSidePanelStore = useRightSidePanelStore() const { isLoggedIn } = useCurrentUser() -const isDesktop = isElectron() const { t } = useI18n() const isQueueOverlayExpanded = ref(false) const queueStore = useQueueStore() diff --git a/src/components/bottomPanel/tabs/terminal/BaseTerminal.vue b/src/components/bottomPanel/tabs/terminal/BaseTerminal.vue index e632d0d473..c41c10467c 100644 --- a/src/components/bottomPanel/tabs/terminal/BaseTerminal.vue +++ b/src/components/bottomPanel/tabs/terminal/BaseTerminal.vue @@ -34,7 +34,8 @@ import { computed, onMounted, onUnmounted, ref } from 'vue' import { useI18n } from 'vue-i18n' import { useTerminal } from '@/composables/bottomPanelTabs/useTerminal' -import { electronAPI, isElectron } from '@/utils/envUtil' +import { isDesktop } from '@/platform/distribution/types' +import { electronAPI } from '@/utils/envUtil' import { cn } from '@/utils/tailwindUtil' const { t } = useI18n() @@ -84,7 +85,7 @@ const showContextMenu = (event: MouseEvent) => { electronAPI()?.showContextMenu({ type: 'text' }) } -if (isElectron()) { +if (isDesktop) { useEventListener(terminalEl, 'contextmenu', showContextMenu) } diff --git a/src/components/dialog/content/MissingModelsWarning.vue b/src/components/dialog/content/MissingModelsWarning.vue index 1b044e4d33..1e2a9743a8 100644 --- a/src/components/dialog/content/MissingModelsWarning.vue +++ b/src/components/dialog/content/MissingModelsWarning.vue @@ -13,7 +13,7 @@ @@ -49,7 +50,7 @@ import { useErrorHandling } from '@/composables/useErrorHandling' import { useProgressFavicon } from '@/composables/useProgressFavicon' import { SERVER_CONFIG_ITEMS } from '@/constants/serverConfig' import { i18n, loadLocale } from '@/i18n' -import { isCloud } from '@/platform/distribution/types' +import { isCloud, isDesktop } from '@/platform/distribution/types' import { useSettingStore } from '@/platform/settings/settingStore' import { useTelemetry } from '@/platform/telemetry' import { useFrontendVersionMismatchWarning } from '@/platform/updates/common/useFrontendVersionMismatchWarning' @@ -76,7 +77,7 @@ import { useBottomPanelStore } from '@/stores/workspace/bottomPanelStore' import { useColorPaletteStore } from '@/stores/workspace/colorPaletteStore' import { useSidebarTabStore } from '@/stores/workspace/sidebarTabStore' import { useWorkspaceStore } from '@/stores/workspaceStore' -import { electronAPI, isElectron } from '@/utils/envUtil' +import { electronAPI } from '@/utils/envUtil' import LinearView from '@/views/LinearView.vue' setupAutoQueueHandler() @@ -111,7 +112,7 @@ watch( document.body.classList.add(DARK_THEME_CLASS) } - if (isElectron()) { + if (isDesktop) { electronAPI().changeTheme({ color: 'rgba(0, 0, 0, 0)', symbolColor: newTheme.colors.comfy_base['input-text'] @@ -121,7 +122,7 @@ watch( { immediate: true } ) -if (isElectron()) { +if (isDesktop) { watch( () => queueStore.tasks, (newTasks, oldTasks) => { diff --git a/src/views/LinearView.vue b/src/views/LinearView.vue index 1a02d37dc1..106214d0c7 100644 --- a/src/views/LinearView.vue +++ b/src/views/LinearView.vue @@ -18,6 +18,7 @@ import { import { useAssetsSidebarTab } from '@/composables/sidebarTabs/useAssetsSidebarTab' import { t } from '@/i18n' import type { LGraphNode } from '@/lib/litegraph/src/LGraphNode' +import { isDesktop } from '@/platform/distribution/types' import { useTelemetry } from '@/platform/telemetry' import { useWorkflowService } from '@/platform/workflow/core/services/workflowService' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' @@ -27,7 +28,6 @@ import { app } from '@/scripts/app' import { useCommandStore } from '@/stores/commandStore' import { useNodeOutputStore } from '@/stores/imagePreviewStore' import { useQueueSettingsStore } from '@/stores/queueStore' -import { isElectron } from '@/utils/envUtil' const nodeOutputStore = useNodeOutputStore() const commandStore = useCommandStore() @@ -60,7 +60,6 @@ const nodeDatas = computed(() => { .map(nodeToNodeData) }) const { isLoggedIn } = useCurrentUser() -const isDesktop = isElectron() const batchCountWidget = { options: { step2: 1, precision: 1, min: 1, max: 100 }, diff --git a/src/views/templates/BaseViewTemplate.vue b/src/views/templates/BaseViewTemplate.vue index 786cd77ac6..5af08d82ec 100644 --- a/src/views/templates/BaseViewTemplate.vue +++ b/src/views/templates/BaseViewTemplate.vue @@ -22,7 +22,8 @@