File tree 4 files changed +32
-7
lines changed
4 files changed +32
-7
lines changed Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ export default defineComponent({
37
37
},
38
38
39
39
setup() {
40
- const { isConnected, isInitializing } = useAppConnection ()
40
+ const { isConnected, isInitializing, showDisplayDisconnected } = useAppConnection ()
41
41
42
42
function updateTheme(theme : string ) {
43
43
if (theme === ' dark' || theme === ' high-contrast' || (theme === ' auto' && chromeTheme === ' dark' )) {
@@ -80,6 +80,7 @@ export default defineComponent({
80
80
return {
81
81
isConnected ,
82
82
isInitializing ,
83
+ showDisplayDisconnected ,
83
84
showAppsSelector ,
84
85
orientation ,
85
86
isChrome ,
@@ -103,7 +104,7 @@ export default defineComponent({
103
104
/>
104
105
105
106
<AppDisconnected
106
- v-else-if =" !isConnected "
107
+ v-else-if =" showDisplayDisconnected "
107
108
class =" absolute inset-0"
108
109
/>
109
110
Original file line number Diff line number Diff line change 1
- import { ref } from 'vue'
1
+ import { computed , ref } from 'vue'
2
+ import { useNow } from '@vueuse/core'
2
3
3
4
const isConnected = ref ( false )
4
5
const isInitializing = ref ( true )
6
+ const lastDisconnect = ref ( 0 )
5
7
6
8
export function useAppConnection ( ) {
9
+ const now = useNow ( {
10
+ interval : 1000 ,
11
+ } )
12
+ const showDisplayDisconnected = computed ( ( ) => {
13
+ if ( isInitializing . value ) {
14
+ return false
15
+ }
16
+ if ( lastDisconnect . value === 0 ) {
17
+ return false
18
+ }
19
+ // Wait for 5 seconds before showing the disconnected message
20
+ return ! isConnected && now . value . getTime ( ) - lastDisconnect . value > 5000
21
+ } )
22
+
7
23
return {
8
24
isConnected,
9
25
isInitializing,
26
+ lastDisconnect,
27
+ showDisplayDisconnected,
10
28
}
11
29
}
12
30
13
- export function setAppConnected ( value : boolean ) {
31
+ export function setAppConnected ( value : boolean , force = false ) {
32
+ if ( force ) {
33
+ lastDisconnect . value = 0
34
+ }
35
+ else if ( ! value && isConnected . value ) {
36
+ lastDisconnect . value = Date . now ( )
37
+ }
14
38
isConnected . value = value
15
39
}
16
40
Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ export async function initDevTools(shell: Shell) {
19
19
app . mount ( '#app' )
20
20
connectApp ( app , shell )
21
21
shell . onReload ( ( ) => {
22
- setAppConnected ( false )
22
+ setAppConnected ( false , true )
23
23
getBridge ( ) ?. removeAllListeners ( )
24
24
connectApp ( app , shell )
25
25
} )
Original file line number Diff line number Diff line change @@ -36,7 +36,7 @@ initDevTools({
36
36
setAppConnected ( false )
37
37
38
38
// Retry
39
- retryConnectTimer = setTimeout ( connect , 1000 )
39
+ retryConnectTimer = setTimeout ( connect , 500 )
40
40
} )
41
41
42
42
if ( connectCount > 1 ) {
@@ -49,7 +49,7 @@ initDevTools({
49
49
setAppConnected ( false )
50
50
51
51
// Retry
52
- retryConnectTimer = setTimeout ( connect , 5000 )
52
+ retryConnectTimer = setTimeout ( connect , 1000 )
53
53
}
54
54
}
55
55
connect ( )
You can’t perform that action at this time.
0 commit comments