import { useEffect, useState } from 'react'; import { api } from '@renderer/api'; /** * Reads current zoom factor and stays subscribed to zoom updates from main. */export function useZoomFactor(): number { const [zoomFactor, setZoomFactor] = useState(1); useEffect(() => { let isMounted = true; void api .getZoomFactor() .then((value) => { if (isMounted) { setZoomFactor(value); } }) .catch(() => { // Keep default 1 if zoom factor cannot be read. }); const unsubscribe = api.onZoomFactorChanged((value) => { setZoomFactor(value); }); return () => { isMounted = false; unsubscribe(); }; }, []); return zoomFactor;}
import { useEffect, useState } from 'react';
import { api } from '@renderer/api';
/**
* Reads current zoom factor and stays subscribed to zoom updates from main.
*/
export function useZoomFactor(): number {
const [zoomFactor, setZoomFactor] = useState(1);
useEffect(() => {
let isMounted = true;
void api
.getZoomFactor()
.then((value) => {
if (isMounted) {
setZoomFactor(value);
}
})
.catch(() => {
// Keep default 1 if zoom factor cannot be read.
});
const unsubscribe = api.onZoomFactorChanged((value) => {
setZoomFactor(value);
});
return () => {
isMounted = false;
unsubscribe();
};
}, []);
return zoomFactor;
}