On many popular social media, opening a post will update the URL but won't trigger a navigation and will instead display the content inside a modal. This behavior ensures the user won't lose the current UI context (scroll position). The URL still reflect the post's actual page location and any refresh will bring the user there. This behavior ensures great UX without neglecting SEO.
This example shows how to conditionally display a modal based on a route.
Deploy the example using Vercel or preview live with StackBlitz
Execute create-next-app
with npm, Yarn, or pnpm to bootstrap the example:
npx create-next-app --example with-route-as-modal with-route-as-modal-app
yarn create next-app --example with-route-as-modal with-route-as-modal-app
pnpm create next-app --example with-route-as-modal with-route-as-modal-app
Deploy it to the cloud with Vercel (Documentation).