Skip to content

Commit e875e09

Browse files
authored
Merge pull request #325 from connorabbas/develop
Menu Components: Implement missing MenuItem props
2 parents ef1692c + 7a2f7ed commit e875e09

File tree

7 files changed

+69
-30
lines changed

7 files changed

+69
-30
lines changed

resources/js/components/primevue/menu/Breadcrumb.vue

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@ defineExpose({ el: childRef });
2626
>
2727
<template #item="{ item, props }">
2828
<InertiaLink
29-
v-if="item.route"
29+
v-if="item.visible !== false && item.route"
3030
:href="item.route"
31-
class="p-breadcrumb-item-link"
31+
:target="item.target"
32+
:class="['p-breadcrumb-item-link', item.class]"
33+
:style="item.style"
34+
:aria-disabled="item.disabled === true"
3235
custom
3336
>
3437
<i
@@ -44,10 +47,13 @@ defineExpose({ el: childRef });
4447
<span class="p-breadcrumb-item-label">{{ item.label }}</span>
4548
</InertiaLink>
4649
<a
47-
v-else
50+
v-else-if="item.visible !== false"
51+
v-bind="props.action"
4852
:href="item.url"
4953
:target="item.target"
50-
v-bind="props.action"
54+
:class="item.class"
55+
:style="item.style"
56+
:aria-disabled="item.disabled === true"
5157
>
5258
<i
5359
v-if="item.icon"

