WizardImon's picture
Add 3 files
10c6a31 verified
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>EncontreAqui - Conectando você aos melhores estabelecimentos</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.fade-in {
animation: fadeIn 0.3s ease-out forwards;
}
.notification-badge {
position: absolute;
top: -5px;
right: -5px;
width: 20px;
height: 20px;
border-radius: 50%;
background-color: #FF5722;
color: white;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
font-weight: bold;
}
.chat-bubble {
max-width: 70%;
padding: 10px 15px;
border-radius: 18px;
margin-bottom: 5px;
position: relative;
}
.user-message {
background-color: #3B82F6;
color: white;
align-self: flex-end;
border-bottom-right-radius: 0;
}
.business-message {
background-color: #E5E7EB;
color: #111827;
align-self: flex-start;
border-bottom-left-radius: 0;
}
.star-rating {
color: #E4E5E9;
}
.star-rating .active {
color: #FFD700;
}
.slide-up {
transform: translateY(100%);
transition: transform 0.3s ease-out;
}
.slide-up.show {
transform: translateY(0);
}
.skeleton {
background-color: #E5E7EB;
border-radius: 4px;
animation: pulse 1.5s infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
</style>
</head>
<body class="bg-gray-50 font-sans">
<!-- Main App Container -->
<div class="max-w-md mx-auto bg-white min-h-screen shadow-lg relative overflow-hidden">
<!-- Header -->
<header class="bg-blue-600 text-white p-4 flex justify-between items-center sticky top-0 z-10">
<button id="menuBtn" class="text-white">
<i class="fas fa-bars text-xl"></i>
</button>
<h1 class="text-xl font-bold">EncontreAqui</h1>
<button id="notificationBtn" class="relative">
<i class="fas fa-bell text-xl"></i>
<span id="notificationCount" class="notification-badge">3</span>
</button>
</header>
<!-- Main Content -->
<main class="p-4 pb-20">
<!-- Search Section -->
<div class="mb-6 fade-in">
<div class="relative">
<input type="text" placeholder="O que você está procurando?"
class="w-full p-3 pl-10 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500">
<i class="fas fa-search absolute left-3 top-3.5 text-gray-400"></i>
</div>
<div class="flex mt-3 space-x-2 overflow-x-auto pb-2">
<button class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm whitespace-nowrap">Restaurantes</button>
<button class="bg-gray-100 text-gray-800 px-3 py-1 rounded-full text-sm whitespace-nowrap">Bares</button>
<button class="bg-gray-100 text-gray-800 px-3 py-1 rounded-full text-sm whitespace-nowrap">Lojas</button>
<button class="bg-gray-100 text-gray-800 px-3 py-1 rounded-full text-sm whitespace-nowrap">Serviços</button>
<button class="bg-gray-100 text-gray-800 px-3 py-1 rounded-full text-sm whitespace-nowrap">Promoções</button>
</div>
</div>
<!-- Budget Filter -->
<div class="bg-blue-50 p-4 rounded-lg mb-6 fade-in">
<h2 class="font-semibold text-gray-800 mb-2">Filtrar por orçamento</h2>
<div class="flex items-center space-x-2">
<input type="range" min="0" max="500" value="200" class="w-full h-2 bg-blue-200 rounded-lg appearance-none cursor-pointer">
<span class="text-blue-800 font-medium">R$ 200</span>
</div>
<div class="flex justify-between text-xs text-gray-500 mt-1">
<span>R$ 0</span>
<span>R$ 500+</span>
</div>
</div>
<!-- Recommended Section -->
<section class="mb-6 fade-in">
<div class="flex justify-between items-center mb-3">
<h2 class="font-semibold text-lg text-gray-800">Recomendados para você</h2>
<a href="#" class="text-blue-600 text-sm">Ver todos</a>
</div>
<div class="grid grid-cols-2 gap-3">
<!-- Business Card 1 -->
<div class="bg-white rounded-lg shadow-md overflow-hidden border border-gray-100">
<div class="relative">
<img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80"
alt="Restaurante" class="w-full h-32 object-cover">
<div class="absolute top-2 right-2 bg-white bg-opacity-90 rounded-full p-1">
<i class="fas fa-heart text-red-500"></i>
</div>
</div>
<div class="p-3">
<h3 class="font-semibold text-gray-800">Bistro Moderno</h3>
<div class="flex items-center mt-1">
<div class="star-rating flex">
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star"></i>
</div>
<span class="text-gray-500 text-xs ml-1">(128)</span>
</div>
<div class="flex justify-between items-center mt-2">
<span class="text-sm text-gray-600">$$ • 1.2 km</span>
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Aberto</span>
</div>
</div>
</div>
<!-- Business Card 2 -->
<div class="bg-white rounded-lg shadow-md overflow-hidden border border-gray-100">
<div class="relative">
<img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80"
alt="Cafeteria" class="w-full h-32 object-cover">
<div class="absolute top-2 right-2 bg-white bg-opacity-90 rounded-full p-1">
<i class="far fa-heart text-gray-400"></i>
</div>
</div>
<div class="p-3">
<h3 class="font-semibold text-gray-800">Café Aconchego</h3>
<div class="flex items-center mt-1">
<div class="star-rating flex">
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
<span class="text-gray-500 text-xs ml-1">(64)</span>
</div>
<div class="flex justify-between items-center mt-2">
<span class="text-sm text-gray-600">$ • 0.8 km</span>
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Aberto</span>
</div>
</div>
</div>
</div>
</section>
<!-- Categories Section -->
<section class="mb-6 fade-in">
<h2 class="font-semibold text-lg text-gray-800 mb-3">Categorias</h2>
<div class="grid grid-cols-4 gap-3">
<div class="flex flex-col items-center">
<div class="bg-blue-100 w-14 h-14 rounded-full flex items-center justify-center mb-1">
<i class="fas fa-utensils text-blue-600 text-xl"></i>
</div>
<span class="text-xs text-center">Restaurantes</span>
</div>
<div class="flex flex-col items-center">
<div class="bg-purple-100 w-14 h-14 rounded-full flex items-center justify-center mb-1">
<i class="fas fa-cocktail text-purple-600 text-xl"></i>
</div>
<span class="text-xs text-center">Bares</span>
</div>
<div class="flex flex-col items-center">
<div class="bg-green-100 w-14 h-14 rounded-full flex items-center justify-center mb-1">
<i class="fas fa-shopping-bag text-green-600 text-xl"></i>
</div>
<span class="text-xs text-center">Lojas</span>
</div>
<div class="flex flex-col items-center">
<div class="bg-yellow-100 w-14 h-14 rounded-full flex items-center justify-center mb-1">
<i class="fas fa-cut text-yellow-600 text-xl"></i>
</div>
<span class="text-xs text-center">Beleza</span>
</div>
</div>
</section>
<!-- Nearby Section -->
<section class="fade-in">
<div class="flex justify-between items-center mb-3">
<h2 class="font-semibold text-lg text-gray-800">Próximos de você</h2>
<a href="#" class="text-blue-600 text-sm">Ver todos</a>
</div>
<div class="space-y-4">
<!-- Nearby Business 1 -->
<div class="flex items-center bg-white p-3 rounded-lg shadow-sm border border-gray-100">
<img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80"
alt="Padaria" class="w-16 h-16 rounded-lg object-cover">
<div class="ml-3 flex-1">
<h3 class="font-medium text-gray-800">Padaria Doce Lar</h3>
<div class="flex items-center mt-1">
<div class="star-rating flex">
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star-half-alt active"></i>
</div>
<span class="text-gray-500 text-xs ml-1">(243)</span>
</div>
<div class="flex justify-between items-center mt-1">
<span class="text-sm text-gray-600">$ • 0.5 km</span>
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Aberto</span>
</div>
</div>
</div>
<!-- Nearby Business 2 -->
<div class="flex items-center bg-white p-3 rounded-lg shadow-sm border border-gray-100">
<img src="https://images.unsplash.com/photo-1580828343064-fde4fc206bc6?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80"
alt="Pizzaria" class="w-16 h-16 rounded-lg object-cover">
<div class="ml-3 flex-1">
<h3 class="font-medium text-gray-800">Pizzaria Forno a Lenha</h3>
<div class="flex items-center mt-1">
<div class="star-rating flex">
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
<span class="text-gray-500 text-xs ml-1">(87)</span>
</div>
<div class="flex justify-between items-center mt-1">
<span class="text-sm text-gray-600">$$ • 1.5 km</span>
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Aberto</span>
</div>
</div>
</div>
</div>
</section>
</main>
<!-- Bottom Navigation -->
<nav class="bg-white border-t border-gray-200 fixed bottom-0 w-full max-w-md flex justify-around py-3">
<button class="text-blue-600 flex flex-col items-center">
<i class="fas fa-home text-xl"></i>
<span class="text-xs mt-1">Início</span>
</button>
<button class="text-gray-500 flex flex-col items-center">
<i class="fas fa-search text-xl"></i>
<span class="text-xs mt-1">Buscar</span>
</button>
<button class="text-gray-500 flex flex-col items-center">
<i class="fas fa-map-marker-alt text-xl"></i>
<span class="text-xs mt-1">Mapa</span>
</button>
<button class="text-gray-500 flex flex-col items-center">
<i class="fas fa-user text-xl"></i>
<span class="text-xs mt-1">Perfil</span>
</button>
</nav>
<!-- Side Menu (Hidden by default) -->
<div id="sideMenu" class="fixed inset-0 bg-black bg-opacity-50 z-20 hidden">
<div class="absolute left-0 top-0 h-full w-3/4 bg-white shadow-lg transform transition-transform duration-300 ease-in-out -translate-x-full">
<div class="p-4 border-b border-gray-200 flex items-center">
<img src="https://randomuser.me/api/portraits/women/44.jpg" alt="User" class="w-12 h-12 rounded-full object-cover">
<div class="ml-3">
<h3 class="font-medium">Ana Silva</h3>
<p class="text-sm text-gray-500">Orçamento: R$ 200</p>
</div>
</div>
<nav class="p-2">
<a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100">
<i class="fas fa-user-circle text-gray-600 mr-3"></i>
<span>Meu Perfil</span>
</a>
<a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100">
<i class="fas fa-heart text-gray-600 mr-3"></i>
<span>Favoritos</span>
</a>
<a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100">
<i class="fas fa-history text-gray-600 mr-3"></i>
<span>Histórico</span>
</a>
<a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100">
<i class="fas fa-cog text-gray-600 mr-3"></i>
<span>Configurações</span>
</a>
<a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100">
<i class="fas fa-store text-gray-600 mr-3"></i>
<span>Cadastrar Estabelecimento</span>
</a>
<a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100">
<i class="fas fa-question-circle text-gray-600 mr-3"></i>
<span>Ajuda</span>
</a>
<a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100">
<i class="fas fa-sign-out-alt text-gray-600 mr-3"></i>
<span>Sair</span>
</a>
</nav>
</div>
</div>
<!-- Notifications Panel (Hidden by default) -->
<div id="notificationsPanel" class="fixed inset-0 bg-black bg-opacity-50 z-20 hidden">
<div class="absolute right-0 top-0 h-full w-3/4 bg-white shadow-lg transform transition-transform duration-300 ease-in-out translate-x-full">
<div class="p-4 border-b border-gray-200 flex justify-between items-center">
<h3 class="font-medium text-lg">Notificações</h3>
<button id="closeNotifications" class="text-gray-500">
<i class="fas fa-times"></i>
</button>
</div>
<div class="overflow-y-auto h-full pb-20">
<div class="p-3 border-b border-gray-100">
<div class="flex items-start">
<div class="bg-blue-100 w-10 h-10 rounded-full flex items-center justify-center mr-3">
<i class="fas fa-bell text-blue-600"></i>
</div>
<div>
<p class="text-sm"><span class="font-medium">Bistro Moderno</span> tem uma nova promoção!</p>
<p class="text-xs text-gray-500 mt-1">10% de desconto em jantares às quintas</p>
<p class="text-xs text-gray-400 mt-1">Há 2 horas</p>
</div>
</div>
</div>
<div class="p-3 border-b border-gray-100 bg-blue-50">
<div class="flex items-start">
<div class="bg-green-100 w-10 h-10 rounded-full flex items-center justify-center mr-3">
<i class="fas fa-check-circle text-green-600"></i>
</div>
<div>
<p class="text-sm">Seu cadastro foi aprovado!</p>
<p class="text-xs text-gray-500 mt-1">Agora você pode avaliar estabelecimentos</p>
<p class="text-xs text-gray-400 mt-1">Ontem</p>
</div>
</div>
</div>
<div class="p-3 border-b border-gray-100">
<div class="flex items-start">
<div class="bg-yellow-100 w-10 h-10 rounded-full flex items-center justify-center mr-3">
<i class="fas fa-star text-yellow-600"></i>
</div>
<div>
<p class="text-sm"><span class="font-medium">Café Aconchego</span> respondeu sua avaliação</p>
<p class="text-xs text-gray-500 mt-1">"Obrigado pelo feedback! Estamos melhorando nosso atendimento."</p>
<p class="text-xs text-gray-400 mt-1">2 dias atrás</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Business Details Modal (Hidden by default) -->
<div id="businessModal" class="fixed inset-0 bg-black bg-opacity-50 z-30 hidden flex items-end">
<div class="bg-white w-full rounded-t-3xl slide-up max-h-[90vh] overflow-y-auto">
<div class="p-4 sticky top-0 bg-white z-10 border-b border-gray-200 flex justify-between items-center">
<h3 class="font-semibold text-lg">Detalhes</h3>
<button id="closeBusinessModal" class="text-gray-500">
<i class="fas fa-times"></i>
</button>
</div>
<div class="relative">
<img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80"
alt="Restaurante" class="w-full h-48 object-cover">
<div class="absolute bottom-4 left-4 bg-white bg-opacity-90 rounded-full p-2 shadow-md">
<i class="fas fa-heart text-red-500 text-xl"></i>
</div>
</div>
<div class="p-4">
<h2 class="text-2xl font-bold mb-1">Bistro Moderno</h2>
<div class="flex items-center mb-3">
<div class="star-rating flex">
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star"></i>
</div>
<span class="text-gray-500 text-sm ml-2">128 avaliações</span>
</div>
<div class="flex items-center text-gray-600 mb-4">
<i class="fas fa-map-marker-alt mr-2"></i>
<span>Rua das Flores, 123 - Centro</span>
</div>
<div class="bg-blue-50 p-3 rounded-lg mb-4">
<div class="flex justify-between items-center mb-2">
<span class="font-medium">Orçamento médio</span>
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-sm">R$ 150-250</span>
</div>
<div class="flex justify-between items-center">
<span class="font-medium">Horário</span>
<span class="text-sm">11:00 - 23:00</span>
</div>
</div>
<div class="mb-4">
<h4 class="font-semibold mb-2">Sobre</h4>
<p class="text-gray-600">Bistro Moderno oferece uma experiência gastronômica única com pratos contemporâneos preparados com ingredientes locais e frescos. Ambiente aconchegante perfeito para encontros e celebrações.</p>
</div>
<div class="mb-4">
<h4 class="font-semibold mb-2">Fotos</h4>
<div class="grid grid-cols-3 gap-2">
<img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80"
alt="Foto 1" class="h-24 w-full object-cover rounded">
<img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80"
alt="Foto 2" class="h-24 w-full object-cover rounded">
<img src="https://images.unsplash.com/photo-1580828343064-fde4fc206bc6?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80"
alt="Foto 3" class="h-24 w-full object-cover rounded">
</div>
</div>
<div class="mb-4">
<h4 class="font-semibold mb-2">Avaliações</h4>
<div class="space-y-3">
<!-- Review 1 -->
<div class="border-b border-gray-100 pb-3">
<div class="flex justify-between">
<div>
<span class="font-medium">Carlos M.</span>
<div class="star-rating flex mt-1">
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
</div>
</div>
<span class="text-gray-500 text-sm">2 semanas atrás</span>
</div>
<p class="text-gray-600 mt-1">Excelente atendimento e comida deliciosa! Recomendo o risoto de cogumelos.</p>
<div class="bg-gray-50 p-2 mt-2 rounded">
<p class="text-sm font-medium text-gray-800">Resposta do estabelecimento:</p>
<p class="text-sm text-gray-600">Obrigado, Carlos! Ficamos felizes que tenha gostado. Volte sempre!</p>
</div>
</div>
<!-- Review 2 -->
<div class="border-b border-gray-100 pb-3">
<div class="flex justify-between">
<div>
<span class="font-medium">Ana L.</span>
<div class="star-rating flex mt-1">
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star active"></i>
<i class="fas fa-star"></i>
</div>
</div>
<span class="text-gray-500 text-sm">1 mês atrás</span>
</div>
<p class="text-gray-600 mt-1">Ambiente muito agradável e comida de qualidade. Só achei um pouco caro.</p>
</div>
</div>
</div>
<div class="flex space-x-3 sticky bottom-0 bg-white py-3 border-t border-gray-200">
<button class="flex-1 bg-blue-600 text-white py-3 rounded-lg font-medium flex items-center justify-center">
<i class="fas fa-comment-dots mr-2"></i> Chat
</button>
<button class="flex-1 bg-green-600 text-white py-3 rounded-lg font-medium flex items-center justify-center">
<i class="fas fa-directions mr-2"></i> Rota
</button>
</div>
</div>
</div>
</div>
<!-- Chat Modal (Hidden by default) -->
<div id="chatModal" class="fixed inset-0 bg-black bg-opacity-50 z-40 hidden flex items-end">
<div class="bg-white w-full rounded-t-3xl slide-up max-h-[90vh] flex flex-col">
<div class="p-4 sticky top-0 bg-white z-10 border-b border-gray-200 flex justify-between items-center">
<div class="flex items-center">
<button id="backToBusiness" class="mr-3 text-gray-500">
<i class="fas fa-arrow-left"></i>
</button>
<div>
<h3 class="font-semibold">Bistro Moderno</h3>
<p class="text-xs text-gray-500">Online agora</p>
</div>
</div>
<button id="closeChatModal" class="text-gray-500">
<i class="fas fa-times"></i>
</button>
</div>
<div class="flex-1 overflow-y-auto p-4 space-y-3">
<!-- Business Message -->
<div class="flex">
<div class="chat-bubble business-message">
<p>Olá! Como podemos te ajudar hoje?</p>
<p class="text-xs text-gray-500 mt-1 text-right">11:30</p>
</div>
</div>
<!-- User Message -->
<div class="flex justify-end">
<div class="chat-bubble user-message">
<p>Oi! Gostaria de saber se preciso reservar para sexta à noite.</p>
<p class="text-xs text-gray-100 mt-1 text-right">11:32</p>
</div>
</div>
<!-- Business Message -->
<div class="flex">
<div class="chat-bubble business-message">
<p>Para sexta à noite recomendamos reserva sim, especialmente para grupos maiores que 4 pessoas. Quantas pessoas serão?</p>
<p class="text-xs text-gray-500 mt-1 text-right">11:33</p>
</div>
</div>
</div>
<div class="sticky bottom-0 bg-white p-3 border-t border-gray-200">
<div class="flex items-center">
<input type="text" placeholder="Digite sua mensagem..."
class="flex-1 border border-gray-300 rounded-full py-2 px-4 focus:outline-none focus:ring-1 focus:ring-blue-500">
<button class="ml-2 bg-blue-600 text-white p-2 rounded-full">
<i class="fas fa-paper-plane"></i>
</button>
</div>
</div>
</div>
</div>
</div>
<script>
// DOM Elements
const menuBtn = document.getElementById('menuBtn');
const sideMenu = document.getElementById('sideMenu');
const notificationBtn = document.getElementById('notificationBtn');
const notificationsPanel = document.getElementById('notificationsPanel');
const closeNotifications = document.getElementById('closeNotifications');
const businessModal = document.getElementById('businessModal');
const closeBusinessModal = document.getElementById('closeBusinessModal');
const chatModal = document.getElementById('chatModal');
const closeChatModal = document.getElementById('closeChatModal');
const backToBusiness = document.getElementById('backToBusiness');
const notificationCount = document.getElementById('notificationCount');
// Business cards - add click event to all
const businessCards = document.querySelectorAll('.bg-white.rounded-lg.shadow-md');
// Event Listeners
menuBtn.addEventListener('click', () => {
sideMenu.classList.remove('hidden');
setTimeout(() => {
sideMenu.querySelector('div').classList.remove('-translate-x-full');
}, 10);
});
sideMenu.addEventListener('click', (e) => {
if (e.target === sideMenu) {
sideMenu.querySelector('div').classList.add('-translate-x-full');
setTimeout(() => {
sideMenu.classList.add('hidden');
}, 300);
}
});
notificationBtn.addEventListener('click', () => {
notificationsPanel.classList.remove('hidden');
setTimeout(() => {
notificationsPanel.querySelector('div').classList.remove('translate-x-full');
}, 10);
// Reset notification count
notificationCount.textContent = '0';
notificationCount.classList.add('hidden');
});
closeNotifications.addEventListener('click', () => {
notificationsPanel.querySelector('div').classList.add('translate-x-full');
setTimeout(() => {
notificationsPanel.classList.add('hidden');
}, 300);
});
notificationsPanel.addEventListener('click', (e) => {
if (e.target === notificationsPanel) {
notificationsPanel.querySelector('div').classList.add('translate-x-full');
setTimeout(() => {
notificationsPanel.classList.add('hidden');
}, 300);
}
});
// Open business modal when clicking on a business card
businessCards.forEach(card => {
card.addEventListener('click', () => {
businessModal.classList.remove('hidden');
setTimeout(() => {
businessModal.querySelector('.slide-up').classList.add('show');
}, 10);
});
});
closeBusinessModal.addEventListener('click', () => {
businessModal.querySelector('.slide-up').classList.remove('show');
setTimeout(() => {
businessModal.classList.add('hidden');
}, 300);
});
businessModal.addEventListener('click', (e) => {
if (e.target === businessModal) {
businessModal.querySelector('.slide-up').classList.remove('show');
setTimeout(() => {
businessModal.classList.add('hidden');
}, 300);
}
});
// Chat modal controls
const chatButtons = document.querySelectorAll('.fa-comment-dots, .fa-comment-alt');
chatButtons.forEach(btn => {
btn.addEventListener('click', (e) => {
e.stopPropagation();
businessModal.querySelector('.slide-up').classList.remove('show');
setTimeout(() => {
businessModal.classList.add('hidden');
chatModal.classList.remove('hidden');
setTimeout(() => {
chatModal.querySelector('.slide-up').classList.add('show');
}, 10);
}, 300);
});
});
closeChatModal.addEventListener('click', () => {
chatModal.querySelector('.slide-up').classList.remove('show');
setTimeout(() => {
chatModal.classList.add('hidden');
}, 300);
});
backToBusiness.addEventListener('click', () => {
chatModal.querySelector('.slide-up').classList.remove('show');
setTimeout(() => {
chatModal.classList.add('hidden');
businessModal.classList.remove('hidden');
setTimeout(() => {
businessModal.querySelector('.slide-up').classList.add('show');
}, 10);
}, 300);
});
chatModal.addEventListener('click', (e) => {
if (e.target === chatModal) {
chatModal.querySelector('.slide-up').classList.remove('show');
setTimeout(() => {
chatModal.classList.add('hidden');
}, 300);
}
});
// Simulate active users notification
setInterval(() => {
const randomCount = Math.floor(Math.random() * 5) + 1;
if (Math.random() > 0.3) { // 70% chance of showing notification
notificationCount.textContent = randomCount;
notificationCount.classList.remove('hidden');
// Add pulse animation
notificationCount.classList.add('animate-pulse');
setTimeout(() => {
notificationCount.classList.remove('animate-pulse');
}, 1000);
}
}, 20000);
// Initialize fade-in animations for content
document.addEventListener('DOMContentLoaded', () => {
const fadeElements = document.querySelectorAll('.fade-in');
fadeElements.forEach((el, index) => {
setTimeout(() => {
el.style.opacity = '1';
el.style.transform = 'translateY(0)';
}, index * 100);
});
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <a href="https://enzostvs-deepsite.hf.space" style="color: #fff;" target="_blank" >DeepSite</a> <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;"></p><p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=WizardImon/mobile-first-ecommerce" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>