11<template >
22 <div
3- class =" window-drag flex items-center border-b dark:bg-gray-900 text-gray-900 dark:text-gray-100 border-gray-100 dark:border-gray-800"
3+ class ="
4+ window-drag
5+ flex
6+ items-center
7+ border-b
8+ dark:bg-gray-900
9+ text-gray-900
10+ dark:text-gray-100
11+ border-gray-100
12+ dark:border-gray-800
13+ "
414 style =" height : 28px "
515 >
616 <Fb class =" ms-2" />
717 <p v-if =" companyName && dbPath" class =" mx-auto text-sm" >
818 {{ companyName }} - {{ dbPath }}
919 </p >
20+ <div v-if =" !isFullscreen" class =" window-no-drag flex h-full items-center justify-end" >
21+ <div
22+ class ="
23+ flex
24+ items-center
25+ px-4
26+ h-full
27+ hover:bg-gray-300
28+ dark:hover:bg-gray-875
29+ "
30+ @click =" minimizeWindow"
31+ >
32+ <feather-icon name =" minus" class =" h-4 w-4 flex-shrink-0" />
33+ </div >
34+ <div
35+ class ="
36+ flex
37+ items-center
38+ px-4
39+ h-full
40+ hover:bg-gray-300
41+ dark:hover:bg-gray-875
42+ "
43+ @click =" toggleMaximize"
44+ >
45+ <feather-icon
46+ v-if =" isMax"
47+ name =" minimize"
48+ class =" h-3 w-3 flex-shrink-0"
49+ />
50+ <feather-icon v-else name =" square" class =" h-3 w-3 flex-shrink-0" />
51+ </div >
52+ <div
53+ class =" flex items-center px-4 h-full hover:bg-red-600 hover:text-white"
54+ @click =" closeWindow"
55+ >
56+ <feather-icon name =" x" class =" h-4 w-4 flex-shrink-0" />
57+ </div >
58+ </div >
1059 </div >
1160</template >
1261
@@ -20,5 +69,59 @@ export default {
2069 dbPath: String ,
2170 companyName: String ,
2271 },
72+ data () {
73+ return {
74+ isMax: Boolean ,
75+ isFullscreen: Boolean ,
76+ };
77+ },
78+ mounted () {
79+ this .getIsMaximized ();
80+ this .getIsFullscreen ();
81+ window .addEventListener (' resize' , this .getIsFullscreen );
82+ document .addEventListener (' webkitfullscreenchange' , this .getIsFullscreen );
83+ document .addEventListener (' mozfullscreenchange' , this .getIsFullscreen );
84+ document .addEventListener (' fullscreenchange' , this .getIsFullscreen );
85+ document .addEventListener (' MSFullscreenChange' , this .getIsFullscreen );
86+ },
87+ destroyed () {
88+ window .removeEventListener (' resize' , this .getIsFullscreen );
89+ document .removeEventListener (' webkitfullscreenchange' , this .getIsFullscreen );
90+ document .removeEventListener (' mozfullscreenchange' , this .getIsFullscreen );
91+ document .removeEventListener (' fullscreenchange' , this .getIsFullscreen );
92+ document .removeEventListener (' MSFullscreenChange' , this .getIsFullscreen );
93+ },
94+ methods: {
95+ minimizeWindow () {
96+ ipc .minimizeWindow ();
97+ },
98+ toggleMaximize () {
99+ ipc .toggleMaximize ();
100+ this .getIsMaximized ();
101+ },
102+ closeWindow () {
103+ ipc .closeWindow ();
104+ },
105+ getIsMaximized () {
106+ ipc
107+ .isMaximized ()
108+ .then ((result ) => {
109+ this .isMax = result;
110+ })
111+ .catch ((error ) => {
112+ console .error (error);
113+ });
114+ },
115+ getIsFullscreen () {
116+ ipc
117+ .isFullscreen ()
118+ .then ((result ) => {
119+ this .isFullscreen = result;
120+ })
121+ .catch ((error ) => {
122+ console .error (error);
123+ });
124+ },
125+ },
23126};
24127 </script >
0 commit comments