"use client";
import React, { useState, useEffect } from "react";
import Link from "next/link";
import visaData from "../visa.json";
const ASSET_URL = process.env.NEXT_PUBLIC_API_URL || "";
interface CountryDetailsClientProps {
country: {
id: number;
name: string;
icon: string;
services: string[];
};
}
export default function CountryDetailsClient({
country,
}: CountryDetailsClientProps) {
const [showBackToTop, setShowBackToTop] = useState(false);
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
// Get detailed data from visa.json
const countryData = visaData.visaSystem.detailedView.activeCountry;
const relatedCountries =
visaData.visaSystem.detailedView.relatedCountries.map((c: any) => ({
...c,
icon: `${ASSET_URL}/${c.icon}`,
}));
const contactInfo = visaData.visaSystem.contactInfo;
useEffect(() => {
const handleScroll = () => setShowBackToTop(window.scrollY > 100);
window.addEventListener("scroll", handleScroll);
return () => window.removeEventListener("scroll", handleScroll);
}, []);
const scrollToTop = () => window.scrollTo({ top: 0, behavior: "smooth" });
return (
<>
{/* Back to Top */}
{/* Header Top */}
{/* Header */}
{/* Mobile Menu */}
{isMobileMenuOpen && (
setIsMobileMenuOpen(false)}
>
)}
{/* Breadcrumb */}
{countryData.title}
-
Home
- ›
- {countryData.name}
{/* Country Details */}
{/* Main Content */}
{countryData.name}
{countryData.description}
{countryData.additionalInfo}
{countryData.tagline}
{/* Visa Types */}
{countryData.visaTypes.map((typeGroup: any, idx: number) => (
{typeGroup.items.map((item: any, itemIdx: number) => (
{item.title}
{item.description}
))}
))}
{/* Visa Process */}
USA Visa Process
{countryData.visaProcess.steps.map((process: any) => (
-
{process.number}.
{process.title} – {process.description}
))}
{/* Gallery */}
{countryData.gallery.map((image: string, idx: number) => (

))}
{/* Visa Types List */}
Types of Visas
{countryData.visaCategories.steps.map(
(subGroup: string[], groupIdx: number) => (
{/* Map lần 2 để render từng chuỗi trong mảng con */}
{subGroup.map((category: string, idx: number) => (
-
{category}
))}
),
)}
{/* Service Options */}
Our {countryData.name} Visa Service Options
{countryData.visaProcess.steps.map((process: any) => (
-
{process.number}.
{process.title} – {process.description}
))}
{/* Sidebar */}
{/* Related Countries */}
{relatedCountries.map((c: any) => (
{c.name}
›
))}
{/* Contact Box */}
Visa & Immigration
Need Help? Book Lab Visit
📍
Location:
{contactInfo.location}
{/* Footer */}
>
);
}