Skip to content

Commit 3b2969b

Browse files
committed
supports new slots for admin sidebar: before/after-footer
1 parent 15f78f0 commit 3b2969b

File tree

5 files changed

+56
-0
lines changed

5 files changed

+56
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,6 @@ dump
109109

110110
# generated docs
111111
docs
112+
113+
# Astro output
114+
.astro

planned-structure/src/pages/admin/[...page].astro

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,42 @@ console.log('props.slots', Astro.props.clubs.slots)
4242
>
4343
</p>
4444
</div>
45+
<div slot="admin:sidebar:before-overview-link">
46+
<p>
47+
Injected contents<br /><span class="text-xs"
48+
>admin:sidebar:before-overview-link</span
49+
>
50+
</p>
51+
</div>
4552
<div slot="admin:sidebar:before-theme-link">
4653
<p>
4754
Injected contents<br /><span class="text-xs"
4855
>admin:sidebar:before-theme-link</span
4956
>
5057
</p>
5158
</div>
59+
<div slot="admin:sidebar:after-built-in-primary-links">
60+
<p>
61+
Injected contents<br /><span class="text-xs"
62+
>admin:sidebar:after-built-in-primary-links</span
63+
>
64+
</p>
65+
</div>
66+
<div slot="admin:sidebar:before-footer">
67+
<p>
68+
Injected contents<br /><span class="text-xs"
69+
>admin:sidebar:before-footer</span
70+
>
71+
</p>
72+
</div>
73+
<div slot="admin:sidebar:after-footer">
74+
<p>
75+
Injected contents<br /><span class="text-xs"
76+
>admin:sidebar:after-footer</span
77+
>
78+
</p>
79+
</div>
80+
5281
<Content {...Astro.props} />
5382
</Admin>
5483

src/layouts/Admin.astro

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@ const SlotsAsideAfterBuiltInButtons = clubs.slots.filter(
6868
const SlotsModalContent = clubs.slots.filter(
6969
(slot) => slot.slot === ClubsSlotName.AdminModalCcontent
7070
)
71+
const SlotsSidebarBeforeFooter = clubs.slots.filter(
72+
(slot) => slot.slot === ClubsSlotName.AdminSidebarBeforeFooter
73+
)
74+
const SlotsSidebarAfterFooter = clubs.slots.filter(
75+
(slot) => slot.slot === ClubsSlotName.AdminSidebarAfterFooter
76+
)
7177
---
7278

7379
<!DOCTYPE html>
@@ -116,6 +122,8 @@ const SlotsModalContent = clubs.slots.filter(
116122
name="admin:sidebar:after-built-in-primary-links"
117123
slot="after-built-in-primary-links"
118124
/>
125+
<slot name="admin:sidebar:before-footer" slot="before-footer" />
126+
<slot name="admin:sidebar:after-footer" slot="after-footer" />
119127
{
120128
SlotsSidebarBeforeTitle.map((Slot) => (
121129
<Slot.component {...Slot.props} slot="before-title" />
@@ -139,6 +147,16 @@ const SlotsModalContent = clubs.slots.filter(
139147
/>
140148
))
141149
}
150+
{
151+
SlotsSidebarBeforeFooter.map((Slot) => (
152+
<Slot.component {...Slot.props} slot="before-footer" />
153+
))
154+
}
155+
{
156+
SlotsSidebarAfterFooter.map((Slot) => (
157+
<Slot.component {...Slot.props} slot="after-footer" />
158+
))
159+
}
142160
</AdminSidebar>
143161
<button
144162
id="__clubs:sidebar-close__"

src/layouts/AdminSidebar.astro

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ const navItemPluginInactive = 'hover:bg-surface-200'
162162

163163
<ThemeSwitcher client:only="vue" />
164164

165+
<slot name="before-footer" />
166+
165167
<span class="text-center"
166168
><a
167169
href={homepage}
@@ -171,4 +173,6 @@ const navItemPluginInactive = 'hover:bg-surface-200'
171173
>clubs-core v.{version}</a
172174
></span
173175
>
176+
177+
<slot name="after-footer" />
174178
</nav>

src/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ export enum ClubsSlotName {
9292
AdminSidebarBeforeOverviewLink = 'admin:sidebar:before-overview-link',
9393
AdminSidebarBeforeThemeLink = 'admin:sidebar:before-theme-link',
9494
AdminSidebarAfterBuiltInPrimaryLinks = 'admin:sidebar:after-built-in-primary-links',
95+
AdminSidebarBeforeFooter = 'admin:sidebar:before-footer',
96+
AdminSidebarAfterFooter = 'admin:sidebar:after-footer',
9597
PageContentHomeBeforeContent = 'page:content:home:before-content',
9698
PageContentHomeAfterContent = 'page:content:home:after-content',
9799
PageContentAnywhereBeforeContent = 'page:content:anywhere:before-content',

0 commit comments

Comments
 (0)