Skip to content

Details page for Dapp#3513

Merged
tom2drum merged 9 commits into
mainfrom
tom2drum/issue-3492
Jun 4, 2026
Merged

Details page for Dapp#3513
tom2drum merged 9 commits into
mainfrom
tom2drum/issue-3492

Conversation

@tom2drum
Copy link
Copy Markdown
Collaborator

@tom2drum tom2drum commented Jun 4, 2026

Description and Related Issue(s)

Resolves #3492

Adds a dedicated marketplace dapp info page at /apps/[id]/info, opened from the "Info" link on app cards and search results. Replaces the previous in-list modal with a full page that shows app metadata, ratings, favorites, graph links, and launch/disclaimer flow.

Refactors marketplace data loading (useAppQuery, useFavoriteApps) and moves JSON-LD structured data into feature-specific builders (dapp info, token) with a shared shell metadata helper and schema-dts types. Includes the top 50 dapp info URLs in the sitemap when marketplace is enabled.

Proposed Changes

  • New MarketplaceAppInfoPage and routes (/apps/[id]/info, shared GSSP with dapp view)
  • Remove MarketplaceAppModal; wire "Info" links to the new page
  • Dapp and token SoftwareApplication / product structured data; remove generic product schema from shell metadata
  • Sitemap generator: fetch marketplace dapps and add /apps/{id}/info entries (priority-sorted, max 50)
  • Visual tests for the info page; remove modal Playwright tests
  • Dev dependency: schema-dts

Breaking or Incompatible Changes

None. The modal UX is replaced by a navigable page; deep links use /apps/[id]/info.

Additional Information

Figma mockup

Checklist for PR author

  • I have tested these changes locally.
  • I added tests to cover any new functionality, following this guide
  • Whenever I fix a bug, I include a regression test to ensure that the bug does not reappear silently.
  • If I have added a feature or functionality that is not privacy-compliant (e.g., tracking, analytics, third-party services), I have disabled it for private mode.
  • If I have added, changed, renamed, or removed an environment variable
    • I updated the list of environment variables in the documentation
    • I made the necessary changes to the validator script according to the guide
    • I added "ENVs" label to this pull request

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 4, 2026

Important

Review skipped

Auto reviews are disabled on this repository. To trigger a review, include @coderabbitai review in the PR description. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e0927329-434b-44f3-a0e6-b7c84a8de262

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@tom2drum tom2drum added the dependencies Pull requests that update a dependency file label Jun 4, 2026
@tom2drum tom2drum requested a review from Copilot June 4, 2026 10:00
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a dedicated Marketplace Dapp “Info” page (/apps/[id]/info) and migrates the previous in-list modal experience to a full page, while also refactoring Marketplace data loading and moving JSON-LD structured data generation into feature-specific builders (token + dapp info) with schema-dts types. Also updates routing/linking to point to the new info page and includes up to 50 dapp info URLs in the sitemap when Marketplace is enabled.

Changes:

  • Introduces /apps/[id]/info page + shared GSSP logic; updates search/marketplace links to open the new info page instead of a modal/query-param flow.
  • Refactors Marketplace data fetching into hooks (useAppQuery, useFavoriteApps) and updates Marketplace UI components accordingly; removes the modal + its Playwright tests.
  • Reworks structured-data generation: token Product schema and dapp info WebApplication schema using schema-dts; updates sitemap generator to include dapp info URLs.

Reviewed changes

