Skip to content

feat(earn): pools and positions revamp#3056

Open
neikop wants to merge 128 commits intomainfrom
feat/earn-pool-position-revamp
Open

feat(earn): pools and positions revamp#3056
neikop wants to merge 128 commits intomainfrom
feat/earn-pool-position-revamp

Conversation

@neikop
Copy link
Copy Markdown
Collaborator

@neikop neikop commented Apr 10, 2026

No description provided.

tienkane and others added 30 commits March 17, 2026 15:45
- Restyle table header and rows with theme tokens, inset borders via
  ::after pseudo-elements, and rounded corners
- Consolidate position protocol info into single badge (dex | fee | #id)
- Move status badge inline with token pair name
- Update pagination styling with subtle background and rounded corners
- Rename page title to 'My Liquidity Positions' and button to 'Claim All'
- Fix actions info helper icon alignment
…I components

  Restructure position detail into two-column layout with tab navigation
  (Information, Earnings, History). Add EarningsTab with charts, HistoryTab
  with transaction history, and InformationTab extracted from RightSection.
  Update styled components to match new design (DarkCard, CompactPriceBox,
  ClaimButton, TabMenu). Extend PositionHistory API types with transaction
  details and new history types (WITHDRAW, COLLECT_FEE).
  Add onReady callback to LiquidityChart that fires when ticksAtLimit is
  computed. InformationTab now renders chart hidden until ready, preventing
  a layout jump between skeleton disappearing and chart appearing.
  in position detail
The revamp accidentally dropped the secondary action link that appears above the main action buttons, showing 'Reposition to new range' when in-range or 'Increase Liquidity' when out-of-range.
…ling

  Introduce PositionDetailContext and provider to share position state across PositionDetail sub-components (Header, LeftSection, RightSection, InformationTab, EarningsTab, HistoryTab, RewardSection) instead of passing 15+ props through multiple levels. Also stabilize callbacks with useCallback/useMemo to reduce unnecessary re-renders.
…oning

Replace hardcoded width/position (60%/80%/100%) with tick-based logarithmic
scale for accurate proportional display. Narrow ranges (stablecoins) now
appear visually narrower than wide ranges. Add smart price formatter that
adapts significant digits based on the difference between min/max prices
(e.g. 1.0003 vs 1.0007 shows full precision, 595.49 vs 716.42 stays concise).
Fix balance column text overflow with min-width: 0 on grid cells.
Replace the binary green/purple color logic with smooth RGB interpolation
based on the indicator's position on the range bar, matching the gradient.
Add max-width and text-overflow ellipsis to the protocol badge
(dex name, fee tier, position ID) to prevent long labels from
pushing other columns. Full text is shown on hover via tooltip.
…position list

- Consolidate useKemRewards from 3 calls to 1 on UserPositions page
- Remove duplicate useZapMigrationWidget from TableContent
- Fix handleFetchUnclaimedFee stale closure with functional updater
- Memoize onSortChange and updateFiltersWithLoading callbacks
- Skip interval timer when feeInfoFromRpc is empty
- Remove unused positions prop from PositionBanner
- Add RefetchIndicator progress bar during background data polling
- Add staggered fade-in animation for position rows on load/filter
- Add AnimatedNumber component with roll transition on value changes
- Apply animated numbers to banner stats and table row values
- Respect prefers-reduced-motion for all animations
- Conditionally pause RefetchIndicator animation when hidden
…page

- Add fadeIn/slideDown animations to page enter, tab switch, dropdown,
  migration banner, and chart reveal
- Replace static numbers with AnimatedNumber roll transitions for fees,
  liquidity, APR, and reward values (consistent with position list)
- Fix ClaimButton disabled guards to explicitly check for undefined position
- Simplify RewardSection ClaimButton onClick to remove redundant guards
Try to implement

Shadow liquidity widget UI

Continue

Refactor

Chore

Refactor add liquidity UI

Route preview

Information tab layout

Apr chart first look

Continue

Try improve

Update review modal

Refactor add liquidity

Continue

Update packages typesVersions

Update import

Add useFeedback

Continue

Refactor hooks

Minor logic components

Refactor components

Continue

Continue

Just push but no verify

Skeleton responsive

Continue

Update TokenSelector sort behavior

Chore

Refactor Information tab

Refactor

Chore fix

Chore

Update review modal

Cont update TokenSelector

Chore

Improve logic REviewModal

Improve review modal

Continue

Analytics first look
- Added VITE_ZAP_API_URL to environment configuration.
- Updated AddLiquidityWidget to handle multiple route warnings.
- Refactored EstimatedPositionApr to use new zapEarn service for APR estimation.
- Simplified ZapInfo component by removing unused pool token price function.
- Updated ReviewModal to use new zap service for building zap routes.
- Refactored useReviewTransaction to utilize new zap service.
- Cleaned up AddLiquidity context by removing unnecessary types.
- Enhanced useFeedback hook to manage multiple honeypot checks.
- Updated useZapPool to fetch token metadata using new service.
- Refactored useZapState to handle route queries with new API structure.
- Updated AddLiquidity component to build zap routes using new request format.
- Cleaned up utility functions in AddLiquidity to remove unused code.
- Added new zap service for handling zap-related API calls.
- Removed deprecated zapInService and integrated its functionality into the new zap service.
- Updated Redux store configuration to include new zap service.

Chore

Chore, readme

Fix your share <0.01%
Fix pnpm lock
Update charts

Update loading

Add Skeleton

Update loading skeleton
tienkane and others added 20 commits April 7, 2026 14:01
…llModal

- Add KS Rewards / Bonus tabs to ClaimAllModal with controlled tab state
- Implement on-chain Merkl distributor claim via useClaimMerklRewards hook
- Fetch Merkl API per-chain individually to avoid single unsupported chain
  failing the entire request
- Track Merkl claim txs via pendingClaims and refetch rewards on confirmation
- Group Merkl rewards by chain (chainRewards) in useMerklRewards
- Replace hardcoded hex colors with theme tokens in ClaimAllModal styles
…nimation

Replace the thin ProgressBar shimmer with a sliding RefetchIndicator
that completes its current animation cycle before fading out, matching
the position page loading pattern.

fix(earn): ensure consistent cleanup return in RefetchIndicator useEffect
Remove Uniswap-only restriction for Merkl bonus rewards - now all
protocols and non-farming positions can receive Merkl incentives.
Add campaignRewards grouping by protocol name from Merkl API breakdowns,
CampaignRewardInfo type, and updated reward tooltips across position
detail, pool explorer, and user positions views.
Replace generic AprDetailTooltip with PositionAprTooltip on position
detail page, showing per-campaign APR breakdown (EG, LM, Merkl campaigns)
with protocol icons. Also clean up useMerklRewards by removing console.log
and unused 'rewards' return field.
…tions-revamp"

This reverts commit 7551820, reversing
changes made to 295e9d8.
…tions-revamp"

This reverts commit 295e9d8, reversing
changes made to 78e74c6.
…ocol filter

Add max-height and overflow-y scroll to DropdownMenu content. Show animated
chevron up/down indicators when more items are available above or below the
visible area. Indicators animate height and opacity for smooth transitions.
@kyber-ci-bot
Copy link
Copy Markdown

Auto Deploy Pull Request

ADPR instance has been created!

Information

@kyber-ci-bot
Copy link
Copy Markdown

Auto Deploy Pull Request

⚠️ Warning: Application's Ingress not ready after 1m0s

Notes:

  • Please contact SRE team to support investigate this issue.

@kyber-ci-bot
Copy link
Copy Markdown

Auto Deploy Pull Request

⚠️ Warning: Application's Ingress not ready after 1m0s

Notes:

  • Please contact SRE team to support investigate this issue.

@kyber-ci-bot
Copy link
Copy Markdown

Auto Deploy Pull Request

⚠️ Warning: Application's Ingress not ready after 1m0s

Notes:

  • Please contact SRE team to support investigate this issue.

@kyber-ci-bot
Copy link
Copy Markdown

Auto Deploy Pull Request

⚠️ Warning: Application's Ingress not ready after 1m0s

Notes:

  • Please contact SRE team to support investigate this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants