@@ -16,17 +16,19 @@ import { activeProjectAtom, isClassroomModeAtom, projectsAtom, store } from "@/s
1616import AIWindow from "@/sub/AIWindow" ;
1717import SettingsWindow from "@/sub/SettingsWindow" ;
1818import { deserialize , serialize } from "@graphif/serializer" ;
19+ import { getVersion } from "@tauri-apps/api/app" ;
1920import { appCacheDir , dataDir , join } from "@tauri-apps/api/path" ;
2021import { getCurrentWindow } from "@tauri-apps/api/window" ;
2122import { open , save } from "@tauri-apps/plugin-dialog" ;
2223import { readTextFile , writeTextFile } from "@tauri-apps/plugin-fs" ;
23- import { open as openFilePath } from "@tauri-apps/plugin-shell" ;
24+ import { open as openFilePath , open as shellOpen } from "@tauri-apps/plugin-shell" ;
2425import { useAtom } from "jotai" ;
2526import {
2627 Airplay ,
2728 AppWindow ,
2829 Axe ,
2930 Bot ,
31+ Bug ,
3032 CircleAlert ,
3133 ExternalLink ,
3234 File ,
@@ -87,13 +89,18 @@ export function GlobalMenu() {
8789 const [ activeProject ] = useAtom ( activeProjectAtom ) ;
8890 const [ isClassroomMode , setIsClassroomMode ] = useAtom ( isClassroomModeAtom ) ;
8991 const [ recentFiles , setRecentFiles ] = useState < RecentFileManager . RecentFile [ ] > ( [ ] ) ;
92+ const [ version , setVersion ] = useState < string > ( "" ) ;
93+ const [ isUnstableVersion , setIsUnstableVersion ] = useState ( false ) ;
9094
9195 useEffect ( ( ) => {
9296 refresh ( ) ;
9397 } , [ ] ) ;
9498
9599 async function refresh ( ) {
96100 setRecentFiles ( await RecentFileManager . getRecentFiles ( ) ) ;
101+ const ver = await getVersion ( ) ;
102+ setVersion ( ver ) ;
103+ setIsUnstableVersion ( ver . includes ( "alpha" ) || ver . includes ( "beta" ) || ver . includes ( "rc" ) || ver . includes ( "dev" ) ) ;
97104 }
98105
99106 return (
@@ -527,6 +534,25 @@ export function GlobalMenu() {
527534 </ Item >
528535 </ Content >
529536 </ Menu >
537+
538+ { isUnstableVersion && (
539+ < Menu >
540+ < Trigger className = "*:text-destructive! text-destructive!" >
541+ < MessageCircleWarning />
542+ 测试版
543+ </ Trigger >
544+ < Content >
545+ < Item variant = "destructive" > v{ version } </ Item >
546+ < Item variant = "destructive" > 此版本并非正式版</ Item >
547+ < Item variant = "destructive" > 可能包含 Bug 和未完善的功能</ Item >
548+ < Separator />
549+ < Item onClick = { ( ) => shellOpen ( "https://github.com/graphif/project-graph/issues/487" ) } >
550+ < Bug />
551+ 报告 Bug: 在 Issue #487 中评论
552+ </ Item >
553+ </ Content >
554+ </ Menu >
555+ ) }
530556 </ Menubar >
531557 ) ;
532558}
0 commit comments