diff --git a/src/main/presenter/devicePresenter/index.ts b/src/main/presenter/devicePresenter/index.ts index 321f2cc23..4868fcb64 100644 --- a/src/main/presenter/devicePresenter/index.ts +++ b/src/main/presenter/devicePresenter/index.ts @@ -25,12 +25,37 @@ export class DevicePresenter implements IDevicePresenter { } async getDeviceInfo(): Promise { + const platform = process.platform + const osVersion = os.release() + + // Build version metadata based on current platform + let osVersionMetadata: Array<{ name: string; build: number }> = [] + + if (platform === 'win32') { + osVersionMetadata = [ + { name: 'Windows 11', build: 22000 }, + { name: 'Windows 10', build: 10240 }, + { name: 'Windows 8.1', build: 9600 }, + { name: 'Windows 8', build: 9200 } + ] + } else if (platform === 'darwin') { + osVersionMetadata = [ + { name: 'macOS Tahoe', build: 25 }, + { name: 'macOS Sequoia', build: 24 }, + { name: 'macOS Sonoma', build: 23 }, + { name: 'macOS Ventura', build: 22 }, + { name: 'macOS Monterey', build: 21 }, + { name: 'macOS Big Sur', build: 20 } + ] + } + return { - platform: process.platform, + platform, arch: process.arch, cpuModel: os.cpus()[0].model, totalMemory: os.totalmem(), - osVersion: os.release() + osVersion, + osVersionMetadata } } diff --git a/src/renderer/settings/App.vue b/src/renderer/settings/App.vue index 2a4bdd9b9..63e6be510 100644 --- a/src/renderer/settings/App.vue +++ b/src/renderer/settings/App.vue @@ -61,6 +61,7 @@ import { useLanguageStore } from '../src/stores/language' import { useModelCheckStore } from '../src/stores/modelCheck' import { Button } from '@shadcn/components/ui/button' import ModelCheckDialog from '@/components/settings/ModelCheckDialog.vue' +import { useDeviceVersion } from '../src/composables/useDeviceVersion' const devicePresenter = usePresenter('devicePresenter') const windowPresenter = usePresenter('windowPresenter') @@ -71,8 +72,8 @@ const settingsStore = useSettingsStore() const languageStore = useLanguageStore() const modelCheckStore = useModelCheckStore() -const isMacOS = ref(false) -const isWinMacOS = ref(false) +// Detect platform to apply proper styling +const { isMacOS, isWinMacOS } = useDeviceVersion() const { t, locale } = useI18n() const router = useRouter() const route = useRoute() @@ -89,9 +90,6 @@ const settings: Ref< // Get all routes and build settings navigation const routes = router.getRoutes() onMounted(() => { - devicePresenter.getDeviceInfo().then((deviceInfo) => { - isWinMacOS.value = deviceInfo.platform === 'darwin' || deviceInfo.platform === 'win32' - }) const tempArray: { title: string name: string diff --git a/src/renderer/shell/App.vue b/src/renderer/shell/App.vue index fded904cd..deec619b3 100644 --- a/src/renderer/shell/App.vue +++ b/src/renderer/shell/App.vue @@ -9,16 +9,10 @@