diff --git a/frontend/src/pages/CaseDetail.jsx b/frontend/src/pages/CaseDetail.jsx index 339f8c3..77e7b6f 100644 --- a/frontend/src/pages/CaseDetail.jsx +++ b/frontend/src/pages/CaseDetail.jsx @@ -1,7 +1,7 @@ import React, { useState, useEffect, useRef } from 'react'; import { commentService, activityService, attachmentService, medicalRecordService } from '../services/api'; import { STATUS_MAP } from '../utils/statusHelper'; -import { Stethoscope, Lock, FileText, CheckCircle, Upload, Trash2, ExternalLink } from 'lucide-react'; +import { Stethoscope, Lock, FileText, CheckCircle, Upload, Trash2, ExternalLink, UserMinus } from 'lucide-react'; const CaseDetail = ({ caseData, onBack, onGoToPet, currentUserId, userRole }) => { const [newMessage, setNewMessage] = useState(''); @@ -87,6 +87,17 @@ const CaseDetail = ({ caseData, onBack, onGoToPet, currentUserId, userRole }) => } }; + const handleReleaseCase = async () => { + if (!window.confirm("Släppa ärendet? Det blir ledigt för en annan veterinär att ta över.")) return; + try { + const res = await medicalRecordService.unassignVet(caseData.id); + if (res?.data?.status) setLocalStatus(res.data.status); + await refetchActivityLog(); + } catch (error) { + alert("Kunde inte släppa ärendet."); + } + }; + // FIX: Atomisk stängning enligt förra fyndet const handleCloseCase = async () => { if (!clinicalNote.trim()) return alert("Vänligen skriv en slutnotering."); @@ -211,6 +222,14 @@ const CaseDetail = ({ caseData, onBack, onGoToPet, currentUserId, userRole }) => + {caseData.assignedVetId === currentUserId && ( + + )}