Skip to content

Commit cc4180f

Browse files
authored
refactor(Sidebar): restructure header slot for improved flexibility
closes #570
1 parent ee7076a commit cc4180f

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

src/components/Sidebar/Sidebar.vue

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,20 @@
33
class="flex h-full flex-col flex-shrink-0 overflow-y-auto overflow-x-hidden border-r border-outline-gray-1 bg-surface-menu-bar transition-all duration-300 ease-in-out p-2"
44
:class="shouldCollapse ? 'w-12' : 'w-60'"
55
>
6-
<SidebarHeader
7-
v-if="props.header"
8-
:isCollapsed="shouldCollapse"
9-
:title="props.header.title"
10-
:subtitle="props.header.subtitle"
11-
:logo="props.header.logo"
12-
:menu-items="props.header.menuItems"
13-
>
14-
<template #logo>
15-
<slot name="header-logo"></slot>
16-
</template>
17-
</SidebarHeader>
6+
<slot name="header">
7+
<SidebarHeader
8+
v-if="props.header"
9+
:isCollapsed="shouldCollapse"
10+
:title="props.header.title"
11+
:subtitle="props.header.subtitle"
12+
:logo="props.header.logo"
13+
:menu-items="props.header.menuItems"
14+
>
15+
<template #logo>
16+
<slot name="header-logo"></slot>
17+
</template>
18+
</SidebarHeader>
19+
</slot>
1820

1921
<SidebarSection
2022
v-for="section in props.sections"
@@ -24,7 +26,7 @@
2426
:collapsible="section.collapsible"
2527
>
2628
<template #sidebar-item="{ item, isCollapsed }"
27-
><slot name="sidebar-item" :item :isCollapsed ></slot
29+
><slot name="sidebar-item" :item :isCollapsed></slot
2830
></template>
2931
</SidebarSection>
3032

@@ -34,7 +36,7 @@
3436
v-bind="{ isCollapsed: shouldCollapse, isMobile }"
3537
/>
3638
<SidebarItem
37-
v-if="!props.disableCollapse"
39+
v-if="!props.disableCollapse"
3840
:label="shouldCollapse ? 'Expand' : 'Collapse'"
3941
:isCollapsed="shouldCollapse"
4042
@click="isCollapsed = !isCollapsed"
@@ -67,7 +69,9 @@ const isCollapsed = defineModel('collapsed', {
6769
default: null,
6870
})
6971
provide('isSidebarCollapsed', isCollapsed)
70-
const shouldCollapse = computed(() => (isCollapsed.value || isMobile.value) && !props.disableCollapse)
72+
const shouldCollapse = computed(
73+
() => (isCollapsed.value || isMobile.value) && !props.disableCollapse,
74+
)
7175
7276
const breakpoints = useBreakpoints(breakpointsTailwind)
7377
const isMobile = breakpoints.smaller('sm')

0 commit comments

Comments
 (0)