Skip to content
This repository was archived by the owner on Sep 24, 2024. It is now read-only.

Commit f26f487

Browse files
SelemondevSelemondev
authored andcommitted
fix(app): fix Link component
1 parent 6b34640 commit f26f487

File tree

5 files changed

+7
-36
lines changed

5 files changed

+7
-36
lines changed

packages/nuxtlabs-ui-vue/src/App.vue

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,6 @@ const items = [
2525

2626
<template>
2727
<div class="grid place-items-center w-full min-h-screen">
28-
<UDropdown :items="items" mode="hover" :popper="{ placement: 'bottom-start' }">
29-
<UAvatar src="https://avatars.githubusercontent.com/u/739984?v=4" />
30-
31-
<template #account="{ item }">
32-
<div class="text-left">
33-
<p>
34-
Signed in as
35-
</p>
36-
<p class="truncate font-medium text-gray-900 dark:text-white">
37-
{{ item.label }}
38-
</p>
39-
</div>
40-
</template>
41-
42-
<template #item="{ item }">
43-
<span class="truncate">{{ item.label }}</span>
44-
45-
<UIcon :name="item.icon" class="flex-shrink-0 h-4 w-4 text-gray-400 dark:text-gray-500 ms-auto" />
46-
</template>
47-
</UDropdown>
28+
<UButton label="button" to="/about" />
4829
</div>
4930
</template>

packages/nuxtlabs-ui-vue/src/Types/enums/Components.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export enum Components {
55
UAvatarGroup = 'UAvatarGroup',
66
UBadge = 'UBadge',
77
UButton = 'UButton',
8+
ULink = 'ULink',
89
UButtonGroup = 'UButtonGroup',
910
UDropdown = 'UDropdown',
1011
UIcon = 'UIcon',

packages/nuxtlabs-ui-vue/src/components/elements/Button/UButton.vue

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script setup lang='ts'>
2-
import { computed, defineComponent, useSlots } from 'vue'
2+
import { computed, defineComponent, useAttrs, useSlots } from 'vue'
33
import type { PropType } from 'vue'
44
import classNames from 'classnames'
55
import type { RouteLocationRaw } from 'vue-router'
@@ -108,20 +108,7 @@ const variant = computed(() => {
108108
)
109109
})
110110
111-
const buttonIs = computed(() => {
112-
if (props.to)
113-
return 'RouterLink'
114-
115-
return 'button'
116-
})
117-
118-
const buttonProps = computed(() => {
119-
if (props.to)
120-
return { to: props.to, target: props.target }
121-
122-
else
123-
return { disabled: props.disabled || props.loading, type: props.type }
124-
})
111+
const bind = Object.assign({}, useAttrs(), props.to ? { href: props.to } : {})
125112
126113
const isLeading = computed(() => {
127114
return (props.icon && props.leading) || (props.icon && !props.trailing) || (props.loading && !props.trailing) || props.leadingIcon
@@ -186,7 +173,7 @@ export default defineComponent({
186173
</script>
187174

188175
<template>
189-
<component :is="buttonIs" :class="buttonClass" :aria-label="ariaLabel" v-bind="buttonProps">
176+
<component :is="props.to ? 'a' : 'button'" :class="buttonClass" :aria-label="ariaLabel" v-bind="bind">
190177
<slot name="leading" :disabled="disabled" :loading="loading">
191178
<UIcon v-if="isLeading && leadingIconName" :name="leadingIconName" :class="leadingIconClass" aria-hidden="true" />
192179
</slot>

packages/nuxtlabs-ui-vue/src/components/elements/Dropdown/UDropdown.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ export default defineComponent({
158158
<div v-for="(subItems, index) of props.items" :key="index" :class="variant.padding">
159159
<HMenuItem v-for="(item, subIndex) of subItems" :key="subIndex" v-slot="{ active, disabled: itemDisabled }" :disabled="item.disabled">
160160
<ULink
161+
to=""
161162
v-bind="omit(item, ['label', 'slot', 'icon', 'iconClass', 'avatar', 'shortcuts', 'disabled', 'click'])"
162163
:class="[nuxtLabsTheme.UDropdown.base.item.base, nuxtLabsTheme.UDropdown.base.item.padding, nuxtLabsTheme.UDropdown.base.item.size, nuxtLabsTheme.UDropdown.base.item.rounded, active ? nuxtLabsTheme.UDropdown.base.item.active : nuxtLabsTheme.UDropdown.base.item.inactive, itemDisabled && nuxtLabsTheme.UDropdown.base.item.disabled]"
163164
@click="item.click"

packages/nuxtlabs-ui-vue/src/components/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ export { default as UButtonGroup } from './elements/Button/UButtonGroup.vue'
88
export { default as UDropdown } from './elements/Dropdown/UDropdown.vue'
99
export { default as UIcon } from './elements/Icon/UIcon.vue'
1010
export { default as UKbd } from './elements/Kbd/UKbd.vue'
11+
export { default as ULink } from './elements/Link/ULink.vue'

0 commit comments

Comments
 (0)