Fix cancel button, add debug console log fetchOrder

This commit is contained in:
Reckless_Satoshi 2024-01-10 14:48:35 +00:00
parent 804f4c49e3
commit 39453058a3
No known key found for this signature in database
GPG Key ID: 9C4585B561315571
5 changed files with 31 additions and 26 deletions

View File

@ -25,6 +25,8 @@ const NavBar = (): JSX.Element => {
useContext<UseAppStoreType>(AppContext); useContext<UseAppStoreType>(AppContext);
const { garage, orderUpdatedAt, robotUpdatedAt } = useContext<UseGarageStoreType>(GarageContext); const { garage, orderUpdatedAt, robotUpdatedAt } = useContext<UseGarageStoreType>(GarageContext);
console.log('On NavBar "page" is:', page);
const navigate = useNavigate(); const navigate = useNavigate();
const location = useLocation(); const location = useLocation();
const smallBar = windowSize?.width < 50; const smallBar = windowSize?.width < 50;
@ -56,7 +58,7 @@ const NavBar = (): JSX.Element => {
if (isPage(pathPage) && pathPage.includes('order')) { if (isPage(pathPage) && pathPage.includes('order')) {
setPage(pathPage); setPage(pathPage);
} }
}, [location, navigate, setPage, orderUpdatedAt, robotUpdatedAt]); }, [location, navigate, orderUpdatedAt, robotUpdatedAt]);
const handleSlideDirection = function (oldPage: Page, newPage: Page): void { const handleSlideDirection = function (oldPage: Page, newPage: Page): void {
const oldPos: number = pagesPosition[oldPage]; const oldPos: number = pagesPosition[oldPage];

View File

@ -339,6 +339,7 @@ const MakerForm = ({
}) })
.catch(() => { .catch(() => {
setBadRequest('Request error'); setBadRequest('Request error');
setSubmittingRequest(false);
}); });
} }
setOpenDialogs(false); setOpenDialogs(false);

View File

