diff --git a/src/components/archivos/DetailDialog.tsx b/src/components/archivos/DetailDialog.tsx index 9081e46..ed51b57 100644 --- a/src/components/archivos/DetailDialog.tsx +++ b/src/components/archivos/DetailDialog.tsx @@ -114,7 +114,7 @@ export function DetailDialog({ return ( !o && onClose()}> - + {row?.titulo_archivo ?? "(Sin título)"} {row?.descripcion || "Sin descripción"} @@ -134,13 +134,13 @@ export function DetailDialog({ )} - + {/* Tags {row.tags?.length ? (
Tags: {row.tags.join(", ")}
- ) : null} + ) : null} */}
diff --git a/src/components/planes/CreatePlanDialog.tsx b/src/components/planes/CreatePlanDialog.tsx index 5175244..1ad63dd 100644 --- a/src/components/planes/CreatePlanDialog.tsx +++ b/src/components/planes/CreatePlanDialog.tsx @@ -312,6 +312,7 @@ export function CreatePlanDialog({ open, onOpenChange }: { open: boolean; onOpen ) : (

Fecha desconocida

)} + {file.tags && file.tags.length > 0 && (
{file.tags.map((tag, i) => ( diff --git a/src/routes/_authenticated/archivos.tsx b/src/routes/_authenticated/archivos.tsx index 3449974..3b572c3 100644 --- a/src/routes/_authenticated/archivos.tsx +++ b/src/routes/_authenticated/archivos.tsx @@ -167,6 +167,7 @@ function RouteComponent() {

{r.descripcion}

)} + {/* Tags {r.tags && r.tags.length > 0 && (
{r.tags.map((t, i) => ( @@ -175,7 +176,7 @@ function RouteComponent() { ))}
- )} + )} */}
setA(nuevo)} /> +
@@ -191,7 +193,7 @@ function Page() { )} {/* Syllabus */} - {unidades.length > 0 && ( +
@@ -285,7 +287,7 @@ function Page() { ) })()}
- )} + {/* Bibliografía */} @@ -578,6 +580,51 @@ function MejorarAIButton({ asignaturaId, onApply }: { ) } +function BorrarAsignaturaButton({ asignatura_id, onDeleted }: { asignatura_id: string; onDeleted?: () => void }) { + const [confirm, setConfirm] = useState(false) + const [loading, setLoading] = useState(false) + const router = useRouter() + const queryClient = useQueryClient() + + async function handleDelete() { + setLoading(true) + try { + const { error, status, statusText } = await supabase.from("asignaturas").delete().eq("id", asignatura_id) + console.log({ status, statusText }); + + + if (error) throw error + setConfirm(false) + queryClient.invalidateQueries({ queryKey: ["asignaturas"] }) + if (onDeleted) onDeleted() + router.navigate({ to: "/asignaturas", search: { + q: "", // Término de búsqueda vacío + planId: "", // ID del plan (vacío si no aplica) + carreraId: "", // ID de la carrera (vacío si no aplica) + facultadId: "", // ID de la facultad (vacío si no aplica) + f: "", // Filtro vacío + }}) + } catch (e: any) { + alert(e?.message || "Error al eliminar la asignatura") + } finally { + setLoading(false) + } + } + + return confirm ? ( +
+ + +
+ ) : ( + + ) +} + function Field({ label, children }: { label: string; children: React.ReactNode }) { return (
@@ -632,9 +679,9 @@ export function EditContenidosButton({ } return { title, temas } }) - return entries.length ? entries : [{ title: "Unidad 1", temas: [] }] + return entries.length ? entries : [{ title: "", temas: [] }] } catch { - return [{ title: "Unidad 1", temas: [] }] + return [{ title: "", temas: [] }] } }, []) @@ -650,7 +697,7 @@ export function EditContenidosButton({ .forEach((t, i) => { sub[String(i + 1)] = t }) - out[k] = { titulo: (u.title || "").trim() || `Unidad ${k}`, subtemas: sub } + out[k] = { titulo: (u.title || "").trim(), subtemas: sub } }) return out }, []) @@ -669,7 +716,7 @@ export function EditContenidosButton({ return true }) return { - title: (u.title || "").trim() || `Unidad ${idx + 1}`, + title: (u.title || "").trim(), temas, } }) @@ -839,7 +886,7 @@ export function EditContenidosButton({ -