Simply call cancelOrder() at the same moment you're verifying that time <= 0:
useEffect(() => {
if (time > 0) {
const timer = setTimeout(() => setTime(time - 0.1), 100);
return () => {
clearTimeout(timer);
};
} else {
cancelOrder();
setHidden(true);
}
}, [time]);