Mission Refactor Big

This commit is contained in:
alma 2026-01-09 14:00:15 +01:00
parent b4c019925f
commit 3e4c0cba05

View File

@ -374,6 +374,18 @@ export default function MissionDetailPage() {
<FileText className="h-4 w-4 mr-2" /> <FileText className="h-4 w-4 mr-2" />
Général Général
</TabsTrigger> </TabsTrigger>
<TabsTrigger
value="documents"
className="data-[state=active]:bg-blue-600 data-[state=active]:text-white px-6 py-2"
>
<FileIcon className="h-4 w-4 mr-2" />
Documents
{mission.attachments && mission.attachments.length > 0 && (
<span className="ml-2 bg-blue-100 text-blue-800 text-xs font-medium px-2 py-0.5 rounded-full">
{mission.attachments.length}
</span>
)}
</TabsTrigger>
<TabsTrigger <TabsTrigger
value="plan" value="plan"
className="data-[state=active]:bg-blue-600 data-[state=active]:text-white px-6 py-2" className="data-[state=active]:bg-blue-600 data-[state=active]:text-white px-6 py-2"
@ -496,34 +508,6 @@ export default function MissionDetailPage() {
</div> </div>
)} )}
{/* Attachments */}
{mission.attachments && mission.attachments.length > 0 && (
<div className="bg-white rounded-lg shadow-sm border border-gray-100 p-6">
<h2 className="text-xl font-semibold text-gray-800 mb-4">Documents</h2>
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
{mission.attachments.map((attachment) => (
<a
key={attachment.id}
href={attachment.publicUrl}
target="_blank"
rel="noopener noreferrer"
className="bg-green-50 p-4 rounded-lg flex flex-col hover:bg-green-100 transition-colors"
>
<div className="text-green-700 mb-2">
<FileIcon className="h-10 w-10" />
</div>
<div>
<p className="font-medium text-gray-800 mb-1 truncate">{attachment.filename}</p>
<p className="text-sm text-gray-500">
{attachment.fileType.split('/')[1]?.toUpperCase() || 'Fichier'}
</p>
</div>
</a>
))}
</div>
</div>
)}
{/* Delete Button */} {/* Delete Button */}
<div className="flex justify-end"> <div className="flex justify-end">
<Button <Button
@ -542,6 +526,52 @@ export default function MissionDetailPage() {
</div> </div>
</TabsContent> </TabsContent>
{/* Documents Tab */}
<TabsContent value="documents" className="space-y-6">
<div className="bg-white rounded-lg shadow-sm border border-gray-100 p-6">
<h2 className="text-xl font-semibold text-gray-800 mb-4">Documents attachés</h2>
{mission.attachments && mission.attachments.length > 0 ? (
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
{mission.attachments.map((attachment) => (
<a
key={attachment.id}
href={attachment.publicUrl}
target="_blank"
rel="noopener noreferrer"
className="bg-green-50 p-4 rounded-lg flex flex-col hover:bg-green-100 transition-colors border border-green-100"
>
<div className="text-green-700 mb-2">
<FileIcon className="h-10 w-10" />
</div>
<div>
<p className="font-medium text-gray-800 mb-1 truncate">{attachment.filename}</p>
<p className="text-sm text-gray-500">
{attachment.fileType.split('/')[1]?.toUpperCase() || 'Fichier'}
</p>
<p className="text-xs text-gray-400 mt-1">
{(attachment.fileSize / 1024).toFixed(1)} KB
</p>
</div>
</a>
))}
</div>
) : (
<div className="flex flex-col items-center justify-center py-12 text-center">
<div className="w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mb-4">
<FileIcon className="h-8 w-8 text-gray-400" />
</div>
<h3 className="text-lg font-medium text-gray-900 mb-2">
Aucun document
</h3>
<p className="text-gray-500 max-w-md">
Cette mission n'a pas de documents attachés.
</p>
</div>
)}
</div>
</TabsContent>
{/* Plan d'actions Tab */} {/* Plan d'actions Tab */}
<TabsContent value="plan" className="space-y-6"> <TabsContent value="plan" className="space-y-6">
<div className="bg-white rounded-lg shadow-sm border border-gray-100 p-6"> <div className="bg-white rounded-lg shadow-sm border border-gray-100 p-6">