From ea6ee6988c28991ecd9446ccc7a32dd41d93d3f5 Mon Sep 17 00:00:00 2001 From: Frank Rydzewski Date: Wed, 24 Jun 2026 09:32:01 -0500 Subject: [PATCH] fix: render MarketplaceModal via portal to escape ancestor stacking contexts --- apps/explorer/src/components/UserCard.tsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/explorer/src/components/UserCard.tsx b/apps/explorer/src/components/UserCard.tsx index 3496b54..c118d8d 100644 --- a/apps/explorer/src/components/UserCard.tsx +++ b/apps/explorer/src/components/UserCard.tsx @@ -1,6 +1,7 @@ 'use client'; import { useState, useEffect } from 'react'; +import { createPortal } from 'react-dom'; import { ChevronDown, ChevronUp, Clock, MapPin, Smartphone, Globe, Copy, Check, Store } from 'lucide-react'; import { DataRecord } from '@/types'; import { getDisplayName } from '@/data/names'; @@ -341,12 +342,10 @@ export default function UserCard({ user, index }: UserCardProps) { )} - {/* Marketplace Modal */} - {marketplaceOpen && ( - setMarketplaceOpen(false)} - /> + {/* Marketplace Modal — portaled to body to escape any ancestor stacking contexts */} + {marketplaceOpen && typeof document !== 'undefined' && createPortal( + setMarketplaceOpen(false)} />, + document.body )} {/* Expanded Content */}