'use client' import React, { useState, useEffect } from 'react' import Link from 'next/link' import NormenTab, { type Norm } from './_components/NormenTab' import PatternsTab, { type HazardPattern } from './_components/PatternsTab' import MeasuresTab, { type ProtectiveMeasure } from './_components/MeasuresTab' type TabId = 'normen' | 'patterns' | 'measures' const TABS: { id: TabId; label: string }[] = [ { id: 'normen', label: 'Normen' }, { id: 'patterns', label: 'Patterns' }, { id: 'measures', label: 'Massnahmen' }, ] export default function IACELibraryPage() { const [activeTab, setActiveTab] = useState('normen') const [norms, setNorms] = useState([]) const [patterns, setPatterns] = useState([]) const [measures, setMeasures] = useState([]) const [loading, setLoading] = useState(true) useEffect(() => { async function load() { try { const [normsRes, patternsRes, measuresRes] = await Promise.all([ fetch('/api/sdk/v1/iace/norms-library'), fetch('/api/sdk/v1/iace/hazard-patterns'), fetch('/api/sdk/v1/iace/protective-measures-library'), ]) if (normsRes.ok) { const data = await normsRes.json() setNorms(data.norms || []) } if (patternsRes.ok) { const data = await patternsRes.json() setPatterns(data.patterns || []) } if (measuresRes.ok) { const data = await measuresRes.json() setMeasures(data.protective_measures || []) } } catch (err) { console.error('Failed to load IACE library data:', err) } finally { setLoading(false) } } load() }, []) const counts: Record = { normen: norms.length, patterns: patterns.length, measures: measures.length, } if (loading) { return (
) } return (
{/* Back link + Header */}
Zurueck zur IACE-Uebersicht

Bibliothek

Normen, Hazard Patterns und Schutzmassnahmen fuer die CE-Konformitaetsbewertung

{/* Tabs */}
{/* Tab Content */}
{activeTab === 'normen' && } {activeTab === 'patterns' && } {activeTab === 'measures' && }
) }