"use client";
import React, { useState } from "react";
// Mock user location data matching the screenshot
const userData = [
{
name: "Dhananjay T.",
email: "dhananjay@kafm.io",
mobile: "7489477369",
latitude: "18.5450",
longitude: "73.7935",
site: "Apple One",
// Relative coordinates for the map visual dots (X%, Y%)
x: "19%",
y: "38%",
},
{
name: "ME Local",
email: "me.local@kafm.io",
mobile: "9876543210",
latitude: "18.5469",
longitude: "73.7945",
site: "Apple One",
x: "44%",
y: "43%",
},
{
name: "TECH Local",
email: "tech.local@kafm.io",
mobile: "9123456780",
latitude: "18.5441",
longitude: "73.7951",
site: "Apple One",
x: "69%",
y: "48%",
},
];
export default function UserLocationPortal() {
const [viewMode, setViewMode] = useState<"map" | "table">("table");
const [mapType, setMapType] = useState<"MAP" | "SATELLITE">("MAP");
return (
{/* Top Breadcrumb & Header */}
{/* Breadcrumb */}
APPLE ONE — HQ TOWER
{" "}
• CONFIGURE{" "}
• USER LOCATION
{/* Main Title */}
User location
Live position of active technicians, captured from the mobile app. Map
and table views.
{/* View Switcher Buttons */}
{/* Main Container */}
{/* Header Bar inside card */}
Active users • Apple One
GPS • live
{/* Live Grid Map Visual Area (Height Reduced to h-36) */}
{/* Dark Grid Background Effect */}
{/* User Map Markers */}
{userData.map((user, index) => (
{/* Pulsing Outer Glow Effect */}
{/* Dot Center */}
{/* Tooltip on Hover */}
{user.name}
{user.latitude}, {user.longitude}
))}
{/* Map Type Toggle (Bottom Right of Map Area) */}
•
{/* User Data Table */}
|
Name
|
Email
|
Mobile
|
Latitude
|
Longitude
|
Site
|
{userData.map((user, idx) => (
|
{user.name}
|
{user.email} |
{user.mobile} |
{user.latitude} |
{user.longitude} |
{user.site}
|
))}
);
}