'use client' import { useState } from 'react' import { useTheme } from '@/lib/ThemeContext' import { TeacherUnavailableDayEditor } from './TeacherUnavailableDayEditor' import { TeacherUnavailableWindowEditor } from './TeacherUnavailableWindowEditor' import { SubjectMaxConsecutiveEditor } from './SubjectMaxConsecutiveEditor' import { SubjectPreferredPeriodEditor } from './SubjectPreferredPeriodEditor' type RuleType = | 'teacher-unavailable-day' | 'teacher-unavailable-window' | 'subject-max-consecutive' | 'subject-preferred-period' interface RuleGroup { group: string rules: { id: RuleType | string; label: string; implemented: boolean }[] } const RULE_GROUPS: RuleGroup[] = [ { group: 'Lehrer', rules: [ { id: 'teacher-unavailable-day', label: 'Tag nicht verfuegbar', implemented: true }, { id: 'teacher-unavailable-window', label: 'Zeitfenster nicht verfuegbar', implemented: true }, { id: 'teacher-max-hours-day', label: 'Max. Stunden / Tag', implemented: false }, { id: 'teacher-max-hours-week', label: 'Max. Stunden / Woche', implemented: false }, { id: 'teacher-excluded-subject', label: 'Fach ausgeschlossen', implemented: false }, { id: 'teacher-excluded-room', label: 'Raum ausgeschlossen', implemented: false }, ], }, { group: 'Fach', rules: [ { id: 'subject-max-consecutive', label: 'Max. Stunden am Stueck', implemented: true }, { id: 'subject-preferred-period', label: 'Bevorzugter Stunden-Bereich', implemented: true }, { id: 'subject-min-day-gap', label: 'Min. Tagesabstand', implemented: false }, { id: 'subject-contiguous-when-repeated', label: 'Bei Mehrfach: zusammenhaengend', implemented: false }, { id: 'subject-double-lesson', label: 'Doppelstunde bevorzugt', implemented: false }, ], }, { group: 'Klasse', rules: [ { id: 'class-max-hours-day', label: 'Max. Stunden / Tag', implemented: false }, { id: 'class-no-gaps', label: 'Keine Freistunden', implemented: false }, ], }, { group: 'Raum', rules: [ { id: 'room-requires-type', label: 'Fach benoetigt Raumtyp', implemented: false }, { id: 'room-unavailable', label: 'Raum nicht verfuegbar', implemented: false }, ], }, ] export function RegelnHub() { const { isDark } = useTheme() const [active, setActive] = useState('teacher-unavailable-day') return (
{active === 'teacher-unavailable-day' && } {active === 'teacher-unavailable-window' && } {active === 'subject-max-consecutive' && } {active === 'subject-preferred-period' && }
) }