Skip to content

Commit 74d550b

Browse files
authored
Merge pull request #144 from Feyisara2108/feat/resolve-issues-23-24-25-26
Feat/resolve issues 23 24 25 26
2 parents fc0afaf + c111d10 commit 74d550b

6 files changed

Lines changed: 62 additions & 11 deletions

File tree

app/(admin)/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export default function AdminLayout({
3333
<div className="flex-1 flex flex-col min-w-0 overflow-hidden">
3434
<Topbar onMenuClick={() => setMobileMenuOpen(!mobileMenuOpen)} isMenuOpen={mobileMenuOpen} title="Platform Operations" />
3535
<main className="flex-1 overflow-y-auto bg-background/50">
36-
<div className="mx-auto max-w-7xl px-4 sm:px-6 py-8">
36+
<div className="mx-auto max-w-7xl px-3 sm:px-6 py-4 sm:py-8">
3737
{children}
3838
</div>
3939
</main>

app/(merchant)/layout.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { useState } from 'react';
44
import { MerchantSidebar } from '@/components/layout/MerchantSidebar';
55
import { Topbar } from '@/components/layout/Topbar';
66
import Footer from '@/components/layout/Footer';
7+
import { MobileBottomNav } from '@/components/layout/MobileBottomNav';
78

89
export default function MerchantLayout({
910
children,
@@ -15,12 +16,13 @@ export default function MerchantLayout({
1516
return (
1617
<div className="flex h-screen overflow-hidden bg-background">
1718
<MerchantSidebar />
19+
<MobileBottomNav />
1820
{/* Mobile nav drawer would go here, driven by mobileMenuOpen */}
1921

2022
<div className="flex-1 flex flex-col min-w-0 overflow-hidden">
2123
<Topbar onMenuClick={() => setMobileMenuOpen(!mobileMenuOpen)} isMenuOpen={mobileMenuOpen} />
22-
<main className="flex-1 overflow-y-auto bg-background/50">
23-
<div className="mx-auto max-w-7xl px-4 sm:px-6 py-8">
24+
<main className="flex-1 overflow-y-auto bg-background/50 pb-20 md:pb-0">
25+
<div className="mx-auto max-w-7xl px-3 sm:px-6 py-4 sm:py-8">
2426
{children}
2527
</div>
2628
</main>

app/(merchant)/wallet/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export default function WalletPage() {
4646
</div>
4747

4848
{/* Wallet Card */}
49-
<div className="relative rounded-2xl overflow-hidden bg-gradient-to-br from-slate-800 via-slate-900 to-slate-950 p-6 text-white shadow-xl">
49+
<div className="relative rounded-2xl overflow-hidden bg-gradient-to-br from-slate-800 via-slate-900 to-slate-950 p-4 sm:p-6 text-white shadow-xl">
5050
<div className="absolute top-0 right-0 w-64 h-64 bg-amber-500/10 rounded-full -mr-20 -mt-20 blur-3xl pointer-events-none" />
5151
<div className="absolute bottom-0 left-0 w-48 h-48 bg-blue-500/10 rounded-full -ml-16 -mb-16 blur-3xl pointer-events-none" />
5252

@@ -64,10 +64,10 @@ export default function WalletPage() {
6464
<p className="text-4xl font-bold"><CurrencyDisplay amount={12450.00} /> <span className="text-lg font-normal text-white/60">USDC</span></p>
6565
</div>
6666

67-
<div className="flex items-center justify-between">
67+
<div className="flex flex-wrap items-center justify-between gap-4">
6868
<div>
6969
<p className="text-xs text-white/50 mb-1">Wallet Address</p>
70-
<p className="font-mono text-sm text-white/80">{shortAddress}</p>
70+
<p className="font-mono text-xs sm:text-sm text-white/80 break-all">{shortAddress}</p>
7171
</div>
7272
<div className="flex items-center gap-2">
7373
<Button onClick={handleCopy} variant="ghost" aria-label="Copy wallet address" className="h-8 w-8 p-0 rounded-lg bg-white/10 hover:bg-white/20 text-white">

app/auth/layout.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ export default function AuthLayout({ children }: { children: React.ReactNode })
1313
{/* Left Pane — Form */}
1414
<div className="w-full lg:w-[52%] flex flex-col bg-white">
1515
{/* Top bar */}
16-
<div className="flex items-center gap-2.5 px-8 py-6 border-b border-slate-100">
16+
<div className="flex items-center justify-center lg:justify-start gap-2.5 px-4 sm:px-8 py-6 border-b border-slate-100">
1717
<img src="/logo.png" alt="BettaPay Logo" className="w-8 h-8 rounded-lg object-contain" />
1818
<span className="font-bold text-slate-900 text-lg tracking-tight">BettaPay</span>
1919
</div>
2020

2121
{/* Form content */}
22-
<div className="flex-1 flex items-center justify-center px-8 py-12">
23-
<div className="w-full max-w-[420px]">
22+
<div className="flex-1 flex items-center justify-center px-4 sm:px-8 py-12">
23+
<div className="w-full max-w-[420px] mx-auto">
2424
{children}
2525
</div>
2626
</div>
2727

2828
{/* Bottom note */}
29-
<div className="px-8 py-5 border-t border-slate-100">
29+
<div className="px-4 sm:px-8 py-5 border-t border-slate-100 text-center lg:text-left">
3030
<p className="text-xs text-slate-400">
3131
By signing in, you agree to our{' '}
3232
<a href="#" className="underline hover:text-slate-600">Terms of Service</a>{' '}

app/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default function LandingPage() {
3030
<Header />
3131

3232
{/* Hero Section */}
33-
<main className="pt-24 pb-20 lg:pt-36 lg:pb-32">
33+
<main className="pt-12 pb-12 lg:pt-36 lg:pb-32">
3434
<div className="container mx-auto px-6 text-center">
3535

3636
{/* Badge */}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
"use client";
2+
3+
import Link from 'next/link';
4+
import { usePathname } from 'next/navigation';
5+
import { cn } from '@/lib/utils';
6+
import {
7+
LayoutDashboard,
8+
Link as LinkIcon,
9+
ListOrdered,
10+
Wallet,
11+
Settings
12+
} from 'lucide-react';
13+
14+
const mobileNavItems = [
15+
{ href: '/dashboard', label: 'Overview', icon: LayoutDashboard },
16+
{ href: '/payments', label: 'Payments', icon: LinkIcon },
17+
{ href: '/transactions', label: 'History', icon: ListOrdered },
18+
{ href: '/wallet', label: 'Wallet', icon: Wallet },
19+
{ href: '/settings', label: 'Settings', icon: Settings },
20+
];
21+
22+
export const MobileBottomNav = () => {
23+
const pathname = usePathname();
24+
25+
return (
26+
<div className="fixed bottom-0 md:hidden left-0 right-0 z-40 bg-white border-t border-slate-200 px-2 pt-2 pb-safe sm:pb-3 flex items-center justify-around shadow-[0_-4px_10px_rgba(0,0,0,0.02)]">
27+
{mobileNavItems.map((item) => {
28+
const isActive = pathname === item.href || pathname.startsWith(item.href + '/');
29+
const Icon = item.icon;
30+
31+
return (
32+
<Link
33+
key={item.href}
34+
href={item.href}
35+
className={cn(
36+
"flex flex-col items-center justify-center w-[68px] gap-1 py-1.5 rounded-lg transition-all",
37+
isActive
38+
? "text-amber-700 bg-amber-50"
39+
: "text-slate-500 hover:bg-slate-50 hover:text-slate-800"
40+
)}
41+
>
42+
<Icon className={cn("w-5 h-5", isActive ? "text-amber-600" : "text-slate-400")} />
43+
<span className="text-[10px] font-medium tracking-tight">{item.label}</span>
44+
</Link>
45+
);
46+
})}
47+
</div>
48+
);
49+
};

0 commit comments

Comments
 (0)