Copilot reviewed 45 out of 52 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/slices/token/structured-data/token.ts Adds token Product JSON-LD builder using schema-dts.
src/slices/token/structured-data/token.spec.ts Adds snapshot test coverage for token structured data.
src/slices/token/structured-data/snapshots/token.spec.ts.snap Stores token schema snapshot.
src/slices/search/pages/search-results/SearchResultTableItem.tsx Updates marketplace app search-result link to /apps/[id]/info.
src/slices/search/pages/search-results/SearchResultListItem.tsx Updates marketplace app search-result link to /apps/[id]/info.
src/shell/metadata/update.ts Renames JSON-LD script tag id to be structured-data-generic.
src/shell/metadata/types.ts Replaces bespoke ProductSchema type with schema-dts-based union and updates marketplace ApiData typing.
src/shell/metadata/templates/title.ts Adds title templates for /apps/[id]/info and updates app template placeholders.
src/shell/metadata/templates/description.ts Adds description template for /apps/[id]/info.
src/shell/metadata/structured-data/index.ts Centralizes structured-data generation routing (token + dapp info).
src/shell/metadata/get-page-og-type.ts Registers OG type for /apps/[id]/info.
src/shell/metadata/generate.ts Switches metadata generation to use the new structured-data generator.
src/shell/metadata/generate.spec.ts Removes token structured-data expectations from metadata snapshot tests.
src/shell/metadata/generate-product-schema.ts Removes legacy token Product schema generator from shell metadata.
src/shell/metadata/snapshots/generate.spec.ts.snap Updates metadata snapshots after removing embedded token schema.
src/services/mixpanel/get-page-type.ts Adds Mixpanel page type mapping for /apps/[id]/info.
src/server/nextjs-routes.d.ts Adds typed route for /apps/[id]/info.
src/server/getServerSideProps/routes/apps/id.ts Shares GSSP for /apps/[id] and /apps/[id]/info and provides bot OG data via full MarketplaceApp API data.
src/pages/apps/[id]/info.tsx Adds Next.js page entry for the new Marketplace app info page.
src/pages/apps/[id]/index.tsx Restores /apps/[id] page entry after moving GSSP out of the route module.
src/features/marketplace/utils/disclaimer-modal.ts Extracts disclaimer localStorage helpers into a shared utility.
src/features/marketplace/types/client.ts Converts marketplace app type aliases into interfaces to support extension/typing usage.
src/features/marketplace/structured-data/dapp-info.ts Adds dapp info WebApplication structured-data builder.
src/features/marketplace/structured-data/dapp-info.spec.ts Adds snapshot tests for dapp info structured data.
src/features/marketplace/structured-data/snapshots/dapp-info.spec.ts.snap Stores dapp info schema snapshots.
src/features/marketplace/pages/index/MarketplaceList.tsx Removes modal “info” plumbing; delegates info navigation to cards/links.
src/features/marketplace/pages/index/MarketplaceAppModal.tsx Removes the legacy in-list app details modal.
src/features/marketplace/pages/index/MarketplaceAppModal.pw.tsx Removes Playwright visual tests for the removed modal.
src/features/marketplace/pages/index/MarketplaceAppIntegrationIcon.tsx Adds loading support to integration icon rendering.
src/features/marketplace/pages/index/MarketplaceAppGraphLinks.tsx Adds loading support to graph links icon rendering.
src/features/marketplace/pages/index/MarketplaceAppCard.tsx Changes “Info” from modal trigger to navigation link to /apps/[id]/info and keeps analytics logging.
src/features/marketplace/pages/index/Marketplace.tsx Removes modal usage; uses disclaimer helper and keeps disclaimer flow.
src/features/marketplace/pages/index/banner/FeaturedAppMobile.tsx Updates “More info” navigation to /apps/[id]/info.
src/features/marketplace/pages/index/banner/FeaturedApp.tsx Updates “More info” navigation to /apps/[id]/info and removes modal wiring.
src/features/marketplace/pages/index/banner/Banner.tsx Removes modal “info” callback prop from banner composition.
src/features/marketplace/pages/dapp/MarketplaceApp.tsx Refactors app loading to useAppQuery and updates metadata update payload to full MarketplaceApp.
src/features/marketplace/pages/dapp-info/MarketplaceAppInfoPage.tsx Adds the new full-page Marketplace app info UI + metadata/disclaimer/favorite/rating wiring.
src/features/marketplace/pages/dapp-info/MarketplaceAppInfoPage.pw.tsx Adds Playwright visual test for the new info page.
src/features/marketplace/hooks/useMarketplaceApps.tsx Refactors sorting/filtering and query selection logic for marketplace apps.
src/features/marketplace/hooks/useMarketplace.tsx Removes modal query-param flow and redirects legacy selectedAppId to the new info route.
src/features/marketplace/hooks/useFavoriteApps.ts Introduces a hook to centralize favorites localStorage + Mixpanel logic.
src/features/marketplace/hooks/useAppQuery.ts Introduces a hook to centralize single-app loading for Marketplace app + info pages.
src/features/marketplace/components/SearchBarSuggestApp.tsx Updates search suggestion navigation to the new info page route.
src/features/marketplace/components/MarketplaceDisclaimerModal.tsx Uses extracted disclaimer setter and enables lazy mount/unmount.
pnpm-lock.yaml Locks schema-dts dependency.
package.json Adds schema-dts dev dependency.
deploy/tools/sitemap-generator/next-sitemap.config.js Fetches marketplace dapps and adds up to 50 /apps/{id}/info entries to sitemap output.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/features/marketplace/pages/dapp-info/MarketplaceAppInfoPage.tsx
Comment thread src/features/marketplace/hooks/useMarketplaceApps.tsx Outdated
Comment thread deploy/tools/sitemap-generator/next-sitemap.config.js
@tom2drum tom2drum changed the title Details page for Dapp (#3492) Details page for Dapp Jun 4, 2026
@tom2drum tom2drum merged commit eef85b6 into main Jun 4, 2026
12 checks passed
@tom2drum tom2drum deleted the tom2drum/issue-3492 branch June 4, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Details page for Dapp

2 participants