mirror of
https://github.com/RoboSats/robosats.git
synced 2025-07-19 09:13:28 +00:00
More fixes
This commit is contained in:
@ -115,7 +115,7 @@ const AmountRange: React.FC<AmountRangeProps> = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setHasRangeError(!minAmountError || !maxAmountError);
|
setHasRangeError(minAmountError || maxAmountError);
|
||||||
}, [minAmountError, maxAmountError]);
|
}, [minAmountError, maxAmountError]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import React, { useContext, useEffect, useMemo, useState } from 'react';
|
import React, { useContext, useEffect, useMemo, useState } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import {
|
import {
|
||||||
InputAdornment,
|
|
||||||
ButtonGroup,
|
ButtonGroup,
|
||||||
Slider,
|
Slider,
|
||||||
Switch,
|
Switch,
|
||||||
@ -34,7 +33,7 @@ import AmountRange from './AmountRange';
|
|||||||
import currencyDict from '../../../static/assets/currencies.json';
|
import currencyDict from '../../../static/assets/currencies.json';
|
||||||
import { amountToString, computeSats, genBase62Token, pn } from '../../utils';
|
import { amountToString, computeSats, genBase62Token, pn } from '../../utils';
|
||||||
|
|
||||||
import { SelfImprovement, Lock, HourglassTop, DeleteSweep, Edit, Map } from '@mui/icons-material';
|
import { SelfImprovement, Lock, DeleteSweep, Edit, Map } from '@mui/icons-material';
|
||||||
import { LoadingButton } from '@mui/lab';
|
import { LoadingButton } from '@mui/lab';
|
||||||
import { fiatMethods } from '../PaymentMethods';
|
import { fiatMethods } from '../PaymentMethods';
|
||||||
import { AppContext, type UseAppStoreType } from '../../contexts/AppContext';
|
import { AppContext, type UseAppStoreType } from '../../contexts/AppContext';
|
||||||
@ -76,6 +75,8 @@ const MakerForm = ({
|
|||||||
const [submittingRequest, setSubmittingRequest] = useState<boolean>(false);
|
const [submittingRequest, setSubmittingRequest] = useState<boolean>(false);
|
||||||
const [amountRangeEnabled, setAmountRangeEnabled] = useState<boolean>(true);
|
const [amountRangeEnabled, setAmountRangeEnabled] = useState<boolean>(true);
|
||||||
const [hasRangeError, setHasRangeError] = useState<boolean>(false);
|
const [hasRangeError, setHasRangeError] = useState<boolean>(false);
|
||||||
|
const [openPublicDuration, setOpenPublicDuration] = useState<boolean>(false);
|
||||||
|
const [openEscrowTimer, setOpenEscrowTimer] = useState<boolean>(false);
|
||||||
const [limits, setLimits] = useState<LimitList>({});
|
const [limits, setLimits] = useState<LimitList>({});
|
||||||
|
|
||||||
const amountSafeThresholds = [1.03, 0.98];
|
const amountSafeThresholds = [1.03, 0.98];
|
||||||
@ -369,6 +370,67 @@ const MakerForm = ({
|
|||||||
}, [fav, maker.amount, maker.premium, federationUpdatedAt]);
|
}, [fav, maker.amount, maker.premium, federationUpdatedAt]);
|
||||||
|
|
||||||
const disableSubmit = useMemo(() => {
|
const disableSubmit = useMemo(() => {
|
||||||
|
const condition1 = fav.type == null;
|
||||||
|
console.log('Condition 1 (fav.type == null):', condition1);
|
||||||
|
|
||||||
|
const condition2 =
|
||||||
|
!makerHasAmountRange &&
|
||||||
|
maker.amount &&
|
||||||
|
(maker.amount < amountLimits[0] || maker.amount > amountLimits[1]);
|
||||||
|
console.log(
|
||||||
|
'Condition 2 (!makerHasAmountRange && maker.amount && (maker.amount < amountLimits[0] || maker.amount > amountLimits[1])):',
|
||||||
|
condition2,
|
||||||
|
);
|
||||||
|
|
||||||
|
const condition3 = maker.badPaymentMethod;
|
||||||
|
console.log('Condition 3 (maker.badPaymentMethod):', condition3);
|
||||||
|
|
||||||
|
const condition4 =
|
||||||
|
maker.amount == null && (!makerHasAmountRange || (Object.keys(limits)?.length ?? 0) < 1);
|
||||||
|
console.log(
|
||||||
|
'Condition 4 (maker.amount == null && (!makerHasAmountRange || (Object.keys(limits)?.length ?? 0) < 1)):',
|
||||||
|
condition4,
|
||||||
|
);
|
||||||
|
|
||||||
|
const condition5 = makerHasAmountRange && hasRangeError;
|
||||||
|
console.log('Condition 5 (makerHasAmountRange && hasRangeError):', condition5);
|
||||||
|
|
||||||
|
const condition6 = !makerHasAmountRange && maker.amount && maker.amount <= 0;
|
||||||
|
console.log(
|
||||||
|
'Condition 6 (!makerHasAmountRange && maker.amount && maker.amount <= 0):',
|
||||||
|
condition6,
|
||||||
|
);
|
||||||
|
|
||||||
|
const condition7 = maker.badPremiumText !== '';
|
||||||
|
console.log("Condition 7 (maker.badPremiumText !== ''):", condition7);
|
||||||
|
|
||||||
|
const condition8 = federation.getCoordinator(maker.coordinator)?.limits === undefined;
|
||||||
|
console.log(
|
||||||
|
'Condition 8 (federation.getCoordinator(maker.coordinator)?.limits === undefined):',
|
||||||
|
condition8,
|
||||||
|
);
|
||||||
|
|
||||||
|
const condition9 = typeof maker.premium !== 'number';
|
||||||
|
console.log("Condition 9 (typeof maker.premium !== 'number'):", condition9);
|
||||||
|
|
||||||
|
const condition10 = maker.paymentMethods.length === 0;
|
||||||
|
console.log('Condition 10 (maker.paymentMethods.length === 0):', condition10);
|
||||||
|
|
||||||
|
// Combine all conditions to check if any of them are true
|
||||||
|
const anyConditionTrue =
|
||||||
|
condition1 ||
|
||||||
|
condition2 ||
|
||||||
|
condition3 ||
|
||||||
|
condition4 ||
|
||||||
|
condition5 ||
|
||||||
|
condition6 ||
|
||||||
|
condition7 ||
|
||||||
|
condition8 ||
|
||||||
|
condition9 ||
|
||||||
|
condition10;
|
||||||
|
|
||||||
|
console.log('Any condition true:', anyConditionTrue);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
fav.type == null ||
|
fav.type == null ||
|
||||||
(!makerHasAmountRange &&
|
(!makerHasAmountRange &&
|
||||||
@ -823,12 +885,12 @@ const MakerForm = ({
|
|||||||
<Grid item sx={{ width: '100%' }}>
|
<Grid item sx={{ width: '100%' }}>
|
||||||
<LocalizationProvider dateAdapter={AdapterDateFns}>
|
<LocalizationProvider dateAdapter={AdapterDateFns}>
|
||||||
<MobileTimePicker
|
<MobileTimePicker
|
||||||
|
open={openPublicDuration}
|
||||||
|
onClose={() => setOpenPublicDuration(false)}
|
||||||
ampm={false}
|
ampm={false}
|
||||||
localeText={{ timePickerToolbarTitle: t('Public order length') }}
|
localeText={{ toolbarTitle: t('Public order length') }}
|
||||||
openTo='hours'
|
openTo='hours'
|
||||||
views={['hours', 'minutes']}
|
views={['hours', 'minutes']}
|
||||||
inputFormat='HH:mm'
|
|
||||||
mask='__:__'
|
|
||||||
slotProps={{
|
slotProps={{
|
||||||
textField: {
|
textField: {
|
||||||
fullWidth: true,
|
fullWidth: true,
|
||||||
@ -838,11 +900,7 @@ const MakerForm = ({
|
|||||||
borderRadius: '4px',
|
borderRadius: '4px',
|
||||||
marginBottom: 8,
|
marginBottom: 8,
|
||||||
},
|
},
|
||||||
endAdornment: (
|
onClick: () => setOpenPublicDuration(true),
|
||||||
<InputAdornment position='end'>
|
|
||||||
<HourglassTop />
|
|
||||||
</InputAdornment>
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
@ -859,7 +917,9 @@ const MakerForm = ({
|
|||||||
<LocalizationProvider dateAdapter={AdapterDateFns}>
|
<LocalizationProvider dateAdapter={AdapterDateFns}>
|
||||||
<MobileTimePicker
|
<MobileTimePicker
|
||||||
ampm={false}
|
ampm={false}
|
||||||
localeText={{ timePickerToolbarTitle: t('Escrow/invoice step length') }}
|
open={openEscrowTimer}
|
||||||
|
onClose={() => setOpenEscrowTimer(false)}
|
||||||
|
localeText={{ toolbarTitle: t('Escrow/invoice step length') }}
|
||||||
openTo='hours'
|
openTo='hours'
|
||||||
views={['hours', 'minutes']}
|
views={['hours', 'minutes']}
|
||||||
inputFormat='HH:mm'
|
inputFormat='HH:mm'
|
||||||
@ -873,11 +933,7 @@ const MakerForm = ({
|
|||||||
borderRadius: '4px',
|
borderRadius: '4px',
|
||||||
marginBottom: 8,
|
marginBottom: 8,
|
||||||
},
|
},
|
||||||
endAdornment: (
|
onClick: () => setOpenEscrowTimer(true),
|
||||||
<InputAdornment position='end'>
|
|
||||||
<HourglassTop />
|
|
||||||
</InputAdornment>
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
|
@ -26,12 +26,11 @@ class RoboGenerator {
|
|||||||
private rejects: Record<string, Array<(reason?: Error) => void>> = {};
|
private rejects: Record<string, Array<(reason?: Error) => void>> = {};
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
for (let i = 0; i < this.numberOfWorkers; i++) {
|
|
||||||
this.workers.push(this.createWorker(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.waitingForLibrary = false;
|
this.waitingForLibrary = false;
|
||||||
|
for (let i = 0; i < this.numberOfWorkers; i++) {
|
||||||
|
this.workers.push(this.createWorker(i));
|
||||||
|
}
|
||||||
}, 3000);
|
}, 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user