Skip to content
Merged
Show file tree
Hide file tree
Changes from 85 commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
6df8ef8
feat: add multi-step tracker for EOA TWAP order creation flow
Danziger Jul 28, 2026
799edf8
Merge branch 'develop' into feat/eoa-twap-order-tracker
Danziger Jul 28, 2026
2362af0
chore(i18n): extract i18n strings [automatic]
cowswap-release-sync[bot] Jul 28, 2026
e53d630
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Jul 28, 2026
9780b1c
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Jul 28, 2026
425e295
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Jul 28, 2026
fac5579
fix: check allowances based on sell amount + buffer
Danziger Jul 30, 2026
2b741c8
Merge branch 'feat/eoa-twap-order-tracker' of github.com:cowprotocol/…
Danziger Jul 30, 2026
4cb0c7e
chore: merge develop and resolve conflicts
Danziger Jul 31, 2026
a9c09ca
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Jul 31, 2026
f7502a3
feat: set EOA_TWAP_POC_DEBUG to true
Danziger Jul 31, 2026
f92bde9
Merge branch 'feat/eoa-twap-order-tracker' of github.com:cowprotocol/…
Danziger Jul 31, 2026
5e93d66
chore: update TSDoc comment
Danziger Jul 31, 2026
e431071
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Jul 31, 2026
cb2cb1e
fix: abort TWAP flow if dismissed, improve allowance checks
Danziger Jul 31, 2026
8ab8a91
Merge branch 'feat/eoa-twap-order-tracker' of github.com:cowprotocol/…
Danziger Jul 31, 2026
56f49e6
chore: merge develop
Danziger Jul 31, 2026
d16ecfb
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Jul 31, 2026
70cdce7
fix: keep old 2-step tracker and new multi-step tracker independent
Danziger Jul 31, 2026
18f59cd
Merge branch 'feat/eoa-twap-order-tracker' of github.com:cowprotocol/…
Danziger Jul 31, 2026
5410080
chore(i18n): extract i18n strings [automatic]
cowswap-release-sync[bot] Jul 31, 2026
8beb263
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Jul 31, 2026
c46438d
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Jul 31, 2026
37a53b1
feat: check approva tx receip
Danziger Aug 3, 2026
28d731b
Merge branch 'feat/eoa-twap-order-tracker' of github.com:cowprotocol/…
Danziger Aug 3, 2026
3eb6de6
chore: merge develop
Danziger Aug 3, 2026
b2946d0
feat: updated designs for mutli-step tracker
Danziger Aug 4, 2026
1828d49
fix: check for -1 from indexOf when building signing plan
Danziger Aug 4, 2026
9070a2c
Merge branch 'develop' into feat/eoa-twap-order-tracker
Danziger Aug 4, 2026
f8290ba
chore(i18n): extract i18n strings [automatic]
cowswap-release-sync[bot] Aug 4, 2026
365f253
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Aug 4, 2026
284baac
feat: update multi expandable button hover styles
Danziger Aug 4, 2026
0ecdf22
Merge branch 'feat/eoa-twap-order-tracker' of github.com:cowprotocol/…
Danziger Aug 4, 2026
ab53e95
chore: merge develop
Danziger Aug 4, 2026
d8a5964
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Aug 4, 2026
b9642a8
fix: fix test
Danziger Aug 4, 2026
2c68566
Merge branch 'feat/eoa-twap-order-tracker' of github.com:cowprotocol/…
Danziger Aug 4, 2026
91e9b59
chore: merge develop and resolve conflicts
Danziger Aug 5, 2026
04b52be
Merge branch 'develop' into feat/eoa-twap-order-tracker
Danziger Aug 5, 2026
204842d
fix: fix unit test
Danziger Aug 5, 2026
693b771
Merge branch 'develop' into feat/eoa-twap-order-tracker
Danziger Aug 5, 2026
b4a77a7
chore: merge develop and resolves conflicts
Danziger Aug 7, 2026
5f0f156
fix: fix minor styling issue in StepItem
Danziger Aug 7, 2026
7aa4323
fix: fix buildEoaTwapConfirmationPendingSteps params
Danziger Aug 7, 2026
eac5975
chore(i18n): extract i18n strings [automatic]
cowswap-release-sync[bot] Aug 7, 2026
e1615d4
feat: extract reusable logic related to approvals
Danziger Aug 7, 2026
99d44e6
Merge branch 'feat/eoa-twap-order-tracker' of github.com:cowprotocol/…
Danziger Aug 7, 2026
5154fb1
Merge branch 'develop' into feat/eoa-twap-order-tracker
Danziger Aug 10, 2026
a5a50b1
feat: add TWAP trade summary and token info to stepper header
Danziger Aug 10, 2026
00cbcc9
chore(i18n): extract i18n strings [automatic]
cowswap-release-sync[bot] Aug 11, 2026
b4e430b
Merge branch 'develop' into feat/eoa-twap-order-tracker
Danziger Aug 11, 2026
3141dc9
fix: fix deadlinePartsDisplay pluralization
Danziger Aug 11, 2026
33c62d2
chore(i18n): extract i18n strings [automatic]
cowswap-release-sync[bot] Aug 11, 2026
63f0b2a
Merge branch 'feat/eoa-twap-order-tracker' into feat/eoa-twap-order-t…
Danziger Aug 11, 2026
3325bed
feat: keep trade details collapsed but visible in tracker view
Danziger Aug 11, 2026
28fca36
chore(i18n): extract i18n strings [automatic]
cowswap-release-sync[bot] Aug 11, 2026
192f68e
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Aug 11, 2026
7ebef2c
feat: improve close/back icons and add transitions to token logos
Danziger Aug 11, 2026
ff5f023
Merge branch 'feat/eoa-twap-order-tracker-continuation' of github.com…
Danziger Aug 11, 2026
709c1e2
fix: fix missing border in setting panels in light theme
Danziger Aug 11, 2026
84195d7
chore: merge develop and resolve conflicts
Danziger Aug 12, 2026
50a07cc
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Aug 12, 2026
1862c8f
feat: reorg TwapConfirmModal to have a common header, amounts, order …
Danziger Aug 12, 2026
e6f454f
Merge branch 'feat/eoa-twap-order-tracker-continuation' of github.com…
Danziger Aug 12, 2026
eeaf10e
chore(i18n): extract i18n strings [automatic]
cowswap-release-sync[bot] Aug 12, 2026
c2c67d4
feat: add animation util to use later
Danziger Aug 12, 2026
65c420a
Merge branch 'feat/eoa-twap-order-tracker-continuation' of github.com…
Danziger Aug 12, 2026
5b92c37
Merge branch 'develop' into feat/eoa-twap-order-tracker-continuation
Danziger Aug 12, 2026
07775ce
chore: remove debug transitions and styling
Danziger Aug 13, 2026
74bdb7b
Merge branch 'feat/eoa-twap-order-tracker-continuation' of github.com…
Danziger Aug 13, 2026
70a02c9
feat: remove unused component
Danziger Aug 13, 2026
1b2c5df
feat: remove unused component
Danziger Aug 13, 2026
79fb20a
fix: remove unused element
Danziger Aug 13, 2026
5f18af4
chore(i18n): extract i18n strings [automatic]
cowswap-release-sync[bot] Aug 13, 2026
086ecfa
chore: update bundle sizes [automatic]
cowswap-release-sync[bot] Aug 13, 2026
332adac
feat: use transition util in TokenLogo
Danziger Aug 13, 2026
3ed79b5
Merge branch 'feat/eoa-twap-order-tracker-continuation' of github.com…
Danziger Aug 13, 2026
b1a027f
fix: fix border that's not visible
Danziger Aug 13, 2026
26c660e
fix: fix module imports and incorrect aria-expanded value
Danziger Aug 13, 2026
2ab030a
fix: add type button to IconButton
Danziger Aug 13, 2026
a00e042
fix: require aria-label for IconButton
Danziger Aug 13, 2026
1ea7e5f
fix: add focus-visible styles to IconButton
Danziger Aug 13, 2026
bccf743
Merge branch 'develop' into feat/eoa-twap-order-tracker-continuation
Danziger Aug 13, 2026
cc59207
chore(i18n): extract i18n strings [automatic]
cowswap-release-sync[bot] Aug 13, 2026
ae683ed
fix: extract shared type to its own .types.ts file
Danziger Aug 13, 2026
3cb9b7b
fix: fix CurrencyAmountPreview styles to match Figma and update font-…
Danziger Aug 14, 2026
3b219dc
fix: fix steps not expanding
Danziger Aug 14, 2026
918a5ff
fix: update ModalHeader back/close button colors and sizing to match …
Danziger Aug 14, 2026
52305c4
fix: remove quote countdown bold
Danziger Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions apps/cowswap-frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@
"@wagmi/core": "3.4.8",
"bignumber.js": "9.1.2",
"buffer": "6.0.3",
"clsx": "2.1.1",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've installed clsx and started using classes to avoid relaying so much on styled component's transient props. This should make an eventual migration to CSS modules or other alternatives easier and also improve performance as CSS styles won't have to be recreated at runtime when props change.

