diff --git a/src/App.tsx b/src/App.tsx index 4a098e3..89b82b3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -39,16 +39,6 @@ import Security from "./pages/dashboard/Security"; import VehicleManagement from "./pages/dashboard/VehicleManagement"; import Sustainability from "./pages/dashboard/Sustainability"; import Establishments from "./pages/dashboard/Establishments"; -import EstablishmentsManagement from "./pages/dashboard/EstablishmentsManagement"; -// Establishments pages -import EstablishmentPOS from "./pages/dashboard/establishments/POSTerminal"; -import EstablishmentOrders from "./pages/dashboard/establishments/EstablishmentOrders"; -import EstablishmentInventory from "./pages/dashboard/establishments/EstablishmentInventory"; -import EstablishmentStaff from "./pages/dashboard/establishments/EstablishmentStaff"; -import BusinessList from "./components/establishments/BusinessList"; -import BusinessCategories from "./components/establishments/BusinessCategories"; -import BusinessVerification from "./components/establishments/BusinessVerification"; -import BusinessAnalytics from "./components/establishments/BusinessAnalytics"; // Hotel pages import HotelRooms from "./pages/dashboard/hotel/Rooms"; import HotelCheckIn from "./pages/dashboard/hotel/CheckIn"; @@ -298,71 +288,7 @@ const AppRouter = () => ( - - - - } /> - - - - - - - } /> - - - - - - - } /> - - - - - - - } /> - - - - - - - } /> - - - - - - - } /> - - - - - - - } /> - - - - - - - } /> - - - - + } /> diff --git a/src/components/AppSidebar.tsx b/src/components/AppSidebar.tsx deleted file mode 100644 index 8b75a01..0000000 --- a/src/components/AppSidebar.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import { Link } from "react-router-dom"; -import { useAuth } from "@/contexts/AuthContext"; -import { - Sidebar, - SidebarContent, - SidebarGroup, - SidebarGroupContent, - SidebarGroupLabel, - SidebarMenu, - SidebarMenuItem, - SidebarMenuButton, - useSidebar, -} from "@/components/ui/sidebar"; -import { LogOut } from "lucide-react"; -import { menuGroups } from "@/config/sidebar"; -import { SidebarMenuRenderer } from "@/components/sidebar/SidebarMenuRenderer"; - -export function AppSidebar() { - const { open, openMobile, isMobile } = useSidebar(); - const collapsed = !open && !isMobile; - const { logout } = useAuth(); - - return ( - - - {/* Logo */} -
- - Karibeo - -
- - {/* Menu Groups */} - {menuGroups.map((group) => ( - - {!collapsed && {group.label}} - - - - - ))} - - {/* Logout */} - - - - - - - {!collapsed && Logout} - - - - - -
-
- ); -} diff --git a/src/components/DashboardLayout.tsx b/src/components/DashboardLayout.tsx index 0b2f0c4..0f44dae 100644 --- a/src/components/DashboardLayout.tsx +++ b/src/components/DashboardLayout.tsx @@ -1,154 +1,532 @@ -import React from 'react'; -import { useLocation } from 'react-router-dom'; +import React, { useState } from 'react'; +import { Outlet, Link, useLocation } from 'react-router-dom'; import { useAuth } from '@/contexts/AuthContext'; import { useLanguage } from '@/contexts/LanguageContext'; import DashboardStyles from '@/components/layouts/DashboardStyles'; import CurrencySelector from '@/components/CurrencySelector'; -import { AppSidebar } from '@/components/AppSidebar'; -import { SidebarProvider, SidebarTrigger } from '@/components/ui/sidebar'; -import { +import { + Home, + Plus, + Wallet, + List, + MessageSquare, + Star, + BookOpen, + Heart, + FileText, + User, + Users, + Settings, + LogOut, Search, Bell, Menu, Sun, + Moon, Maximize, + CreditCard, + BarChart3, + MapPin, + DollarSign, + AlertTriangle, RefreshCw, + Navigation, + Car, + Target, + Zap, + Eye, + Megaphone, + ChevronDown, + ChevronRight, + Hotel, + UtensilsCrossed, + Brain, + DoorOpen, + BellRing, + Key, + Receipt, + ChefHat, + Grid3x3, + Package, + Globe, + Compass, + Map, + Shield, + Radio, + Sparkles, + Leaf, + Store } from 'lucide-react'; const DashboardLayout = ({ children }: { children: React.ReactNode }) => { - const { user } = useAuth(); + const { user, logout } = useAuth(); const { t } = useLanguage(); const location = useLocation(); + const [sidebarCollapsed, setSidebarCollapsed] = useState(false); + const [expandedItems, setExpandedItems] = useState>({}); + + const currentTab = new URLSearchParams(location.search).get('tab') || 'overview'; + + const toggleExpanded = (itemTab: string) => { + setExpandedItems(prev => ({ + ...prev, + [itemTab]: !prev[itemTab] + })); + }; + + const menuItems = [ + { icon: Home, label: 'Dashboard', path: '/dashboard' }, + { + icon: Settings, + label: 'Admin Panel', + path: '/dashboard/admin', + subItems: [ + { icon: BarChart3, label: 'Resumen General', path: '/dashboard/admin?tab=overview' }, + { icon: Users, label: 'Usuarios', path: '/dashboard/admin?tab=users' }, + { icon: MapPin, label: 'Proveedores', path: '/dashboard/admin?tab=services' }, + { icon: DollarSign, label: 'Financiero', path: '/dashboard/admin?tab=financial' }, + { + icon: FileText, + label: 'Contenido', + path: '/dashboard/admin?tab=content', + subItems: [ + { icon: Globe, label: 'Destinos', path: '/dashboard/admin?tab=content-destinations' }, + { icon: MapPin, label: 'Lugares', path: '/dashboard/admin?tab=content-places' }, + { icon: BookOpen, label: 'Guías', path: '/dashboard/admin?tab=content-guides' }, + { icon: Car, label: 'Taxis', path: '/dashboard/admin?tab=content-taxis' }, + { icon: Navigation, label: 'Geolocalización', path: '/dashboard/admin?tab=content-geolocation' }, + { icon: Megaphone, label: 'Promocional', path: '/dashboard/admin?tab=content-promotional' }, + { icon: Sparkles, label: 'AI Guías', path: '/dashboard/admin?tab=content-ai-guides' }, + { icon: Eye, label: 'AR Content', path: '/dashboard/admin?tab=content-ar' } + ] + }, + { + icon: Map, + label: 'Geolocalización', + path: '/dashboard/admin?tab=geofences', + subItems: [ + { icon: Target, label: 'Geofences', path: '/dashboard/admin?tab=geofences' }, + { icon: BarChart3, label: 'Analytics', path: '/dashboard/admin?tab=analytics' }, + { icon: Zap, label: 'Testing', path: '/dashboard/admin?tab=testing' }, + { icon: Shield, label: 'Emergencia Geo', path: '/dashboard/admin?tab=emergency-geo' }, + { icon: Compass, label: 'Navegación', path: '/dashboard/admin?tab=navigation' } + ] + }, + { icon: AlertTriangle, label: 'Emergencias', path: '/dashboard/admin?tab=emergency' }, + { icon: MessageSquare, label: 'Soporte', path: '/dashboard/admin?tab=support' }, + { icon: Settings, label: 'Configuración', path: '/dashboard/admin?tab=config' } + ] + }, + { + icon: Plus, + label: 'Channel Manager', + path: '/dashboard/channel-manager', + subItems: [ + { icon: BarChart3, label: 'Resumen', path: '/dashboard/channel-manager?tab=overview' }, + { icon: Zap, label: 'Canales', path: '/dashboard/channel-manager?tab=channels' }, + { icon: Home, label: 'Propiedades', path: '/dashboard/channel-manager?tab=listings' }, + { icon: BookOpen, label: 'Reservas', path: '/dashboard/channel-manager?tab=reservations' }, + { icon: BarChart3, label: 'Analytics', path: '/dashboard/channel-manager?tab=analytics' } + ] + }, + { + icon: Hotel, + label: 'Hotel Management', + path: '/dashboard/hotel', + subItems: [ + { icon: Home, label: 'Habitaciones', path: '/dashboard/hotel/rooms' }, + { icon: DoorOpen, label: 'Check-in', path: '/dashboard/hotel/checkin' }, + { icon: BellRing, label: 'Room Service', path: '/dashboard/hotel/room-service' }, + { icon: Key, label: 'Acceso', path: '/dashboard/hotel/keyless' }, + { icon: Users, label: 'Personal', path: '/dashboard/hotel/staff' } + ] + }, + { + icon: UtensilsCrossed, + label: 'Restaurant POS', + path: '/dashboard/restaurant', + subItems: [ + { icon: CreditCard, label: 'POS Terminal', path: '/dashboard/restaurant/pos' }, + { icon: Receipt, label: 'Pedidos', path: '/dashboard/restaurant/orders' }, + { icon: ChefHat, label: 'Cocina', path: '/dashboard/restaurant/kitchen' }, + { icon: Receipt, label: 'Cuentas', path: '/dashboard/restaurant/bills' }, + { icon: Grid3x3, label: 'Mesas', path: '/dashboard/restaurant/tables' }, + { icon: UtensilsCrossed, label: 'Menú', path: '/dashboard/restaurant/menu' }, + { icon: Package, label: 'Inventario', path: '/dashboard/restaurant/inventory' }, + { icon: Users, label: 'Personal', path: '/dashboard/restaurant/staff' } + ] + }, + { icon: Brain, label: 'Personalization', path: '/dashboard/personalization' }, + { icon: Shield, label: 'Security', path: '/dashboard/security' }, + { icon: Car, label: 'Vehicle Management', path: '/dashboard/vehicle-management' }, + { icon: Leaf, label: 'Sustainability', path: '/dashboard/sustainability' }, + { icon: Store, label: 'Comercios', path: '/dashboard/establishments' }, + { icon: Wallet, label: 'Wallet', path: '/dashboard/wallet' }, + { icon: MessageSquare, label: 'Message', path: '/dashboard/messages', badge: '2' }, + ]; + + const listingItems = [ + { icon: List, label: 'My Listing', path: '/dashboard/my-listings', hasSubmenu: true }, + { icon: Star, label: 'Reviews', path: '/dashboard/reviews' }, + { icon: BookOpen, label: 'Bookings', path: '/dashboard/bookings' }, + { icon: Heart, label: 'Bookmark', path: '/dashboard/bookmarks' }, + { icon: FileText, label: 'Invoice', path: '/dashboard/invoices' }, + ]; + + const accountItems = [ + { icon: User, label: 'Edit Profile', path: '/dashboard/profile' }, + { icon: CreditCard, label: 'Wallet', path: '/dashboard/wallet' }, + { icon: Settings, label: 'Setting', path: '/dashboard/settings' }, + ]; return ( <> - -
- {/* Background decorations */} -
-
+
+ {/* Background decorations */} +
+
+ + {/* Sidebar */} +
- + + + {/* Page Content */} +
+ {children} +
+
+ ); }; diff --git a/src/components/sidebar/SidebarMenuRenderer.tsx b/src/components/sidebar/SidebarMenuRenderer.tsx deleted file mode 100644 index 1029908..0000000 --- a/src/components/sidebar/SidebarMenuRenderer.tsx +++ /dev/null @@ -1,185 +0,0 @@ -import { Link, useLocation } from "react-router-dom"; -import { - SidebarMenu, - SidebarMenuItem, - SidebarMenuButton, - SidebarMenuSub, - SidebarMenuSubItem, - SidebarMenuSubButton, - useSidebar, -} from "@/components/ui/sidebar"; -import { - Collapsible, - CollapsibleContent, - CollapsibleTrigger, -} from "@/components/ui/collapsible"; -import { ChevronRight } from "lucide-react"; -import { MenuItem } from "@/config/sidebar"; -import { useState, useEffect } from "react"; - -interface SidebarMenuRendererProps { - items: MenuItem[]; - level?: number; -} - -export function SidebarMenuRenderer({ items, level = 0 }: SidebarMenuRendererProps) { - const { open, isMobile } = useSidebar(); - const collapsed = !open && !isMobile; - const location = useLocation(); - const [expandedItems, setExpandedItems] = useState>({}); - - const isActive = (path: string) => { - if (path.includes("?tab=")) { - const [basePath, tabQuery] = path.split("?tab="); - return ( - location.pathname === basePath && - location.search.includes(tabQuery) - ); - } - return location.pathname === path || location.pathname.startsWith(path + "/"); - }; - - const hasActiveChild = (items: MenuItem[]): boolean => { - return items.some((item) => { - if (isActive(item.path)) return true; - if (item.subItems) return hasActiveChild(item.subItems); - return false; - }); - }; - - const toggleExpanded = (itemPath: string) => { - setExpandedItems((prev) => ({ - ...prev, - [itemPath]: !prev[itemPath], - })); - }; - - // Auto-expand groups with active children - useEffect(() => { - items.forEach((item) => { - if (item.subItems && hasActiveChild(item.subItems)) { - setExpandedItems((prev) => ({ - ...prev, - [item.path]: true, - })); - } - }); - }, [location.pathname, location.search]); - - const renderMenuItem = (item: MenuItem) => { - const Icon = item.icon; - const active = isActive(item.path); - const hasSubItems = item.subItems && item.subItems.length > 0; - const isExpanded = expandedItems[item.path] || (hasSubItems && hasActiveChild(item.subItems)); - - if (hasSubItems) { - return ( - toggleExpanded(item.path)} - > - - - - - {!collapsed && {item.label}} - {!collapsed && ( - - )} - - - - - {item.subItems!.map((subItem) => - renderSubMenuItem(subItem) - )} - - - - - ); - } - - return ( - - - - - {!collapsed && {item.label}} - {!collapsed && item.badge && ( - - {item.badge} - - )} - - - - ); - }; - - const renderSubMenuItem = (item: MenuItem): JSX.Element => { - const Icon = item.icon; - const active = isActive(item.path); - const hasSubItems = item.subItems && item.subItems.length > 0; - const isExpanded = expandedItems[item.path] || (hasSubItems && hasActiveChild(item.subItems)); - - if (hasSubItems) { - return ( - toggleExpanded(item.path)} - > - - - - - {item.label} - - - - - - {item.subItems!.map((subItem) => - renderSubMenuItem(subItem) - )} - - - - - ); - } - - return ( - - - - - {item.label} - - - - ); - }; - - return ( - - {items.map((item) => renderMenuItem(item))} - - ); -} diff --git a/src/config/sidebar.ts b/src/config/sidebar.ts deleted file mode 100644 index 21a0171..0000000 --- a/src/config/sidebar.ts +++ /dev/null @@ -1,170 +0,0 @@ -import { - Home, - Plus, - Wallet, - List, - MessageSquare, - Star, - BookOpen, - Heart, - FileText, - User, - Users, - Settings, - LogOut, - CreditCard, - BarChart3, - MapPin, - DollarSign, - AlertTriangle, - Car, - Target, - Zap, - Eye, - Megaphone, - Hotel, - UtensilsCrossed, - Brain, - DoorOpen, - BellRing, - Key, - Receipt, - ChefHat, - Grid3x3, - Package, - Globe, - Compass, - Map, - Shield, - Sparkles, - Leaf, - Store, - Navigation, -} from "lucide-react"; - -export interface MenuItem { - icon: any; - label: string; - path: string; - badge?: string; - subItems?: MenuItem[]; -} - -export interface MenuGroup { - label: string; - items: MenuItem[]; -} - -export const menuGroups: MenuGroup[] = [ - { - label: "Main Menu", - items: [ - { icon: Home, label: "Dashboard", path: "/dashboard" }, - { - icon: Settings, - label: "Admin Panel", - path: "/dashboard/admin", - subItems: [ - { icon: BarChart3, label: "Resumen General", path: "/dashboard/admin?tab=overview" }, - { icon: Users, label: "Usuarios", path: "/dashboard/admin?tab=users" }, - { icon: MapPin, label: "Proveedores", path: "/dashboard/admin?tab=services" }, - { icon: DollarSign, label: "Financiero", path: "/dashboard/admin?tab=financial" }, - { - icon: FileText, - label: "Contenido", - path: "/dashboard/admin?tab=content", - subItems: [ - { icon: Globe, label: "Destinos", path: "/dashboard/admin?tab=content-destinations" }, - { icon: MapPin, label: "Lugares", path: "/dashboard/admin?tab=content-places" }, - { icon: BookOpen, label: "Guías", path: "/dashboard/admin?tab=content-guides" }, - { icon: Car, label: "Taxis", path: "/dashboard/admin?tab=content-taxis" }, - { icon: Navigation, label: "Geolocalización", path: "/dashboard/admin?tab=content-geolocation" }, - { icon: Megaphone, label: "Promocional", path: "/dashboard/admin?tab=content-promotional" }, - { icon: Sparkles, label: "AI Guías", path: "/dashboard/admin?tab=content-ai-guides" }, - { icon: Eye, label: "AR Content", path: "/dashboard/admin?tab=content-ar" }, - ], - }, - { - icon: Map, - label: "Geolocalización", - path: "/dashboard/admin?tab=geofences", - subItems: [ - { icon: Target, label: "Geofences", path: "/dashboard/admin?tab=geofences" }, - { icon: BarChart3, label: "Analytics", path: "/dashboard/admin?tab=analytics" }, - { icon: Zap, label: "Testing", path: "/dashboard/admin?tab=testing" }, - { icon: Shield, label: "Emergencia Geo", path: "/dashboard/admin?tab=emergency-geo" }, - { icon: Compass, label: "Navegación", path: "/dashboard/admin?tab=navigation" }, - ], - }, - { icon: AlertTriangle, label: "Emergencias", path: "/dashboard/admin?tab=emergency" }, - { icon: MessageSquare, label: "Soporte", path: "/dashboard/admin?tab=support" }, - { icon: Settings, label: "Configuración", path: "/dashboard/admin?tab=config" }, - ], - }, - { - icon: Plus, - label: "Channel Manager", - path: "/dashboard/channel-manager", - subItems: [ - { icon: BarChart3, label: "Resumen", path: "/dashboard/channel-manager?tab=overview" }, - { icon: Zap, label: "Canales", path: "/dashboard/channel-manager?tab=channels" }, - { icon: Home, label: "Propiedades", path: "/dashboard/channel-manager?tab=listings" }, - { icon: BookOpen, label: "Reservas", path: "/dashboard/channel-manager?tab=reservations" }, - { icon: BarChart3, label: "Analytics", path: "/dashboard/channel-manager?tab=analytics" }, - ], - }, - { - icon: Hotel, - label: "Hotel Management", - path: "/dashboard/hotel", - subItems: [ - { icon: Home, label: "Habitaciones", path: "/dashboard/hotel/rooms" }, - { icon: DoorOpen, label: "Check-in", path: "/dashboard/hotel/checkin" }, - { icon: BellRing, label: "Room Service", path: "/dashboard/hotel/room-service" }, - { icon: Key, label: "Acceso", path: "/dashboard/hotel/keyless" }, - { icon: Users, label: "Personal", path: "/dashboard/hotel/staff" }, - ], - }, - { - icon: UtensilsCrossed, - label: "Restaurant POS", - path: "/dashboard/restaurant", - subItems: [ - { icon: CreditCard, label: "POS Terminal", path: "/dashboard/restaurant/pos" }, - { icon: Receipt, label: "Pedidos", path: "/dashboard/restaurant/orders" }, - { icon: ChefHat, label: "Cocina", path: "/dashboard/restaurant/kitchen" }, - { icon: Receipt, label: "Cuentas", path: "/dashboard/restaurant/bills" }, - { icon: Grid3x3, label: "Mesas", path: "/dashboard/restaurant/tables" }, - { icon: UtensilsCrossed, label: "Menú", path: "/dashboard/restaurant/menu" }, - { icon: Package, label: "Inventario", path: "/dashboard/restaurant/inventory" }, - { icon: Users, label: "Personal", path: "/dashboard/restaurant/staff" }, - ], - }, - { icon: Brain, label: "Personalization", path: "/dashboard/personalization" }, - { icon: Shield, label: "Security", path: "/dashboard/security" }, - { icon: Car, label: "Vehicle Management", path: "/dashboard/vehicle-management" }, - { icon: Leaf, label: "Sustainability", path: "/dashboard/sustainability" }, - { icon: Store, label: "Comercios", path: "/dashboard/establishments" }, - { icon: Wallet, label: "Wallet", path: "/dashboard/wallet" }, - { icon: MessageSquare, label: "Message", path: "/dashboard/messages", badge: "2" }, - ], - }, - { - label: "Listing", - items: [ - { icon: List, label: "My Listing", path: "/dashboard/my-listings" }, - { icon: Star, label: "Reviews", path: "/dashboard/reviews" }, - { icon: BookOpen, label: "Bookings", path: "/dashboard/bookings" }, - { icon: Heart, label: "Bookmark", path: "/dashboard/bookmarks" }, - { icon: FileText, label: "Invoice", path: "/dashboard/invoices" }, - ], - }, - { - label: "Account", - items: [ - { icon: User, label: "Edit Profile", path: "/dashboard/profile" }, - { icon: CreditCard, label: "Wallet", path: "/dashboard/wallet" }, - { icon: Settings, label: "Setting", path: "/dashboard/settings" }, - ], - }, -]; diff --git a/src/contexts/LanguageContext.tsx b/src/contexts/LanguageContext.tsx index bda0723..1344f1e 100644 --- a/src/contexts/LanguageContext.tsx +++ b/src/contexts/LanguageContext.tsx @@ -1,8 +1,8 @@ import React, { createContext, useContext, useState, useEffect } from 'react'; import { translations } from '@/i18n/translations'; -type Language = 'en' | 'es' | 'fr' | 'zh' | 'de'; -type TranslationKey = keyof typeof translations.en; +type Language = 'es' | 'en' | 'fr'; +type TranslationKey = keyof typeof translations.es; interface LanguageContextType { language: Language; @@ -15,7 +15,7 @@ const LanguageContext = createContext(undefined export const LanguageProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { const [language, setLanguageState] = useState(() => { const saved = localStorage.getItem('karibeo-language'); - return (saved as Language) || 'en'; + return (saved as Language) || 'es'; }); const setLanguage = (lang: Language) => { @@ -24,7 +24,7 @@ export const LanguageProvider: React.FC<{ children: React.ReactNode }> = ({ chil }; const t = (key: TranslationKey): string => { - return translations[language][key] || translations.en[key] || key; + return translations[language][key] || translations.es[key] || key; }; useEffect(() => { diff --git a/src/i18n/translations.ts b/src/i18n/translations.ts index 6edc76a..e06eaea 100644 --- a/src/i18n/translations.ts +++ b/src/i18n/translations.ts @@ -1,90 +1,4 @@ export const translations = { - en: { - // Navigation - home: 'Home', - explore: 'Explore', - about: 'About', - dashboard: 'Dashboard', - - // Authentication - signIn: 'Sign In', - signUp: 'Sign Up', - signOut: 'Sign Out', - email: 'Email', - password: 'Password', - confirmPassword: 'Confirm Password', - fullName: 'Full Name', - rememberMe: 'Remember me', - forgotPassword: 'Forgot password', - - // Welcome messages - welcomeBack: 'Welcome back! Please', - toContinue: 'to continue.', - welcomeSignUp: 'Welcome! Please', - unlockContent: 'Unlock a world of exclusive content, enjoy special offers, and be the first to dive into exciting news and updates by joining our community!', - - // Social auth - signUpWithApple: 'Sign up with Apple', - signUpWithGoogle: 'Sign up with Google', - privacyNotice: 'We won\'t post anything without your permission and your personal details are kept private', - - // Form labels - enterEmail: 'Enter Email', - enterValidEmail: 'Enter your valid email', - enterPassword: 'Enter Password', - - // Hero section - heroBadge: 'WE ARE #1 ON THE MARKET', - heroTitle: 'We\'re Here To Help You Navigate While Traveling', - heroSubtitle: 'You\'ll get comprehensive results based on the provided location.', - searchPlaceholder: 'What are you looking for?', - locationPlaceholder: 'Location', - searchButton: 'Search places', - - // Categories - apartments: 'Apartments', - restaurants: 'Restaurants', - events: 'Events/Arts', - shops: 'Shops', - museums: 'Museums', - gyms: 'Gymnasiums', - listings: 'listings', - - // Dashboard - totalIncome: 'Total Income', - visitors: 'Visitors', - totalOrders: 'Total Orders', - recentBookings: 'Recent Bookings', - statistics: 'Statistics', - myListings: 'My Listings', - addListing: 'Add Listing', - wallet: 'Wallet', - profile: 'Profile', - settings: 'Settings', - - // Common - loading: 'Loading...', - error: 'Error', - success: 'Success', - cancel: 'Cancel', - save: 'Save', - delete: 'Delete', - edit: 'Edit', - view: 'View', - - // Process section - processTitle: 'Find Your Dream Place The Best Way', - processSubtitle: 'Discover exciting categories. Find what you\'re looking for.', - step1: 'Input your location to start looking for landmarks.', - step2: 'Make an appointment at the place you want to visit.', - step3: 'Visit the place and enjoy the experience.', - - // Explore section - topRegions: 'Top Regions', - exploreCities: 'Explore Cities', - exploreMore: 'Explore more' - }, - es: { // Navigation home: 'Inicio', @@ -171,6 +85,92 @@ export const translations = { exploreMore: 'Explorar más' }, + en: { + // Navigation + home: 'Home', + explore: 'Explore', + about: 'About', + dashboard: 'Dashboard', + + // Authentication + signIn: 'Sign In', + signUp: 'Sign Up', + signOut: 'Sign Out', + email: 'Email', + password: 'Password', + confirmPassword: 'Confirm Password', + fullName: 'Full Name', + rememberMe: 'Remember me', + forgotPassword: 'Forgot password', + + // Welcome messages + welcomeBack: 'Welcome back! Please', + toContinue: 'to continue.', + welcomeSignUp: 'Welcome! Please', + unlockContent: 'Unlock a world of exclusive content, enjoy special offers, and be the first to dive into exciting news and updates by joining our community!', + + // Social auth + signUpWithApple: 'Sign up with Apple', + signUpWithGoogle: 'Sign up with Google', + privacyNotice: 'We won\'t post anything without your permission and your personal details are kept private', + + // Form labels + enterEmail: 'Enter Email', + enterValidEmail: 'Enter your valid email', + enterPassword: 'Enter Password', + + // Hero section + heroBadge: 'WE ARE #1 ON THE MARKET', + heroTitle: 'We\'re Here To Help You Navigate While Traveling', + heroSubtitle: 'You\'ll get comprehensive results based on the provided location.', + searchPlaceholder: 'What are you looking for?', + locationPlaceholder: 'Location', + searchButton: 'Search places', + + // Categories + apartments: 'Apartments', + restaurants: 'Restaurants', + events: 'Events/Arts', + shops: 'Shops', + museums: 'Museums', + gyms: 'Gymnasiums', + listings: 'listings', + + // Dashboard + totalIncome: 'Total Income', + visitors: 'Visitors', + totalOrders: 'Total Orders', + recentBookings: 'Recent Bookings', + statistics: 'Statistics', + myListings: 'My Listings', + addListing: 'Add Listing', + wallet: 'Wallet', + profile: 'Profile', + settings: 'Settings', + + // Common + loading: 'Loading...', + error: 'Error', + success: 'Success', + cancel: 'Cancel', + save: 'Save', + delete: 'Delete', + edit: 'Edit', + view: 'View', + + // Process section + processTitle: 'Find Your Dream Place The Best Way', + processSubtitle: 'Discover exciting categories. Find what you\'re looking for.', + step1: 'Input your location to start looking for landmarks.', + step2: 'Make an appointment at the place you want to visit.', + step3: 'Visit the place and enjoy the experience.', + + // Explore section + topRegions: 'Top Regions', + exploreCities: 'Explore Cities', + exploreMore: 'Explore more' + }, + fr: { // Navigation home: 'Accueil', @@ -255,177 +255,5 @@ export const translations = { topRegions: 'Principales Régions', exploreCities: 'Explorer les Villes', exploreMore: 'Explorer plus' - }, - - zh: { - // Navigation - home: '首页', - explore: '探索', - about: '关于', - dashboard: '仪表板', - - // Authentication - signIn: '登录', - signUp: '注册', - signOut: '退出', - email: '电子邮件', - password: '密码', - confirmPassword: '确认密码', - fullName: '全名', - rememberMe: '记住我', - forgotPassword: '忘记密码', - - // Welcome messages - welcomeBack: '欢迎回来!请', - toContinue: '继续。', - welcomeSignUp: '欢迎!请', - unlockContent: '通过加入我们的社区,解锁专属内容世界,享受特别优惠,并率先了解激动人心的新闻和更新!', - - // Social auth - signUpWithApple: '使用 Apple 注册', - signUpWithGoogle: '使用 Google 注册', - privacyNotice: '未经您的许可,我们不会发布任何内容,您的个人详细信息将保密', - - // Form labels - enterEmail: '输入电子邮件', - enterValidEmail: '输入有效的电子邮件', - enterPassword: '输入密码', - - // Hero section - heroBadge: '我们是市场第一', - heroTitle: '我们在这里帮助您在旅行时导航', - heroSubtitle: '根据提供的位置,您将获得全面的结果。', - searchPlaceholder: '您在寻找什么?', - locationPlaceholder: '位置', - searchButton: '搜索地点', - - // Categories - apartments: '公寓', - restaurants: '餐厅', - events: '活动/艺术', - shops: '商店', - museums: '博物馆', - gyms: '健身房', - listings: '列表', - - // Dashboard - totalIncome: '总收入', - visitors: '访客', - totalOrders: '总订单', - recentBookings: '最近预订', - statistics: '统计', - myListings: '我的列表', - addListing: '添加列表', - wallet: '钱包', - profile: '个人资料', - settings: '设置', - - // Common - loading: '加载中...', - error: '错误', - success: '成功', - cancel: '取消', - save: '保存', - delete: '删除', - edit: '编辑', - view: '查看', - - // Process section - processTitle: '以最佳方式找到您的梦想之地', - processSubtitle: '发现令人兴奋的类别。找到您想要的。', - step1: '输入您的位置以开始查找地标。', - step2: '在您想要访问的地方预约。', - step3: '参观地点并享受体验。', - - // Explore section - topRegions: '热门地区', - exploreCities: '探索城市', - exploreMore: '探索更多' - }, - - de: { - // Navigation - home: 'Startseite', - explore: 'Erkunden', - about: 'Über uns', - dashboard: 'Dashboard', - - // Authentication - signIn: 'Anmelden', - signUp: 'Registrieren', - signOut: 'Abmelden', - email: 'E-Mail', - password: 'Passwort', - confirmPassword: 'Passwort bestätigen', - fullName: 'Vollständiger Name', - rememberMe: 'Angemeldet bleiben', - forgotPassword: 'Passwort vergessen', - - // Welcome messages - welcomeBack: 'Willkommen zurück! Bitte', - toContinue: 'um fortzufahren.', - welcomeSignUp: 'Willkommen! Bitte', - unlockContent: 'Entsperren Sie eine Welt exklusiver Inhalte, genießen Sie besondere Angebote und seien Sie der Erste, der spannende Neuigkeiten und Updates erhält, indem Sie unserer Community beitreten!', - - // Social auth - signUpWithApple: 'Mit Apple registrieren', - signUpWithGoogle: 'Mit Google registrieren', - privacyNotice: 'Wir werden nichts ohne Ihre Erlaubnis veröffentlichen und Ihre persönlichen Daten werden privat gehalten', - - // Form labels - enterEmail: 'E-Mail eingeben', - enterValidEmail: 'Gültige E-Mail eingeben', - enterPassword: 'Passwort eingeben', - - // Hero section - heroBadge: 'WIR SIND #1 AUF DEM MARKT', - heroTitle: 'Wir sind hier, um Ihnen beim Navigieren auf Reisen zu helfen', - heroSubtitle: 'Sie erhalten umfassende Ergebnisse basierend auf dem angegebenen Standort.', - searchPlaceholder: 'Wonach suchen Sie?', - locationPlaceholder: 'Standort', - searchButton: 'Orte suchen', - - // Categories - apartments: 'Apartments', - restaurants: 'Restaurants', - events: 'Veranstaltungen/Kunst', - shops: 'Geschäfte', - museums: 'Museen', - gyms: 'Fitnessstudios', - listings: 'Einträge', - - // Dashboard - totalIncome: 'Gesamteinkommen', - visitors: 'Besucher', - totalOrders: 'Gesamtbestellungen', - recentBookings: 'Aktuelle Buchungen', - statistics: 'Statistiken', - myListings: 'Meine Einträge', - addListing: 'Eintrag hinzufügen', - wallet: 'Geldbörse', - profile: 'Profil', - settings: 'Einstellungen', - - // Common - loading: 'Wird geladen...', - error: 'Fehler', - success: 'Erfolg', - cancel: 'Abbrechen', - save: 'Speichern', - delete: 'Löschen', - edit: 'Bearbeiten', - view: 'Ansehen', - - // Process section - processTitle: 'Finden Sie Ihren Traumort auf die beste Weise', - processSubtitle: 'Entdecken Sie aufregende Kategorien. Finden Sie, was Sie suchen.', - step1: 'Geben Sie Ihren Standort ein, um nach Sehenswürdigkeiten zu suchen.', - step2: 'Vereinbaren Sie einen Termin an dem Ort, den Sie besuchen möchten.', - step3: 'Besuchen Sie den Ort und genießen Sie das Erlebnis.', - - // Explore section - topRegions: 'Top-Regionen', - exploreCities: 'Städte erkunden', - exploreMore: 'Mehr erkunden' } -}; +}; \ No newline at end of file diff --git a/src/pages/dashboard/EstablishmentsManagement.tsx b/src/pages/dashboard/EstablishmentsManagement.tsx deleted file mode 100644 index 6d72862..0000000 --- a/src/pages/dashboard/EstablishmentsManagement.tsx +++ /dev/null @@ -1,178 +0,0 @@ -import { Link } from 'react-router-dom'; -import { Card, CardContent } from '@/components/ui/card'; -import { Store, CreditCard, Receipt, Package, Users, BarChart3, QrCode, ArrowRight } from 'lucide-react'; - -const EstablishmentsManagement = () => { - const stats = { - activeOrders: 24, - dailyRevenue: 8450, - inventory: 156, - staff: 18 - }; - - const sections = [ - { - title: 'POS Terminal', - description: 'Complete point of sale system', - icon: CreditCard, - path: '/dashboard/establishments/pos', - color: 'green' - }, - { - title: 'Orders Management', - description: 'Manage all orders and transactions', - icon: Receipt, - path: '/dashboard/establishments/orders', - color: 'blue' - }, - { - title: 'Inventory Control', - description: 'Track stock and product management', - icon: Package, - path: '/dashboard/establishments/inventory', - color: 'purple' - }, - { - title: 'Staff Management', - description: 'Manage your team and schedules', - icon: Users, - path: '/dashboard/establishments/staff', - color: 'indigo' - }, - { - title: 'Business List', - description: 'View and manage all establishments', - icon: Store, - path: '/dashboard/establishments/businesses', - color: 'orange' - }, - { - title: 'Categories', - description: 'Manage business categories', - icon: QrCode, - path: '/dashboard/establishments/categories', - color: 'yellow' - }, - { - title: 'Verification', - description: 'Review pending verifications', - icon: BarChart3, - path: '/dashboard/establishments/verification', - color: 'red' - }, - { - title: 'Analytics', - description: 'Business insights and reports', - icon: BarChart3, - path: '/dashboard/establishments/analytics', - color: 'teal' - } - ]; - - return ( -
-
-
-

- - Establishments Management -

-

- Complete business management system -

-
-
- - {/* Stats Overview */} -
- - -
-
-

Active Orders

-

{stats.activeOrders}

-

In progress now

-
-
- -
-
-
-
- - - -
-
-

Daily Revenue

-

${stats.dailyRevenue.toLocaleString()}

-

+15% vs yesterday

-
-
- -
-
-
-
- - - -
-
-

Inventory Items

-

{stats.inventory}

-

Products tracked

-
-
- -
-
-
-
- - - -
-
-

Staff Members

-

{stats.staff}

-

Active employees

-
-
- -
-
-
-
-
- - {/* Sections Grid */} -
-

System Modules

-
- {sections.map((section) => { - const Icon = section.icon; - return ( - - - -
-
- -
- -
-

{section.title}

-

{section.description}

-
-
- - ); - })} -
-
-
- ); -}; - -export default EstablishmentsManagement; diff --git a/src/pages/dashboard/establishments/EstablishmentInventory.tsx b/src/pages/dashboard/establishments/EstablishmentInventory.tsx deleted file mode 100644 index 4951354..0000000 --- a/src/pages/dashboard/establishments/EstablishmentInventory.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; -import { Package } from 'lucide-react'; - -const EstablishmentInventory = () => { - return ( -
-

Inventory Control

- - - - - Stock Management - - - -

Inventory connected to API

-
-
-
- ); -}; - -export default EstablishmentInventory; diff --git a/src/pages/dashboard/establishments/EstablishmentOrders.tsx b/src/pages/dashboard/establishments/EstablishmentOrders.tsx deleted file mode 100644 index 734cb26..0000000 --- a/src/pages/dashboard/establishments/EstablishmentOrders.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; -import { Receipt } from 'lucide-react'; - -const EstablishmentOrders = () => { - return ( -
-

Orders Management

- - - - - All Orders - - - -

Orders connected to API

-
-
-
- ); -}; - -export default EstablishmentOrders; diff --git a/src/pages/dashboard/establishments/EstablishmentStaff.tsx b/src/pages/dashboard/establishments/EstablishmentStaff.tsx deleted file mode 100644 index 13e9120..0000000 --- a/src/pages/dashboard/establishments/EstablishmentStaff.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; -import { Users } from 'lucide-react'; - -const EstablishmentStaff = () => { - return ( -
-

Staff Management

- - - - - Team Management - - - -

Staff management connected to API

-
-
-
- ); -}; - -export default EstablishmentStaff; diff --git a/src/pages/dashboard/establishments/POSTerminal.tsx b/src/pages/dashboard/establishments/POSTerminal.tsx deleted file mode 100644 index 3cf4e80..0000000 --- a/src/pages/dashboard/establishments/POSTerminal.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; -import { Button } from '@/components/ui/button'; -import { CreditCard } from 'lucide-react'; - -const POSTerminal = () => { - return ( -
-

POS Terminal

- - - - - Point of Sale System - - - -

Complete POS terminal connected to API

- -
-
-
- ); -}; - -export default POSTerminal;