From 6639c93cfed2f65abd9906207a0974e8f7eefa52 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Tue, 25 Nov 2025 01:17:39 -0600 Subject: [PATCH] =?UTF-8?q?Fix:=20Usar=20DropdownMenu=20de=20radix-vue=20p?= =?UTF-8?q?ara=20men=C3=BA=20de=20configuraci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Reemplaza dropdown manual por componente DropdownMenu con radix-vue - Agrega avoid-collisions y collision-padding para posicionamiento automático - El menú ahora se ajusta automáticamente cuando no hay espacio horizontal - Actualiza DropdownMenuItem para soportar prop 'as' y 'href' para enlaces --- frontend/src/App.vue | 41 +++++++++---------- .../ui/dropdown-menu/DropdownMenu.vue | 14 ++++++- .../ui/dropdown-menu/DropdownMenuItem.vue | 11 ++++- 3 files changed, 41 insertions(+), 25 deletions(-) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index e0f7658..59969ac 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,6 +1,6 @@ @@ -28,7 +36,9 @@ const props = defineProps({ diff --git a/frontend/src/components/ui/dropdown-menu/DropdownMenuItem.vue b/frontend/src/components/ui/dropdown-menu/DropdownMenuItem.vue index 9563fff..635ef72 100644 --- a/frontend/src/components/ui/dropdown-menu/DropdownMenuItem.vue +++ b/frontend/src/components/ui/dropdown-menu/DropdownMenuItem.vue @@ -6,7 +6,12 @@ import { cn } from '@/lib/utils'; const props = defineProps({ disabled: Boolean, danger: Boolean, - class: String + class: String, + as: { + type: [String, Object], + default: undefined + }, + href: String }); const classes = computed(() => cn( @@ -17,10 +22,12 @@ const classes = computed(() => cn( props.danger && 'hover:border-red-400/30 hover:text-red-400', props.class )); + +const elementAs = computed(() => props.as || (props.href ? 'a' : undefined));