"color2k": "2.0.2",
"csstype": "3.1.3",
"dayjs": "1.11.10",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1 @@
export { ConfirmationPendingContent } from './ConfirmationPendingContent'
export { MultiConfirmationPendingContent } from './multi/MultiConfirmationPendingContent'
export type {
MultiConfirmationPendingStep,
MultiConfirmationPendingStepStatus,
} from './multi/MultiConfirmationPendingContent'

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ import { ReactNode } from 'react'

import { Currency, CurrencyAmount } from '@cowprotocol/currency'
import { TokenLogo } from '@cowprotocol/tokens'
import { TokenAmount } from '@cowprotocol/ui'

import { Nullish } from 'types'

import { PriceImpact } from 'legacy/hooks/usePriceImpact'

import * as styledEl from './styled'

import { FiatValue } from '../FiatValue'
const TOKEN_LOGO_SIZE = 42

export type CurrencyAmountPreviewVariant = 'default' | 'slim'

export interface CurrencyPreviewInfo {
amount: Nullish<CurrencyAmount<Currency>>
Expand All @@ -20,6 +21,7 @@ export interface CurrencyPreviewInfo {
}

export interface CurrencyPreviewProps extends Partial<BuiltItProps> {
variant?: CurrencyAmountPreviewVariant

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Figma designs have a "slim" version of this component. There's a smooth transition between one variant and the other.

id: string
currencyInfo: CurrencyPreviewInfo
isBridging?: boolean
Expand All @@ -30,24 +32,31 @@ interface BuiltItProps {
className: string
}

export function CurrencyAmountPreview(props: CurrencyPreviewProps): ReactNode {
const { id, currencyInfo, className, priceImpactParams, isBridging } = props
export function CurrencyAmountPreview({
variant = 'default',
id,
currencyInfo,
className,
priceImpactParams,
isBridging,
}: CurrencyPreviewProps): ReactNode {
const { fiatAmount, amount } = currencyInfo
const topLabel = currencyInfo.label
const currency = amount?.currency
const containerClassName = [className, variant === 'slim' ? 'slim' : null].filter(Boolean).join(' ')

return (
<styledEl.Container id={id} className={className}>
<styledEl.Container id={id} className={containerClassName}>
<div>{topLabel}</div>
<div>
<styledEl.TokenLogoWrapper>
<TokenLogo token={currency} size={42} />
<TokenLogo token={currency} size={TOKEN_LOGO_SIZE} />
</styledEl.TokenLogoWrapper>
</div>
<styledEl.Amount>
<TokenAmount className="token-amount-input" amount={amount} tokenSymbol={currency} />
<FiatValue fiatValue={fiatAmount} priceImpactParams={priceImpactParams} isBridging={isBridging} />
</styledEl.Amount>
<styledEl.Amounts>
<styledEl.Amount className="token-amount-input" amount={amount} tokenSymbol={currency} />
<styledEl.FiatAmountSlot fiatValue={fiatAmount} priceImpactParams={priceImpactParams} isBridging={isBridging} />
</styledEl.Amounts>
</styledEl.Container>
)
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
import { Media, UI } from '@cowprotocol/ui'
import { TokenAmount, Media, UI, slowTransition } from '@cowprotocol/ui'

import styled from 'styled-components/macro'

import { FiatValue } from '../FiatValue'

export const TOKEN_SIZE_DEFAULT = 42
Comment thread
coderabbitai[bot] marked this conversation as resolved.
export const TOKEN_SIZE_SLIM = 32

export const Container = styled.div`
padding: 24px 12px;
width: 100%;
Expand All @@ -12,25 +17,44 @@ export const Container = styled.div`
text-align: center;
display: flex;
flex-direction: column;
gap: 20px;
gap: 12px;
transition: ${slowTransition(['padding', 'gap'])};

${Media.upToSmall()} {
font-size: 13px;
letter-spacing: -0.1px;
}

&.slim {
padding: 8px 12px;
gap: 8px;
}
`

export const Amount = styled.div`
font-size: 15px;
font-weight: 600;
export const Amounts = styled.div`
display: flex;
flex-flow: column wrap;
gap: 6px;
`

// Targets FiatValue
> div {
font-weight: 500;
font-size: 13px;
export const Amount = styled(TokenAmount)`
font-size: 15px;
font-weight: 600;
`

export const FiatAmountSlot = styled(FiatValue)`
display: block;
font-weight: 500;
font-size: 13px;
max-height: 2.5em;
opacity: 1;
overflow: hidden;
transition: ${slowTransition(['max-height', 'opacity', 'margin-top'])};

${Container}.slim & {
max-height: 0;
opacity: 0;
margin-top: -6px;
}
`

Expand Down
Loading
Loading