Skip to content

Commit aea13b8

Browse files
committed
Refresh the UI on window focus
1 parent a958b3c commit aea13b8

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

src/hooks/use-certificate-trust.ts

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,34 @@
1-
import { useEffect, useState } from 'react';
1+
import { useCallback, useEffect, useRef, useState } from 'react';
2+
import { useWindowListener } from 'src/hooks/use-window-listener';
23
import { getIpcApi } from 'src/lib/get-ipc-api';
34

45
/**
56
* Custom hook that checks if the Studio CA certificate is trusted on the system
67
* @returns A boolean indicating if the certificate is trusted
78
*/
89
export function useCertificateTrust(): boolean {
10+
const isMounted = useRef( true );
911
const [ isTrusted, setIsTrusted ] = useState< boolean >( false );
1012

11-
useEffect( () => {
12-
let isMounted = true;
13-
14-
const checkCertificateTrust = async () => {
15-
try {
16-
const trusted = await getIpcApi().isCATrusted();
17-
if ( isMounted ) {
13+
const checkCertificateTrust = useCallback( () => {
14+
getIpcApi()
15+
.isCATrusted()
16+
.then( ( trusted ) => {
17+
if ( isMounted.current ) {
1818
setIsTrusted( trusted );
1919
}
20-
} catch ( error ) {
21-
console.error( 'Error checking certificate trust status:', error );
22-
}
23-
};
20+
} );
21+
}, [ setIsTrusted ] );
2422

25-
checkCertificateTrust();
23+
useWindowListener( 'focus', checkCertificateTrust );
2624

25+
useEffect( () => {
26+
isMounted.current = true;
27+
checkCertificateTrust();
2728
return () => {
28-
isMounted = false;
29+
isMounted.current = false;
2930
};
30-
}, [] );
31+
}, [ checkCertificateTrust ] );
3132

3233
return isTrusted;
3334
}

0 commit comments

Comments
 (0)