@ -22,13 +22,12 @@ const CancelButton = ({
const { t } = useTranslation(); const { t } = useTranslation();
const showCancelButton = const showCancelButton =
(order?.is_maker === true && [0, 1, 2].includes(order?.status)) ?? Boolean(order?.is_maker && [0, 1, 2].includes(order?.status)) ||
[3, 6, 7].includes(order?.status ?? -1); Boolean([3, 7].includes(order?.status ?? -1));
const showCollabCancelButton = const showCollabCancelButton = order?.status === 9 && !order?.asked_for_cancel;
[8, 9].includes(order?.status ?? -1) && !(order?.asked_for_cancel === true);
const noConfirmation = const noConfirmation =
(order?.is_maker === true && [0, 1, 2].includes(order?.status ?? -1)) ?? Boolean(order?.is_maker && [0, 1, 2].includes(order?.status)) ||
(order?.is_taker === true && order?.status === 3); Boolean(order?.is_taker && order?.status === 3);
return ( return (
<Box> <Box>

View File

@ -175,6 +175,8 @@ export const useAppStore = (): UseAppStoreType => {
initialAppContext.acknowledgedWarning, initialAppContext.acknowledgedWarning,
); );
console.log('On AppContext "page" is:', page);
useEffect(() => { useEffect(() => {
setTheme(makeTheme(settings)); setTheme(makeTheme(settings));
}, [settings.fontSize, settings.mode, settings.lightQRs]); }, [settings.fontSize, settings.mode, settings.lightQRs]);

View File

@ -16,6 +16,7 @@ import { AppContext, type UseAppStoreType } from './AppContext';
import { GarageContext, type UseGarageStoreType } from './GarageContext'; import { GarageContext, type UseGarageStoreType } from './GarageContext';
// Refresh delays (ms) according to Order status // Refresh delays (ms) according to Order status
const defaultDelay = 5000;
const statusToDelay = [ const statusToDelay = [
3000, // 'Waiting for maker bond' 3000, // 'Waiting for maker bond'
35000, // 'Public' 35000, // 'Public'
@ -82,7 +83,7 @@ export const useFederationStore = (): UseFederationStoreType => {
); );
const [federationUpdatedAt, setFederationUpdatedAt] = useState<string>(new Date().toISOString()); const [federationUpdatedAt, setFederationUpdatedAt] = useState<string>(new Date().toISOString());
const [delay, setDelay] = useState<number>(5000); const [delay, setDelay] = useState<number>(defaultDelay);
const [timer, setTimer] = useState<NodeJS.Timer | undefined>(() => const [timer, setTimer] = useState<NodeJS.Timer | undefined>(() =>
setInterval(() => null, delay), setInterval(() => null, delay),
); );
@ -100,54 +101,54 @@ export const useFederationStore = (): UseFederationStoreType => {
setFederation(newFed); setFederation(newFed);
}, [settings.network, torStatus]); }, [settings.network, torStatus]);
console.log('On FederationContext "page" is:', page);
const onOrderReceived = (order: Order): void => { const onOrderReceived = (order: Order): void => {
let newDelay = defaultDelay;
if (order?.bad_request) { if (order?.bad_request) {
newDelay = 99999999;
console.log('bad request on order, new delay', newDelay);
setBadOrder(order.bad_request); setBadOrder(order.bad_request);
setDelay(99999999);
garage.updateOrder(null); garage.updateOrder(null);
} }
if (order?.id) { if (order?.id) {
setDelay( newDelay =
order.status >= 0 && order.status <= 18 order.status >= 0 && order.status <= 18
? page === 'order' ? page === 'order'
? statusToDelay[order.status] ? statusToDelay[order.status]
: statusToDelay[order.status] * 5 // If user is not looking at "order" tab, refresh less often. : statusToDelay[order.status] * 5 // If user is not looking at "order" tab, refresh less often.
: 99999999, : 99999999;
); console.log('has order id, new delay is', newDelay);
garage.updateOrder(order); garage.updateOrder(order);
setBadOrder(undefined); setBadOrder(undefined);
} }
console.log('page:', page, 'Why remains as initial page?');
console.log('setting delay!', newDelay);
setDelay(newDelay);
setTimer(setTimeout(fetchCurrentOrder, newDelay));
}; };
const fetchCurrentOrder: () => void = () => { const fetchCurrentOrder: () => void = () => {
const slot = garage?.getSlot(); const slot = garage?.getSlot();
const robot = slot?.getRobot(); const robot = slot?.getRobot();
console.log('slot?.token', slot?.token);
console.log('slot?.activeShortAlias', slot?.activeShortAlias);
console.log('robot?.activeOrderId', robot?.activeOrderId);
if (slot?.token && slot?.activeShortAlias && robot?.activeOrderId) { if (slot?.token && slot?.activeShortAlias && robot?.activeOrderId) {
const coordinator = federation.getCoordinator(slot.activeShortAlias); const coordinator = federation.getCoordinator(slot.activeShortAlias);
coordinator void coordinator?.fetchOrder(robot.activeOrderId, robot, slot.token).then((order) => {
?.fetchOrder(robot.activeOrderId, robot, slot.token)
.then((order) => {
console.log('order', order);
onOrderReceived(order as Order); onOrderReceived(order as Order);
})
.finally(() => {
setTimer(setTimeout(fetchCurrentOrder, delay));
}); });
} else { } else {
setTimer(setTimeout(fetchCurrentOrder, delay)); console.log('Hit no order, delay', defaultDelay);
setTimer(setTimeout(fetchCurrentOrder, defaultDelay));
} }
}; };
useEffect(() => { useEffect(() => {
clearInterval(timer); clearInterval(timer);
fetchCurrentOrder(); fetchCurrentOrder();
setDelay(defaultDelay);
return () => { return () => {
clearInterval(timer); clearInterval(timer);
}; };
}, []); }, [coordinatorUpdatedAt, federationUpdatedAt]);
useEffect(() => { useEffect(() => {
if (page === 'offers') void federation.updateBook(); if (page === 'offers') void federation.updateBook();