resources/js/components/primevue/menu/ContextMenu.vue

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@ defineExpose({
2626
>
2727
<template #item="{ item, props, hasSubmenu }">
2828
<InertiaLink
29-
v-if="item.route"
29+
v-if="item.visible !== false && item.route"
3030
:href="item.route"
31-
class="p-contextmenu-item-link"
31+
:target="item.target"
32+
:class="['p-contextmenu-item-link', item.class]"
33+
:style="item.style"
34+
:aria-disabled="item.disabled === true"
3235
custom
3336
>
3437
<i
@@ -44,10 +47,13 @@ defineExpose({
4447
<span class="p-contextmenu-item-label">{{ item.label }}</span>
4548
</InertiaLink>
4649
<a
47-
v-else
50+
v-else-if="item.visible !== false"
51+
v-bind="props.action"
4852
:href="item.url"
4953
:target="item.target"
50-
v-bind="props.action"
54+
:class="item.class"
55+
:style="item.style"
56+
:aria-disabled="item.disabled === true"
5157
>
5258
<i
5359
v-if="item.icon"

resources/js/components/primevue/menu/Menu.vue

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,12 @@ defineExpose({
3535
</template>
3636
<template #item="{ item, props }">
3737
<InertiaLink
38-
v-if="item.route"
38+
v-if="item.visible !== false && item.route"
3939
:href="item.route"
40-
class="p-menu-item-link"
40+
:target="item.target"
41+
:class="['p-menu-item-link', item.class]"
42+
:style="item.style"
43+
:aria-disabled="item.disabled === true"
4144
custom
4245
>
4346
<i
@@ -53,10 +56,13 @@ defineExpose({
5356
<span class="p-menu-item-label">{{ item.label }}</span>
5457
</InertiaLink>
5558
<a
56-
v-else
59+
v-else-if="item.visible !== false"
60+
v-bind="props.action"
5761
:href="item.url"
5862
:target="item.target"
59-
v-bind="props.action"
63+
:class="item.class"
64+
:style="item.style"
65+
:aria-disabled="item.disabled === true"
6066
>
6167
<i
6268
v-if="item.icon"

resources/js/components/primevue/menu/Menubar.vue

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ defineExpose({ el: childRef });
3636
</template>
3737
<template #item="{ item, props, hasSubmenu, root }">
3838
<InertiaLink
39-
v-if="item.route"
39+
v-if="item.visible !== false && item.route"
4040
:href="item.route"
41-
class="p-menubar-item-link"
42-
:class="{
43-
'font-bold! text-muted-color': item.active,
44-
}"
41+
:target="item.target"
42+
:class="['p-menubar-item-link', { 'font-bold! text-muted-color': item.active }, item.class]"
43+
:style="item.style"
44+
:aria-disabled="item.disabled === true"
4545
custom
4646
>
4747
<i
@@ -57,11 +57,13 @@ defineExpose({ el: childRef });
5757
<span class="p-menubar-item-label">{{ item.label }}</span>
5858
</InertiaLink>
5959
<a
60-
v-else
60+
v-else-if="item.visible !== false"
61+
v-bind="props.action"
6162
:href="item.url"
6263
:target="item.target"
63-
v-bind="props.action"
64-
class="p-menubar-item-link"
64+
:class="item.class"
65+
:style="item.style"
66+
:aria-disabled="item.disabled === true"
6567
>
6668
<i
6769
v-if="item.icon"

resources/js/components/primevue/menu/PanelMenu.vue

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,21 @@ defineExpose({ el: childRef });
2727
ref="child-ref"
2828
v-bind="{ ...componentProps, pt: defaultPt, ptOptions: { mergeProps: ptViewMerge } }"
2929
>
30-
<template #item="{ item, root, active, hasSubmenu }">
30+
<template #item="{ item, root, active, props, hasSubmenu }">
31+
<Divider
32+
v-if="item.separator"
33+
pt:root:class="my-0"
34+
/>
3135
<InertiaLink
32-
v-if="item.route"
36+
v-else-if="item.visible !== false && item.route"
3337
:href="item.route"
38+
:target="item.target"
3439
:class="[
35-
'p-panelmenu-item-link flex items-center cursor-pointer no-underline p-2',
40+
'p-panelmenu-item-link flex items-center cursor-pointer no-underline px-3 py-2',
3641
{ 'font-bold! text-muted-color': item.active },
3742
]"
43+
:style="item.style"
44+
:aria-disabled="item.disabled === true"
3845
custom
3946
>
4047
<i
@@ -49,13 +56,16 @@ defineExpose({ el: childRef });
4956
<span>{{ item.label }}</span>
5057
</InertiaLink>
5158
<a
52-
v-else
59+
v-else-if="item.visible !== false"
60+
v-bind="props.action"
5361
:href="item.url"
5462
:target="item.target"
5563
:class="[
56-
'flex items-center cursor-pointer no-underline p-2',
64+
'flex items-center cursor-pointer no-underline px-3 py-2',
5765
hasSubmenu ? 'p-panelmenu-header-link' : 'p-panelmenu-item-link',
5866
]"
67+
:style="item.style"
68+
:aria-disabled="item.disabled === true"
5969
>
6070
<i
6171
v-if="item.icon"

resources/js/components/primevue/menu/TabMenu.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,11 @@ defineExpose({
4949
:value="item.route"
5050
:class="[
5151
'flex items-center gap-2 hover:text-color',
52-
item.active ? 'p-tab-active' : 'text-muted-color'
52+
item.active ? 'p-tab-active' : 'text-muted-color',
53+
item.class
5354
]"
55+
:style="item.style"
56+
:aria-disabled="item.disabled === true"
5457
>
5558
<i
5659
v-if="item.icon"

resources/js/components/primevue/menu/TieredMenu.vue

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,12 @@ defineExpose({
3535
</template>
3636
<template #item="{ item, props, hasSubmenu }">
3737
<InertiaLink
38-
v-if="item.route"
38+
v-if="item.visible !== false && item.route"
3939
:href="item.route"
40-
class="p-tieredmenu-item-link"
40+
:target="item.target"
41+
:class="['p-tieredmenu-item-link', item.class]"
42+
:style="item.style"
43+
:aria-disabled="item.disabled === true"
4144
custom
4245
>
4346
<i
@@ -53,10 +56,13 @@ defineExpose({
5356
<span class="p-tieredmenu-item-label">{{ item.label }}</span>
5457
</InertiaLink>
5558
<a
56-
v-else
59+
v-else-if="item.visible !== false"
60+
v-bind="props.action"
5761
:href="item.url"
5862
:target="item.target"
59-
v-bind="props.action"
63+
:class="item.class"
64+
:style="item.style"
65+
:aria-disabled="item.disabled === true"
6066
>
6167
<i
6268
v-if="item.icon"

0 commit comments

Comments
 (0)