Spaces:
Running
Running
| @inject SignInManager<IdentityUser> SignInManager | |
| @inject UserManager<IdentityUser> UserManager | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |
| <title>@ViewData["Title"] — DanStore</title> | |
| <link rel="preconnect" href="https://fonts.googleapis.com" /> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> | |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap" rel="stylesheet" /> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" /> | |
| <link rel="stylesheet" href="~/css/site.css" asp-append-version="true" /> | |
| </head> | |
| <body> | |
| <header> | |
| <nav class="border-b border-brand-gray-400 relative" style="border-color: #adb5bd;"> | |
| <div class="max-w-7xl mx-auto px-4 flex items-center justify-between h-16"> | |
| <a href="/" class="font-heading text-2xl font-bold" style="color: #2a2a3d;">DanStore</a> | |
| <div class="hidden lg:flex items-center gap-6"> | |
| <a href="/" class="text-sm font-medium transition-colors duration-200" style="color: #6c757d;">Home</a> | |
| <a href="/home/shop" class="text-sm font-medium transition-colors duration-200" style="color: #6c757d;">Shop</a> | |
| <a href="/cart" class="text-sm font-medium transition-colors duration-200 relative" style="color: #6c757d;"> | |
| <i class="fas fa-shopping-bag"></i> | |
| </a> | |
| @if (SignInManager.IsSignedIn(User)) | |
| { | |
| @if (User.IsInRole("Admin")) | |
| { | |
| <a href="/admin" class="text-sm font-medium transition-colors duration-200" style="color: #2a2a3d; font-weight: 700;">Admin Panel</a> | |
| } | |
| <a href="/account/profile" class="text-sm font-medium transition-colors duration-200" style="color: #6c757d;">@User.Identity?.Name</a> | |
| <form asp-controller="Account" asp-action="Logout" method="post" class="inline"> | |
| <button type="submit" class="text-sm font-medium transition-colors duration-200 btn btn-sm btn-outline-secondary" style="border: none; background: none; color: #6c757d; cursor: pointer;">Logout</button> | |
| </form> | |
| } | |
| else | |
| { | |
| <a href="/account/login" class="text-sm font-medium transition-colors duration-200" style="color: #6c757d;">Login</a> | |
| <a href="/account/register" class="text-sm font-medium transition-colors duration-200" style="color: #6c757d;">Register</a> | |
| } | |
| </div> | |
| <button id="mobile-menu-btn" class="lg:hidden flex items-center text-sm font-medium" style="color: #6c757d; background: none; border: none; cursor: pointer; padding: 0.5rem;"> | |
| <i class="fas fa-bars text-lg"></i> | |
| </button> | |
| </div> | |
| <div id="mobile-menu" class="hidden lg:hidden absolute top-full left-0 w-full bg-white shadow-lg border-t z-50" style="border-color: #adb5bd;"> | |
| <div class="px-4 py-3 space-y-3"> | |
| <a href="/" class="block text-sm font-medium transition-colors duration-200" style="color: #6c757d;">Home</a> | |
| <a href="/home/shop" class="block text-sm font-medium transition-colors duration-200" style="color: #6c757d;">Shop</a> | |
| <a href="/cart" class="block text-sm font-medium transition-colors duration-200" style="color: #6c757d;"> | |
| <i class="fas fa-shopping-bag mr-2"></i>Cart | |
| </a> | |
| @if (SignInManager.IsSignedIn(User)) | |
| { | |
| @if (User.IsInRole("Admin")) | |
| { | |
| <a href="/admin" class="block text-sm font-medium" style="color: #2a2a3d; font-weight: 700;">Admin Panel</a> | |
| } | |
| <a href="/account/profile" class="block text-sm font-medium transition-colors duration-200" style="color: #6c757d;">@User.Identity?.Name</a> | |
| <form asp-controller="Account" asp-action="Logout" method="post"> | |
| <button type="submit" class="block text-sm font-medium transition-colors duration-200" style="color: #6c757d; background: none; border: none; cursor: pointer; padding: 0;">Logout</button> | |
| </form> | |
| } | |
| else | |
| { | |
| <a href="/account/login" class="block text-sm font-medium transition-colors duration-200" style="color: #6c757d;">Login</a> | |
| <a href="/account/register" class="block text-sm font-medium transition-colors duration-200" style="color: #6c757d;">Register</a> | |
| } | |
| </div> | |
| </div> | |
| </nav> | |
| </header> | |
| <main> | |
| @RenderBody() | |
| </main> | |
| <footer class="mt-8 sm:mt-16 py-6 sm:py-12" style="background: #2a2a3d;"> | |
| <div class="max-w-7xl mx-auto px-4"> | |
| <div class="grid grid-cols-2 md:grid-cols-4 gap-4 sm:gap-6"> | |
| <div> | |
| <a href="/" class="font-heading text-xl sm:text-2xl font-bold" style="color: #fff;">DanStore</a> | |
| <p class="text-xs sm:text-sm mt-2 sm:mt-3 leading-relaxed" style="color: #d4d8dd; max-width: 280px;"> | |
| Your trusted online marketplace in Pakistan. Quality products, secure payments, and fast delivery. | |
| </p> | |
| </div> | |
| <div> | |
| <h4 class="text-xs sm:text-sm font-semibold uppercase tracking-wide mb-2 sm:mb-3" style="color: #fff;">Shop</h4> | |
| <ul class="space-y-1 sm:space-y-1.5"> | |
| <li><a href="/" class="text-xs sm:text-sm transition-colors duration-200" style="color: #d4d8dd;">All Products</a></li> | |
| <li><a href="/#new-arrivals" class="text-xs sm:text-sm transition-colors duration-200" style="color: #d4d8dd;">New Arrivals</a></li> | |
| <li><a href="/#best-sellers" class="text-xs sm:text-sm transition-colors duration-200" style="color: #d4d8dd;">Best Sellers</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h4 class="text-xs sm:text-sm font-semibold uppercase tracking-wide mb-2 sm:mb-3" style="color: #fff;">Help</h4> | |
| <ul class="space-y-1 sm:space-y-1.5"> | |
| <li><a href="/home/faq" class="text-xs sm:text-sm transition-colors duration-200" style="color: #d4d8dd;">FAQ</a></li> | |
| <li><a href="/home/contact" class="text-xs sm:text-sm transition-colors duration-200" style="color: #d4d8dd;">Contact Us</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h4 class="text-xs sm:text-sm font-semibold uppercase tracking-wide mb-2 sm:mb-3" style="color: #fff;">Account</h4> | |
| <ul class="space-y-1 sm:space-y-1.5"> | |
| <li><a href="/account/login" class="text-xs sm:text-sm transition-colors duration-200" style="color: #d4d8dd;">Login</a></li> | |
| <li><a href="/account/register" class="text-xs sm:text-sm transition-colors duration-200" style="color: #d4d8dd;">Register</a></li> | |
| <li><a href="/account/profile" class="text-xs sm:text-sm transition-colors duration-200" style="color: #d4d8dd;">Profile</a></li> | |
| <li><a href="/account/orders" class="text-xs sm:text-sm transition-colors duration-200" style="color: #d4d8dd;">Orders</a></li> | |
| <li><a href="/cart" class="text-xs sm:text-sm transition-colors duration-200" style="color: #d4d8dd;">Cart</a></li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div class="border-t mt-4 sm:mt-6 pt-4 sm:pt-6 text-center text-xs sm:text-sm" style="border-color: #8a9aa8; color: #d4d8dd;"> | |
| © 2026 DanStore. All rights reserved. | |
| </div> | |
| </div> | |
| </footer> | |
| <script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha256-Cg1VW4QlW4kNRmBmBvq1KmC26hB1sH9VGQk2qN2jW4=" crossorigin="anonymous"></script> | |
| <script src="~/js/site.js" asp-append-version="true"></script> | |
| <script> | |
| document.addEventListener('DOMContentLoaded', function() { | |
| var toasts = document.querySelectorAll('.alert-toast'); | |
| toasts.forEach(function(t) { | |
| setTimeout(function() { | |
| t.style.transition = 'opacity 0.3s'; | |
| t.style.opacity = '0'; | |
| setTimeout(function() { t.remove(); }, 300); | |
| }, 2000); | |
| }); | |
| document.querySelectorAll('.password-toggle').forEach(function(btn) { | |
| btn.addEventListener('click', function() { | |
| var input = this.parentElement.querySelector('input'); | |
| var icon = this.querySelector('i'); | |
| if (input.type === 'password') { | |
| input.type = 'text'; | |
| icon.classList.replace('fa-eye', 'fa-eye-slash'); | |
| } else { | |
| input.type = 'password'; | |
| icon.classList.replace('fa-eye-slash', 'fa-eye'); | |
| } | |
| }); | |
| }); | |
| }); | |
| </script> | |
| @await RenderSectionAsync("Scripts", required: false) | |
| </body> | |
| </html> | |