| <!DOCTYPE html> |
| <html lang="en" class="dark"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Profile Settings - YourHand.co</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> |
| <style> |
| .gradient-text { |
| background: linear-gradient(90deg, #d946ef 0%, #a855f7 100%); |
| -webkit-background-clip: text; |
| background-clip: text; |
| color: transparent; |
| } |
| </style> |
| </head> |
| <body class="bg-gray-900 text-gray-100 min-h-screen"> |
| <nav class="bg-gray-800 border-b border-gray-700 px-4 py-3"> |
| <div class="max-w-7xl mx-auto flex items-center justify-between"> |
| <div class="flex items-center space-x-2"> |
| <i data-feather="hand" class="text-primary-500 w-8 h-8"></i> |
| <span class="text-2xl font-bold gradient-text">YourHand.co</span> |
| </div> |
| <div class="flex items-center space-x-4"> |
| <a href="index.html" class="bg-gray-700 hover:bg-gray-600 text-white font-bold py-2 px-4 rounded-lg transition"> |
| Back to Home |
| </a> |
| </div> |
| </div> |
| </nav> |
|
|
| <div class="max-w-4xl mx-auto px-4 py-8"> |
| <div class="flex flex-col md:flex-row gap-8"> |
| |
| <div class="w-full md:w-64 bg-gray-800 rounded-xl p-6"> |
| <div class="flex flex-col items-center mb-8"> |
| <div class="relative"> |
| <div class="w-24 h-24 rounded-full bg-gray-700 overflow-hidden mb-4"> |
| <img id="profileImage" src="http://static.photos/people/200x200/10" alt="Profile" class="w-full h-full object-cover"> |
| </div> |
| <button id="changePhotoBtn" class="absolute bottom-0 right-0 bg-primary-500 rounded-full p-2 hover:bg-primary-600 transition"> |
| <i data-feather="camera" class="w-4 h-4"></i> |
| </button> |
| <input type="file" id="profilePhotoUpload" accept="image/*" class="hidden"> |
| </div> |
| <h3 id="userName" class="text-xl font-bold text-center">John Doe</h3> |
| <p id="userRole" class="text-sm text-gray-400">Buyer</p> |
| </div> |
| |
| <nav class="space-y-1"> |
| <a href="profile-settings.html" class="flex items-center space-x-3 px-3 py-2 bg-gray-700 rounded-lg text-primary-500"> |
| <i data-feather="user" class="w-5 h-5"></i> |
| <span>Profile</span> |
| </a> |
| <a href="account-settings.html" class="flex items-center space-x-3 px-3 py-2 hover:bg-gray-700 rounded-lg transition"> |
| <i data-feather="settings" class="w-5 h-5"></i> |
| <span>Account</span> |
| </a> |
| <a href="privacy-settings.html" class="flex items-center space-x-3 px-3 py-2 hover:bg-gray-700 rounded-lg transition"> |
| <i data-feather="lock" class="w-5 h-5"></i> |
| <span>Privacy</span> |
| </a> |
| <a href="notifications-settings.html" class="flex items-center space-x-3 px-3 py-2 hover:bg-gray-700 rounded-lg transition"> |
| <i data-feather="bell" class="w-5 h-5"></i> |
| <span>Notifications</span> |
| </a> |
| <a href="payment-settings.html" class="flex items-center space-x-3 px-3 py-2 hover:bg-gray-700 rounded-lg transition"> |
| <i data-feather="credit-card" class="w-5 h-5"></i> |
| <span>Payments</span> |
| </a> |
| </nav> |
| </div> |
| |
| |
| <div class="flex-1 bg-gray-800 rounded-xl p-8"> |
| <h2 class="text-2xl font-bold mb-6">Profile Settings</h2> |
| |
| <form id="profileForm" class="space-y-6"> |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> |
| <div> |
| <label for="firstName" class="block text-sm font-medium mb-1">First Name</label> |
| <input type="text" id="firstName" required |
| class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"> |
| </div> |
| <div> |
| <label for="lastName" class="block text-sm font-medium mb-1">Last Name</label> |
| <input type="text" id="lastName" required |
| class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"> |
| </div> |
| </div> |
|
|
| <div> |
| <label for="bio" class="block text-sm font-medium mb-1">Bio</label> |
| <textarea id="bio" rows="3" |
| class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"></textarea> |
| </div> |
|
|
| <div> |
| <label for="location" class="block text-sm font-medium mb-1">Location</label> |
| <input type="text" id="location" |
| class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"> |
| </div> |
|
|
| <div class="pt-2"> |
| <button type="submit" class="bg-primary-500 hover:bg-primary-600 text-white font-bold py-2 px-6 rounded-lg transition"> |
| Save Changes |
| </button> |
| </div> |
| </form> |
|
|
| |
| <div id="sellerFields" class="mt-8 hidden"> |
| <h3 class="text-xl font-bold mb-4 border-b border-gray-700 pb-2">Seller Information</h3> |
| |
| <form id="sellerForm" class="space-y-6"> |
| <div> |
| <label for="shopName" class="block text-sm font-medium mb-1">Shop Name</label> |
| <input type="text" id="shopName" |
| class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"> |
| </div> |
|
|
| <div> |
| <label for="shopDescription" class="block text-sm font-medium mb-1">Shop Description</label> |
| <textarea id="shopDescription" rows="3" |
| class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"></textarea> |
| </div> |
|
|
| <div> |
| <label for="shopCategory" class="block text-sm font-medium mb-1">Shop Category</label> |
| <select id="shopCategory" |
| class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"> |
| <option>Home Decor</option> |
| <option>Jewelry</option> |
| <option>Clothing</option> |
| <option>Art</option> |
| <option>Food & Beverage</option> |
| <option>Other</option> |
| </select> |
| </div> |
|
|
| <div class="pt-2"> |
| <button type="submit" class="bg-primary-500 hover:bg-primary-600 text-white font-bold py-2 px-6 rounded-lg transition"> |
| Save Seller Info |
| </button> |
| </div> |
| </form> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| <script> |
| feather.replace(); |
| |
| |
| document.addEventListener('DOMContentLoaded', function() { |
| const user = JSON.parse(localStorage.getItem('currentUser')) || {}; |
| |
| |
| document.getElementById('firstName').value = user.firstName || ''; |
| document.getElementById('lastName').value = user.lastName || ''; |
| document.getElementById('userName').textContent = `${user.firstName || ''} ${user.lastName || ''}`.trim() || 'User'; |
| document.getElementById('userRole').textContent = user.role === 'seller' ? 'Seller' : 'Buyer'; |
| |
| |
| if (user.role === 'seller') { |
| document.getElementById('sellerFields').classList.remove('hidden'); |
| document.getElementById('shopName').value = user.shopName || ''; |
| document.getElementById('shopDescription').value = user.shopDescription || ''; |
| document.getElementById('shopCategory').value = user.shopCategory || ''; |
| } |
| }); |
| |
| |
| document.getElementById('changePhotoBtn').addEventListener('click', function() { |
| document.getElementById('profilePhotoUpload').click(); |
| }); |
| |
| document.getElementById('profilePhotoUpload').addEventListener('change', function(e) { |
| const file = e.target.files[0]; |
| if (file) { |
| const reader = new FileReader(); |
| reader.onload = function(event) { |
| document.getElementById('profileImage').src = event.target.result; |
| |
| |
| const user = JSON.parse(localStorage.getItem('currentUser')) || {}; |
| user.profileImage = event.target.result; |
| localStorage.setItem('currentUser', JSON.stringify(user)); |
| }; |
| reader.readAsDataURL(file); |
| } |
| }); |
| |
| |
| document.getElementById('profileForm').addEventListener('submit', function(e) { |
| e.preventDefault(); |
| |
| const user = JSON.parse(localStorage.getItem('currentUser')) || {}; |
| user.firstName = document.getElementById('firstName').value; |
| user.lastName = document.getElementById('lastName').value; |
| user.bio = document.getElementById('bio').value; |
| user.location = document.getElementById('location').value; |
| |
| localStorage.setItem('currentUser', JSON.stringify(user)); |
| |
| alert('Profile saved successfully!'); |
| }); |
| |
| |
| document.getElementById('sellerForm').addEventListener('submit', function(e) { |
| e.preventDefault(); |
| |
| const user = JSON.parse(localStorage.getItem('currentUser')) || {}; |
| user.shopName = document.getElementById('shopName').value; |
| user.shopDescription = document.getElementById('shopDescription').value; |
| user.shopCategory = document.getElementById('shopCategory').value; |
| |
| localStorage.setItem('currentUser', JSON.stringify(user)); |
| |
| alert('Seller information saved successfully!'); |
| }); |
| </script> |
| </body> |
| </html> |