From 9debce737cc779229713cd19b03e6167dfd3ea8e Mon Sep 17 00:00:00 2001 From: TonyWeb Date: Thu, 3 Jul 2025 16:18:27 +0200 Subject: [PATCH] fix(Button/Link): merge `active-class` / `inactive-class` with app config (#4446) Co-authored-by: Benjamin Canac --- src/runtime/components/Button.vue | 12 ++++-------- src/runtime/components/Link.vue | 11 +++++------ src/runtime/utils/index.ts | 11 +++++++++++ 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/runtime/components/Button.vue b/src/runtime/components/Button.vue index 93f69ca0..d797bbc3 100644 --- a/src/runtime/components/Button.vue +++ b/src/runtime/components/Button.vue @@ -50,7 +50,7 @@ import { useAppConfig } from '#imports' import { useComponentIcons } from '../composables/useComponentIcons' import { useButtonGroup } from '../composables/useButtonGroup' import { formLoadingInjectionKey } from '../composables/useFormField' -import { omit } from '../utils' +import { omit, mergeClasses } from '../utils' import { tv } from '../utils/tv' import { pickLinkProps } from '../utils/link' import UIcon from './Icon.vue' @@ -58,11 +58,7 @@ import UAvatar from './Avatar.vue' import ULink from './Link.vue' import ULinkBase from './LinkBase.vue' -const props = withDefaults(defineProps(), { - active: undefined, - activeClass: '', - inactiveClass: '' -}) +const props = defineProps() const slots = defineSlots() const appConfig = useAppConfig() as Button['AppConfig'] @@ -97,10 +93,10 @@ const ui = computed(() => tv({ variants: { active: { true: { - base: props.activeClass + base: mergeClasses(appConfig.ui?.button?.variants?.active?.true?.base, props.activeClass) }, false: { - base: props.inactiveClass + base: mergeClasses(appConfig.ui?.button?.variants?.active?.false?.base, props.inactiveClass) } } } diff --git a/src/runtime/components/Link.vue b/src/runtime/components/Link.vue index 4dcaa994..a177d33e 100644 --- a/src/runtime/components/Link.vue +++ b/src/runtime/components/Link.vue @@ -88,11 +88,12 @@ export interface LinkSlots {