Skip to content

Feat: migrate yearnx#1062

Draft
rossgalloway wants to merge 12 commits into
mainfrom
feat-migrate-yearnx
Draft

Feat: migrate yearnx#1062
rossgalloway wants to merge 12 commits into
mainfrom
feat-migrate-yearnx

Conversation

@rossgalloway

@rossgalloway rossgalloway commented Feb 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR migrates the Yearn X partner experiences into yearn.fi and unifies them on the existing vaults UI. It
introduces a typed partner registry/config system, reusable partner typemark components, partner-specific theming, and
partner-aware filtering behavior.

What Changed

  1. Partner routes and hub page
    src/routes.tsx.
  • Added a new /partners hub page (src/components/pages/partners/index.tsx) with branded tiles for each partner
    plus “All Yearn Vaults”.
  • Updated landing partner links to route internally to these new pages (src/components/pages/landing/components/ sections/Partners.tsx).
  1. Partner registry and typed config model
  • Added partner registry + slug helpers in src/components/shared/partners/registry.ts.
  • Added partner-specific config files under src/components/shared/partners/configs/*.
  • Added path resolver + tests:
    • src/components/shared/partners/resolvePartnerFromPath.ts
    • src/components/shared/partners/resolvePartnerFromPath.test.ts
  1. Partner vault filtering system
  • Added partner filter utils and partner-specific vault matchers:
    • src/components/shared/partners/is*VaultListItem.ts
  • Added tests for partner filter behavior:
    • src/components/shared/partners/partnerVaultFilters.test.ts
    • src/components/shared/partners/isKatanaVaultListItem.test.ts
  • Integrated partner filtering into vault fetch pipeline in src/components/shared/hooks/useFetchYearnVaults.ts.
  1. App-level partner awareness (meta + theme context)
  • useCurrentApp now resolves partner manifests and supports /partners metadata:
    • src/components/shared/hooks/useCurrentApp.tsx
  • Added canonical support in meta component:
    • src/components/shared/components/Meta.tsx
  • App now sets data-partner="<slug>" on <html> for partner theme scoping and canonical handling:
    • src/App.tsx
  1. Partner theming and background styling
    - src/styles/partners.css
  • Imported partner stylesheet in global CSS:
    • style.css
  • Added partner-specific row/background treatment in vault list:
    • src/components/pages/vaults/components/list/VaultsListRow.tsx
    • src/components/pages/vaults/index.tsx
  1. Reusable typemark branding components
  • Added reusable typemark components:

    • src/components/shared/icons/TypeMarkYearnBadge.tsx
    • src/components/shared/icons/TypeMarkAerodrome.tsx
    • src/components/shared/icons/TypeMarkKatana.tsx
    • src/components/shared/icons/TypeMarkMorpho.tsx
    • src/components/shared/icons/TypeMarkPoolTogether.tsx
    • src/components/shared/icons/TypeMarkVelodrome.tsx
  • Partner branding element now renders <yearnTypemark> x <partnerTypemark> (replacing text label).

    • partnerTypemarkHeightPx, partnerTypemarkMaxWidthPx
    • partnerTypemarkOffsetXPx, partnerTypemarkOffsetYPx
  • Asset files added/updated under public/ (typemarks, logos, textures).

    • minTvl=0
    • showLegacy=1
    • showHidden=1
    • showStrategies=1
    • src/components/pages/vaults/hooks/useVaultsQueryState.ts
  • Reset behavior now returns to configured defaults (partner-aware).

  • URL serialization now writes boolean params only when non-default (0/1), enabling clean default URLs.

  • Chain options on partner pages are now constrained to chains that actually have matching vaults under the current
    filter set.

  • Unsupported chain selections are sanitized before applying list/filter state.

  • Type selector visibility is partner-aware (hidden where appropriate), and partner badge occupies selector slot when

Automated Validation Run

  • bun run lint
  • bun run tslint
  • `bun run test src/components/shared/partners/partnerVaultFilters.test.ts src/components/shared/partners/

Manual Test Plan

  • Visit /partners.
  • Confirm cards render for all partners and links navigate to /curve, /morpho, /katana, /aerodrome, / velodrome, /pooltogether.
  • Confirm each partner route loads the vaults page without errors.
  • On each partner route, confirm the branding element shows Yearn typemark x Partner typemark.
  • Confirm typemark sizing/offset appears as configured for each partner.
  • Visit /curve (or any partner page) with no query params.
  • Confirm URL remains clean (no default params shown).
  • Toggle one default-on boolean filter off (example: hidden off).
  • Confirm URL now includes explicit showHidden=0.
  • Toggle it back on.
  • Confirm showHidden param is removed again.
  • Change min TVL to non-zero.
  • Confirm minTvl=<value> appears in URL.
  • Reset filters.
  • Confirm URL returns to clean/default state.
  • Confirm chains with zero eligible vaults under current filters do not appear as selectable options.
  • Optional direct URL check:
  • Open /curve?chains=10&minTvl=0&showLegacy=1&showHidden=1&showStrategies=1
  • Confirm no crash and chain UI does not expose invalid chain options.

0xeye and others added 10 commits February 10, 2026 10:32
* feat: dedupe reused code

* chore: remove deadcode

* chore: lock and loaded

* chore: bump
* Fix: incorrect route error on factory vault deposit (#1055)

* fix error with factory vault showing unavailable route on deposit

* fix issue in review

---------

Co-authored-by: Ross <ross@yearn.finance>

* add automatic deposit pop-up

---------

Co-authored-by: Ross <ross@yearn.finance>
@vercel

vercel Bot commented Feb 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
yearnfi Ready Ready Preview, Comment Feb 13, 2026 1:59pm

Request Review

@github-actions

github-actions Bot commented Feb 11, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

0xeye
0xeye previously approved these changes Feb 13, 2026

@0xeye 0xeye left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM.

2 things:

  • do we want to link to partners page in the menu somewhere? I don't currently see it anywhere
  • noticed you've started added tests in. Imo tests aren't that useful for UI and should just be done for breaking math changes / checks. I think we can assume at this point the AI is one shotting it, and if not the assumption, then it will likely adjust the test to fit. Might be worth a wider discussion

@rossgalloway

Copy link
Copy Markdown
Collaborator Author
  • do we want to link to partners page in the menu somewhere? I don't currently see it anywhere

  • noticed you've started added tests in. Imo tests aren't that useful for UI and should just be done for breaking math changes / checks. I think we can assume at this point the AI is one shotting it, and if not the assumption, then it will likely adjust the test to fit. Might be worth a wider discussion

  • yes, definitely worth putting the partners page in the menu. will add that in a separate PR.
  • Codex likes the tests. I can just not include them in the PRs in the future.

@rossgalloway rossgalloway marked this pull request as draft February 13, 2026 14:08
Base automatically changed from dev to main February 26, 2026 15:06
@rossgalloway rossgalloway dismissed 0xeye’s stale review February 26, 2026 15:06

The base branch was changed.

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.

2 participants