fix and update

This commit is contained in:
lendry
2026-07-01 22:46:04 +03:00
parent cb82544905
commit 2b88e028c6
7 changed files with 385 additions and 79 deletions

View File

@@ -3,8 +3,9 @@
import { useCallback, useEffect, useMemo, useState } from 'react';
import { FileText } from 'lucide-react';
import { DocumentFormDialog } from '@/components/documents/document-form-dialog';
import { DocumentPhotosInline } from '@/components/documents/document-photo-gallery';
import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog';
import { getDocumentType, indexDocumentsByType, type DocumentTypeCode } from '@/lib/document-catalog';
import { getDocumentType, indexDocumentsByType, parseDocumentPhotos, parseMetadata, type DocumentTypeCode } from '@/lib/document-catalog';
import { apiFetch, UserDocument } from '@/lib/api';
import { cn } from '@/lib/utils';
@@ -68,22 +69,29 @@ export function UserDocumentsDialog({
const config = getDocumentType(document.type);
if (!config) return null;
const Icon = config.icon;
const photoKeys = parseDocumentPhotos(parseMetadata(document.metadataJson));
return (
<button
key={document.id}
type="button"
onClick={() => openDocument(document.type as DocumentTypeCode)}
className="flex w-full items-center gap-3 rounded-2xl bg-[#f4f5f8] px-4 py-3 text-left transition hover:bg-[#eceef4]"
>
<div className={cn('flex h-10 w-10 items-center justify-center rounded-xl', config.accent)}>
<Icon className="h-5 w-5" />
</div>
<div className="min-w-0 flex-1">
<div className="font-medium">{config.label}</div>
<div className="truncate text-sm text-[#667085]">{document.number}</div>
</div>
<FileText className="h-4 w-4 text-[#a8adbc]" />
</button>
<div key={document.id}>
<button
type="button"
onClick={() => openDocument(document.type as DocumentTypeCode)}
className="flex w-full items-center gap-3 rounded-2xl bg-[#f4f5f8] px-4 py-3 text-left transition hover:bg-[#eceef4]"
>
<div className={cn('flex h-10 w-10 items-center justify-center rounded-xl', config.accent)}>
<Icon className="h-5 w-5" />
</div>
<div className="min-w-0 flex-1">
<div className="font-medium">{config.label}</div>
<div className="truncate text-sm text-[#667085]">{document.number}</div>
</div>
<FileText className="h-4 w-4 text-[#a8adbc]" />
</button>
{photoKeys.length > 0 && token ? (
<div className="mt-2 px-1">
<DocumentPhotosInline userId={targetUserId} token={token} storageKeys={photoKeys} />
</div>
) : null}
</div>
);
})}
</div>