5 Commits

View File

@@ -104,7 +104,7 @@ export function CreatePlanDialog({ open, onOpenChange }: { open: boolean; onOpen
setDbFiles((data || []).map((file: any) => ({
id: file.documentos_id,
titulo: file.titulo_archivo,
s3_file_path: file.titulo_archivo,
s3_file_path: `prueba-referencias/documento_${file.documentos_id}.pdf`,
fecha_subida: file.fecha_subida,
tags: file.tags || [],
})));
@@ -118,35 +118,35 @@ export function CreatePlanDialog({ open, onOpenChange }: { open: boolean; onOpen
const isSelected = useCallback((path: string) => selectedFiles.includes(path), [selectedFiles]);
const toggleSelected = useCallback((path: string) => {
setSelectedFiles(prev => prev.includes(path) ? prev.filter(p => p !== path) : [...prev, path]);
const toggleSelected = useCallback((id: string) => {
setSelectedFiles(prev => prev.includes(id) ? prev.filter(p => p !== id) : [...prev, id]);
}, []);
const replaceSelection = useCallback((path: string) => {
setSelectedFiles([path]);
const replaceSelection = useCallback((id: string) => {
setSelectedFiles([id]);
}, []);
const rangeSelect = useCallback((start: number, end: number) => {
const [s, e] = start < end ? [start, end] : [end, start];
const paths = dbFiles.slice(s, e + 1).map(f => f.s3_file_path);
setSelectedFiles(prev => Array.from(new Set([...prev, ...paths])));
const ids = dbFiles.slice(s, e + 1).map(f => f.id);
setSelectedFiles(prev => Array.from(new Set([...prev, ...ids])));
}, [dbFiles]);
const handleCardClick = useCallback((e: React.MouseEvent, index: number, file: { s3_file_path: string }) => {
const path = file.s3_file_path;
const handleCardClick = useCallback((e: React.MouseEvent, index: number, file: { id: string }) => {
const id = file.id;
if (e.shiftKey && lastSelectedIndex !== null) {
rangeSelect(lastSelectedIndex, index);
} else if (e.metaKey || e.ctrlKey) {
toggleSelected(path);
toggleSelected(id);
setLastSelectedIndex(index);
} else {
if (isSelected(path) && selectedFiles.length === 1) {
if (isSelected(id) && selectedFiles.length === 1) {
// si ya es el único seleccionado, des-selecciona
setSelectedFiles([]);
setLastSelectedIndex(null);
} else {
replaceSelection(path);
replaceSelection(id);
setLastSelectedIndex(index);
}
}
@@ -167,7 +167,7 @@ export function CreatePlanDialog({ open, onOpenChange }: { open: boolean; onOpen
prompt: prompt,
insert: true,
files: selectedFiles,
uuid: auth.user?.id,
created_by: auth.user?.id,
})
const newId = (res as any)?.id || (res as any)?.plan?.id || (res as any)?.data?.id
if (newId) {
@@ -261,7 +261,7 @@ export function CreatePlanDialog({ open, onOpenChange }: { open: boolean; onOpen
<div role="grid" className="grid gap-4 xs:grid-cols-2 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5">
{dbFiles.map((file, index) => {
const ext = fileExt(file.titulo);
const selected = isSelected(file.s3_file_path);
const selected = isSelected(file.id);
console.log(file);
return (