'use client'; import React, { useEffect, useMemo, useState } from 'react'; import Link from 'next/link'; import { HeroSection } from '@/sections/HeroSection'; import { catalogService, type CategoryResponse } from '@/services/api/catalogService'; import { SIDEBAR_WIDTH, getCategoryMenuItems, // CategorySidebar — current mega sidebar kept in file, not deleted: // import { CategorySidebar } from '@/components/CategorySidebar'; } from '@/components/CategorySidebar'; interface HomeHeroRowProps { heroConfig?: any; showHero: boolean; initialCategories?: CategoryResponse[]; } /** * TechShop first viewport: All Categories rail (280px) + hero carousel. * Only mounted when `hero_slider` is Visible in the dashboard. */ export const HomeHeroRow: React.FC = ({ heroConfig, showHero = true, initialCategories, }) => { const [categories, setCategories] = useState( initialCategories || [] ); useEffect(() => { if (initialCategories?.length) { setCategories(initialCategories); return; } let cancelled = false; catalogService.getCategories().then((res) => { if (!cancelled && res?.length) setCategories(res); }); return () => { cancelled = true; }; }, [initialCategories]); const menu = useMemo(() => getCategoryMenuItems(categories), [categories]); if (!showHero) return null; return (
{/* Previous mega CategorySidebar rail — kept, not deleted: */}
); };