feat: point navbar shop menu at the shop and restore explore label - #463
Conversation
decentraland-bot
left a comment
There was a problem hiding this comment.
Review Summary
Verdict: ✅ Approve
Clean, focused PR that does exactly two things well:
1. Shop menu re-pointed to /shop
The navbar Shop dropdown now links to the new shop (SHOP_URL) instead of the legacy marketplace. The new SHOP_URL config key is added to all three environment files (dev.json, stg.json, prod.json) following the same domain convention (.zone / .today / .org) used by every other URL in the config system. URL patterns are simpler than before (/items?category=X vs the old /browse?assetType=item§ion=X&status=on_sale).
LAND correctly stays on MARKETPLACE_LANDS_URL since the shop has no LAND category — good call, and the inline comment explaining the reasoning is helpful.
2. "Explore" label restored
The whatsOn default string is changed from "What's On" back to "Explore", fixing a regression introduced by #453. The i18n key (whatsOn) and the activePage union value are both preserved, so every existing consumer keeps working without changes.
Checks performed
- Backward compatibility — Public API (
NavbarProps,NavbarI18n,activePagevalues) is unchanged. Consumers can still override the label viai18n={{ whatsOn: "Custom" }}. No breaking changes. - Consumer impact —
@dcl/ui2is consumed by downstream dApps (builder, marketplace, etc). The URLs are internal to the component; consumers don't read them directly.MARKETPLACE_NAMES_URLis kept in env files for any other consumers that may rely on it. - Type safety — All i18n labels match the
NavbarI18ntype.MenuConfigandMenuItemstructures are consistent. - Security — No secrets, no auth changes, no user input in URL construction. All URLs are static first-party domains. No open redirect or XSS vectors.
- Architecture — Follows the existing lazy-singleton config pattern. Clean separation of concerns.
- Git conventions — PR title (
feat: ...) and branch name (feat/...) follow semantic commit format.
No P0 or P1 issues found. No P2 issues either — this is a clean, well-scoped change.
Reviewed by Jarvis 🤖 · Requested by juanmahidalgo via GitHub
Deploying ui2 with
|
| Latest commit: |
6e580d9
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://c29d0d67.ui2-423.pages.dev |
| Branch Preview URL: | https://feat-navbar-shop-urls-and-ex.ui2-423.pages.dev |
Changes
decentraland.org/shop) instead of the legacy marketplace. NewSHOP_URLconfig key added todev/stg/prodso it resolves per environment (.zone/.today/.org), matching how the other URLs work.${SHOP_URL}${SHOP_URL}/items?category=wearable${SHOP_URL}/items?category=emote${SHOP_URL}/items?category=namesMARKETPLACE_LANDS_URL.Explorelabel. fix: rename What's On navbar label to Explore #427 renamed it from "What's On" back in April, but feat: add creator documentation link to navbar create menu #453 reintroduced the old string while adding the creator-documentation link, so the rename was silently undone and shipped in 3.15.0.The
whatsOnkey itself is untouched — only the visible label changes, soactivePage="whatsOn"and every existing consumer keep working (same approach #427 took).MARKETPLACE_NAMES_URLis no longer read by the navbar but is kept in the env files: it is public config surface other consumers may rely on.Notes
The
?category=params match the shop's own filter contract — its/itemsroute reads every filter from the URL, andall | wearable | emote | namesare the category keys it accepts.statusis omitted because the shop already defaults toon_sale.Test plan
npm run format,npm run lint:fix,npm run lint:package-json,npm run build,npm test(37 passing)Explorein the Storybook navbar stories