diff --git a/src/components/strategies/common/BudgetDistribution.tsx b/src/components/strategies/common/BudgetDistribution.tsx index adbe9daa0..e23862a43 100644 --- a/src/components/strategies/common/BudgetDistribution.tsx +++ b/src/components/strategies/common/BudgetDistribution.tsx @@ -152,7 +152,7 @@ export const BudgetDescription: FC = (props) => { ); } return ( -

+

@@ -181,7 +181,7 @@ export const BudgetDescription: FC = (props) => { ); } return ( -

+

diff --git a/src/components/strategies/common/form.module.css b/src/components/strategies/common/form.module.css index 4ff2864d4..9430deb04 100644 --- a/src/components/strategies/common/form.module.css +++ b/src/components/strategies/common/form.module.css @@ -1,18 +1,21 @@ .form:invalid button[type="submit"], .form:has(:global(.error-message)) button[type="submit"], .form:has(:global(.loading-message)) button[type="submit"], -.form:has(:global(.warning-message)):has(.approve-warnings input:not(:checked)) button[type="submit"] { +.form:has(:global(.warning-message)):has(.approve-warnings input:not(:checked)) button[type="submit"], +.form.overlapping:has(:global(.budget-message)):has(.approve-warnings input:not(:checked)) button[type="submit"] { opacity: 0.4; cursor: not-allowed; } .form:invalid button[type="submit"]:hover, -.form:has(:global(.error-message)) button[type="submit"]:hover { +.form:has(:global(.error-message)) button[type="submit"]:hover, +.form.overlapping:has(:global(.budget-message)) button[type="submit"]:hover { border: none; } .form:has(:global(.error-message)) .approve-warnings, -.form:not(:has(:global(.warning-message))) .approve-warnings { +.form:not(.overlapping):not(:has(:global(.warning-message))) .approve-warnings, +.form.overlapping:not(:has(:global(.warning-message))):not(:has(:global(.budget-message))) .approve-warnings { display: none; } diff --git a/src/components/strategies/edit/EditPriceFields.tsx b/src/components/strategies/edit/EditPriceFields.tsx index 10aa1a3e4..78e451f2e 100644 --- a/src/components/strategies/edit/EditPriceFields.tsx +++ b/src/components/strategies/edit/EditPriceFields.tsx @@ -74,12 +74,8 @@ export const EditStrategyPriceField: FC = ({ const setPrice = (price: string) => setOrder({ min: price, max: price }); const setMin = (min: string) => setOrder({ min }); const setMax = (max: string) => setOrder({ max }); - const setBudget = (budget: string) => { - console.log('set budget', { buy }); - setOrder({ budget }); - }; + const setBudget = (budget: string) => setOrder({ budget }); const setAction = (action: 'deposit' | 'withdraw') => { - console.log('set action', { action, buy }); setOrder({ action, budget: undefined }); }; const setSettings = (settings: StrategySettings) => { diff --git a/src/components/strategies/edit/EditStrategyForm.tsx b/src/components/strategies/edit/EditStrategyForm.tsx index f34cfe9b3..5d4a8dc25 100644 --- a/src/components/strategies/edit/EditStrategyForm.tsx +++ b/src/components/strategies/edit/EditStrategyForm.tsx @@ -116,7 +116,10 @@ export const EditStrategyForm: FC = (props) => { if (!!form.querySelector('.loading-message')) return true; if (!!form.querySelector('.error-message')) return true; const warnings = form.querySelector('.warning-message'); - if (!warnings) return false; + const budgets = form.querySelector('.budget-message'); + const needApproval = + !!warnings || (!!budgets && strategyType === 'overlapping'); + if (!needApproval) return false; return !form.querySelector('#approve-warnings')?.checked; }; @@ -199,7 +202,9 @@ export const EditStrategyForm: FC = (props) => {

history.back()} - className={cn('flex flex-col gap-20 md:w-[440px]', style.form)} + className={cn('flex flex-col gap-20 md:w-[440px]', style.form, { + [style.overlapping]: strategyType === 'overlapping', + })} data-testid="edit-form" > diff --git a/src/components/strategies/overlapping/OverlappingAction.tsx b/src/components/strategies/overlapping/OverlappingAction.tsx index 1a927a90e..64ac4035c 100644 --- a/src/components/strategies/overlapping/OverlappingAction.tsx +++ b/src/components/strategies/overlapping/OverlappingAction.tsx @@ -63,8 +63,6 @@ export const OverlappingAction: FC = (props) => { return ''; })(); - console.log({ anchor, action }); - return (
{ const hasChanged = (() => { if (search.marketPrice) return true; - if (search.budget) return true; + if (!isZero(search.budget)) return true; return false; })(); diff --git a/src/pages/strategies/edit/prices/disposable.tsx b/src/pages/strategies/edit/prices/disposable.tsx index 9997d66d3..218707a4e 100644 --- a/src/pages/strategies/edit/prices/disposable.tsx +++ b/src/pages/strategies/edit/prices/disposable.tsx @@ -75,6 +75,7 @@ export const EditStrategyDisposablePage = () => { if (orders.buy.max !== roundSearchParam(order0.endRate)) return true; if (orders.sell.min !== roundSearchParam(order1.startRate)) return true; if (orders.sell.max !== roundSearchParam(order1.endRate)) return true; + if (!isZero(search.budget)) return true; return false; })(); diff --git a/src/pages/strategies/edit/prices/overlapping.tsx b/src/pages/strategies/edit/prices/overlapping.tsx index fe1e45359..dadd3f708 100644 --- a/src/pages/strategies/edit/prices/overlapping.tsx +++ b/src/pages/strategies/edit/prices/overlapping.tsx @@ -174,7 +174,7 @@ export const EditStrategyOverlappingPage = () => { if (search.min !== roundSearchParam(order0.startRate)) return true; if (search.max !== roundSearchParam(order1.endRate)) return true; if (search.spread !== getRoundedSpread(strategy).toString()) return true; - if (search.budget) return true; + if (!isZero(search.budget)) return true; return false; })(); diff --git a/src/pages/strategies/edit/prices/recurring.tsx b/src/pages/strategies/edit/prices/recurring.tsx index 21215a016..bb5648724 100644 --- a/src/pages/strategies/edit/prices/recurring.tsx +++ b/src/pages/strategies/edit/prices/recurring.tsx @@ -5,7 +5,10 @@ import { EditStrategyPriceField } from 'components/strategies/edit/EditPriceFiel import { StrategySettings } from 'libs/routing'; import { useMarketPrice } from 'hooks/useMarketPrice'; import { EditStrategyForm } from 'components/strategies/edit/EditStrategyForm'; -import { outSideMarketWarning } from 'components/strategies/common/utils'; +import { + isZero, + outSideMarketWarning, +} from 'components/strategies/common/utils'; import { useSetRecurringOrder } from 'components/strategies/common/useSetOrder'; import { checkIfOrdersOverlap, @@ -85,8 +88,10 @@ export const EditStrategyRecurringPage = () => { const { order0, order1 } = strategy; if (search.buyMin !== roundSearchParam(order0.startRate)) return true; if (search.buyMax !== roundSearchParam(order0.endRate)) return true; + if (!isZero(search.buyBudget)) return true; if (search.sellMin !== roundSearchParam(order1.startRate)) return true; if (search.sellMax !== roundSearchParam(order1.endRate)) return true; + if (!isZero(search.sellBudget)) return true; return false; })();