'use client' import React, { useState } from 'react' import Link from 'next/link' import { useParams } from 'next/navigation' import { DSR_TYPE_INFO, isOverdue, isUrgent } from '@/lib/sdk/dsr/types' import { DSRWorkflowStepper, DSRIdentityModal, DSRCommunicationLog, } from '@/components/sdk/dsr' import { DSRHeader } from './_components/DSRHeader' import { DSRDetailsTab } from './_components/DSRDetailsTab' import { DSRTypeSpecificTab } from './_components/DSRTypeSpecificTab' import { DSRSidebar } from './_components/DSRSidebar' import { useDSRDetail } from './_hooks/useDSRDetail' export default function DSRDetailPage() { const params = useParams() const requestId = params.requestId as string const [showIdentityModal, setShowIdentityModal] = useState(false) const [activeContentTab, setActiveContentTab] = useState<'details' | 'communication' | 'type-specific'>('details') const { request, setRequest, communications, history, exceptionChecks, isLoading, handleVerifyIdentity, handleAssign, handleExtendDeadline, handleComplete, handleReject, handleSendCommunication, handleExceptionCheckChange, } = useDSRDetail(requestId) if (isLoading) { return (
) } if (!request) { return (

Anfrage nicht gefunden

Die angeforderte DSR-Anfrage existiert nicht oder wurde geloescht.

Zurueck zur Uebersicht
) } const typeInfo = DSR_TYPE_INFO[request.type] const overdue = isOverdue(request) const urgent = isUrgent(request) return (
{/* Workflow Stepper */}
{/* Main Content: 2/3 + 1/3 Layout */}
{/* Left Column - 2/3 */}
{/* Content Tabs */}
{activeContentTab === 'details' && ( setShowIdentityModal(true)} /> )} {activeContentTab === 'communication' && ( )} {activeContentTab === 'type-specific' && ( )}
{/* Right Column - 1/3 Sidebar */} setShowIdentityModal(true)} onExtendDeadline={handleExtendDeadline} onComplete={handleComplete} onReject={handleReject} onAssign={handleAssign} />
{/* Identity Modal */} setShowIdentityModal(false)} onVerify={handleVerifyIdentity} requesterName={request.requester.name} requesterEmail={request.requester.email} />
) }