import React, { useState, useEffect } from 'react';
import { Lock, Brain, Wrench, Target, Video, Zap, User, Mail, KeyRound, CalendarDays, MapPin, ChevronDown, Eye, EyeOff, Twitter, Facebook, Youtube, Send, Phone } from 'lucide-react'; // Added Phone icon
// Logo URL for general use (hero text section) - user-uploaded one
const LOGO_URL = 'mobilsociallogo4.webp'; // This assumes the file is in the public folder
// Specific Logo URL for the top navigation bar AND FOOTER
const WHITE_LOGO_URL = 'https://www.mobilsocial.com/images/mobilsociallogowhite.png';
// Specific Logo URL for the form (can be the same as white logo or different)
const FORM_LOGO_URL = 'https://www.mobilsocial.com/images/mobilsociallogowhite.png';
// Helper component for social media icons (simplified)
const TikTokIcon = () => ( // Simple SVG placeholder for TikTok
);
// Background image URL
const HERO_BACKGROUND_IMAGE_URL = 'https://www.mobilsocial.com/images/mobilsocialbackground.webp';
const App = () => {
// Page Title
useEffect(() => {
document.title = "What happening in miami | Mobilsocial Social Network";
}, []);
// --- State for Sign Up Form ---
const [formData, setFormData] = useState({
fullName: '',
email: '',
phoneNumber: '',
username: '',
password: '',
confirmPassword: '',
dob: '',
miamiArea: '',
});
const [errors, setErrors] = useState({});
const [showPassword, setShowPassword] = useState(false);
const [showConfirmPassword, setShowConfirmPassword] = useState(false);
const miamiAreas = [
"Select your area",
"Downtown Miami",
"South Beach",
"Wynwood",
"Brickell",
"Coconut Grove",
"Little Havana",
"Coral Gables",
"Miami Beach",
"Key Biscayne",
"Aventura",
"Sunny Isles Beach",
"Other",
];
const handleChange = (e) => {
const { name, value, type, checked } = e.target;
setFormData({
...formData,
[name]: type === 'checkbox' ? checked : value
});
if (errors[name]) {
setErrors({ ...errors, [name]: null });
}
};
const validateForm = () => {
const newErrors = {};
if (!formData.fullName.trim()) newErrors.fullName = 'Full name is required.';
if (!formData.email.trim()) {
newErrors.email = 'Email is required.';
} else if (!/\S+@\S+\.\S+/.test(formData.email)) {
newErrors.email = 'Email is invalid.';
}
if (!formData.phoneNumber.trim()) {
newErrors.phoneNumber = 'Phone number is required.';
} else if (!/^\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$/.test(formData.phoneNumber)) {
newErrors.phoneNumber = 'Phone number is invalid.';
} else if (formData.phoneNumber.replace(/\D/g, '').length < 7) {
newErrors.phoneNumber = 'Phone number seems too short.';
}
if (!formData.username.trim()) newErrors.username = 'Username is required.';
else if (formData.username.length < 3) newErrors.username = 'Username must be at least 3 characters.';
if (!formData.password) {
newErrors.password = 'Password is required.';
} else if (formData.password.length < 8) {
newErrors.password = 'Password must be at least 8 characters.';
}
if (formData.password !== formData.confirmPassword) {
newErrors.confirmPassword = 'Passwords do not match.';
}
if (!formData.dob) newErrors.dob = 'Date of birth is required.';
if (!formData.miamiArea || formData.miamiArea === "Select your area") {
newErrors.miamiArea = 'Please select your area in Miami.';
}
setErrors(newErrors);
return Object.keys(newErrors).length === 0;
};
const handleSubmit = (e) => {
e.preventDefault();
if (validateForm()) {
console.log('Form Data:', formData);
window.location.href = 'https://www.mobilsocial.com/signup';
console.log('Sign up successful! Redirecting to mobilsocial.com/signup');
} else {
console.log('Validation Errors:', errors);
}
};
// --- Feature Data ---
const features = [
{
icon:
What's happening in Miami?
Connect with your local Miami community like never before. Share your moments, discover exclusive events, and build authentic connections on a secure and private platform designed for Miamians, by Miamians.
Discover FeaturesExperience a social network built for authentic connections, creativity, and the vibrant Miami lifestyle.
{feature.description}
Stay updated with the latest buzz and events in the Magic City.