mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-06-12 15:31:09 +00:00
fix(mobile): comprehensive mobile UI redesign for better UX
- Header: icon-only wallet button on mobile, fix hamburger overflow - Dashboard: responsive tabs with flex-wrap and smaller text - Citizens: responsive ID card layout, stack NFT badges on mobile - BeCitizen: stack header buttons vertically on mobile - GovernanceInterface: add scrollable tabs - DEXDashboard: responsive admin buttons grid (2 cols on mobile) - P2PDashboard: responsive header and scrollable tabs - Dialog: mobile-first sizing with proper padding and max-height - Tabs UI: base responsive classes for all tab components - Add xs:480px breakpoint and scrollbar-hide utility - Fix vite polyfills config to prevent initialization errors
This commit is contained in:
@@ -27,11 +27,11 @@ const BeCitizen: React.FC = () => {
|
||||
<div className="min-h-screen bg-gradient-to-br from-green-700 via-white to-red-600">
|
||||
<div className="container mx-auto px-4 py-16">
|
||||
{/* Back to Home Button and Invite Friend */}
|
||||
<div className="mb-8 flex justify-between items-center">
|
||||
<div className="mb-8 flex flex-col sm:flex-row gap-3 sm:justify-between sm:items-center">
|
||||
<Button
|
||||
onClick={() => navigate('/')}
|
||||
variant="outline"
|
||||
className="bg-red-600 hover:bg-red-700 border-yellow-400 border-2 text-white font-semibold shadow-lg"
|
||||
className="w-full sm:w-auto bg-red-600 hover:bg-red-700 border-yellow-400 border-2 text-white font-semibold shadow-lg"
|
||||
>
|
||||
<ArrowLeft className="mr-2 h-4 w-4" />
|
||||
Back to Home
|
||||
@@ -39,7 +39,7 @@ const BeCitizen: React.FC = () => {
|
||||
|
||||
<Button
|
||||
onClick={() => setIsInviteModalOpen(true)}
|
||||
className="bg-green-600 hover:bg-green-700 border-yellow-400 border-2 text-white font-semibold shadow-lg"
|
||||
className="w-full sm:w-auto bg-green-600 hover:bg-green-700 border-yellow-400 border-2 text-white font-semibold shadow-lg"
|
||||
>
|
||||
<UserPlus className="mr-2 h-4 w-4" />
|
||||
Invite Friend
|
||||
|
||||
+10
-10
@@ -470,7 +470,7 @@ export default function Citizens() {
|
||||
</div>
|
||||
|
||||
{/* Main Content Area */}
|
||||
<div className="absolute top-16 bottom-10 left-0 right-0 px-5 flex">
|
||||
<div className="absolute top-16 bottom-10 left-0 right-0 px-5 flex flex-col sm:flex-row">
|
||||
|
||||
{/* Left Section - Photo */}
|
||||
<div className="w-1/4 flex flex-col items-center justify-center">
|
||||
@@ -550,20 +550,20 @@ export default function Citizens() {
|
||||
</div>
|
||||
|
||||
{/* Right Section - NFT & ID Numbers */}
|
||||
<div className="w-1/4 flex flex-col justify-center items-center space-y-2">
|
||||
<div className="w-full sm:w-1/4 flex flex-row sm:flex-col justify-center items-center gap-2 sm:space-y-2 mt-2 sm:mt-0">
|
||||
{/* NFT Badge */}
|
||||
<div className="bg-gradient-to-br from-green-700 to-green-900 rounded-xl p-3 text-center shadow-lg w-full max-w-[110px]">
|
||||
<div className="text-[9px] text-green-200 font-medium uppercase tracking-wider">NFT ID</div>
|
||||
<div className="text-white font-bold text-sm mt-1">
|
||||
<div className="bg-gradient-to-br from-green-700 to-green-900 rounded-xl p-2 sm:p-3 text-center shadow-lg flex-1 sm:w-full sm:max-w-[110px]">
|
||||
<div className="text-[8px] sm:text-[9px] text-green-200 font-medium uppercase tracking-wider">NFT ID</div>
|
||||
<div className="text-white font-bold text-xs sm:text-sm mt-1">
|
||||
{nftDetails.citizenNFT ? `#${nftDetails.citizenNFT.collectionId}-${nftDetails.citizenNFT.itemId}` : 'N/A'}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Citizen Number Badge */}
|
||||
<div className="bg-gradient-to-br from-red-700 to-red-900 rounded-xl p-3 text-center shadow-lg w-full max-w-[110px]">
|
||||
<div className="text-[9px] text-red-200 font-medium uppercase tracking-wider">Hejmara Welatî</div>
|
||||
<div className="text-[8px] text-red-300 mb-1">Citizen No</div>
|
||||
<div className="text-white font-bold text-[11px]">
|
||||
<div className="bg-gradient-to-br from-red-700 to-red-900 rounded-xl p-2 sm:p-3 text-center shadow-lg flex-1 sm:w-full sm:max-w-[110px]">
|
||||
<div className="text-[8px] sm:text-[9px] text-red-200 font-medium uppercase tracking-wider">Hejmara Welatî</div>
|
||||
<div className="text-[7px] sm:text-[8px] text-red-300 mb-1">Citizen No</div>
|
||||
<div className="text-white font-bold text-[10px] sm:text-[11px]">
|
||||
{nftDetails.citizenNFT ? `#${nftDetails.citizenNFT.collectionId}-${nftDetails.citizenNFT.itemId}-${citizenNumber}` : 'N/A'}
|
||||
</div>
|
||||
</div>
|
||||
@@ -571,7 +571,7 @@ export default function Citizens() {
|
||||
{/* Verified Badge */}
|
||||
<div className="flex items-center gap-1 bg-white/90 rounded-full px-2 py-1 shadow">
|
||||
<ShieldCheck className="h-3 w-3 text-green-600" />
|
||||
<span className="text-[9px] font-semibold text-green-700">VERIFIED</span>
|
||||
<span className="text-[8px] sm:text-[9px] font-semibold text-green-700">VERIFIED</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -530,12 +530,12 @@ export default function Dashboard() {
|
||||
</div>
|
||||
|
||||
<Tabs defaultValue="profile" className="space-y-4">
|
||||
<TabsList>
|
||||
<TabsTrigger value="profile">Profile</TabsTrigger>
|
||||
<TabsTrigger value="roles">Roles & Tikis</TabsTrigger>
|
||||
<TabsTrigger value="referrals">Referrals</TabsTrigger>
|
||||
<TabsTrigger value="security">Security</TabsTrigger>
|
||||
<TabsTrigger value="activity">Activity</TabsTrigger>
|
||||
<TabsList className="flex flex-wrap gap-1">
|
||||
<TabsTrigger value="profile" className="text-xs sm:text-sm px-2 sm:px-3">Profile</TabsTrigger>
|
||||
<TabsTrigger value="roles" className="text-xs sm:text-sm px-2 sm:px-3">Roles & Tikis</TabsTrigger>
|
||||
<TabsTrigger value="referrals" className="text-xs sm:text-sm px-2 sm:px-3">Referrals</TabsTrigger>
|
||||
<TabsTrigger value="security" className="text-xs sm:text-sm px-2 sm:px-3">Security</TabsTrigger>
|
||||
<TabsTrigger value="activity" className="text-xs sm:text-sm px-2 sm:px-3">Activity</TabsTrigger>
|
||||
</TabsList>
|
||||
|
||||
<TabsContent value="profile" className="space-y-4">
|
||||
|
||||
Reference in New Issue
Block a user