Test service setup navigation widget s step status tracking a responsive variantami.
Doporučeno:
Ceny
Vše je hotovo! Služba je připravena k publikaci.
serviceId: string
ID služby pro generování URL odkazů
steps: StepStatus[]
Stavy kroků: 'pending' | 'in_progress' | 'completed'
variant?: 'sidebar' | 'accordion'
Layout varianta (desktop sidebar vs. mobile accordion), výchozí: 'sidebar'
6 Navigation Items
Základ, Ceny, Texty, Rozvrh, Termíny, Publikace
Step Status Indicators
Completed (✓), In Progress (⟳), Pending (○)
Active Route Highlighting
Vyznačení aktuálně otevřené sekce
Recommendation Section
"Doporučeno" - zobrazuje další krok
Responsive Design
Sidebar na desktop, Accordion na mobile
WCAG AA Accessibility
44px touch targets, keyboard navigation
Design Tokens
Bez hardcoded barev, používá shadcn paletu
import { IntegratedNavigationWidget } from '@/components/services/IntegratedNavigationWidget';
export function ServiceLayout({ serviceId }: { serviceId: string }) {
const service = await getService(serviceId);
return (
<div className="grid grid-cols-3 gap-4">
{/* Sidebar s navigací */}
<aside className="hidden lg:block">
<IntegratedNavigationWidget
serviceId={serviceId}
steps={{
basic: service.basic ? 'completed' : 'pending',
pricing: service.pricing ? 'completed' : 'pending',
content: service.content ? 'completed' : 'pending',
schedule: service.schedule ? 'completed' : 'pending',
slots: service.slots ? 'completed' : 'pending',
publish: service.publish ? 'completed' : 'pending',
}}
variant="sidebar"
/>
</aside>
{/* Mobile accordion */}
<div className="lg:hidden mb-4">
<IntegratedNavigationWidget
serviceId={serviceId}
steps={/* ... */}
variant="accordion"
/>
</div>
{/* Main content */}
<main className="col-span-2 lg:col-span-2">
{/* Page content */}
</main>
</div>
);
}