Skip to content

Commit f0e78f7

Browse files
committed
refactor: updated User dashboard
1 parent 859c4c3 commit f0e78f7

File tree

4 files changed

+108
-29
lines changed

4 files changed

+108
-29
lines changed

resources/ts/Components/AdminSidebar.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
route: route('admin.settings.reset-system'),
2222
},
2323
{
24-
title: 'Go Frontend',
24+
title: 'Go Home',
2525
route: '/',
2626
},
2727
]
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<script lang="ts">
2+
import { drawerStore } from '@skeletonlabs/skeleton'
3+
import { inertia, page } from '@inertiajs/svelte'
4+
5+
type NavItem = {
6+
title: string
7+
route: string
8+
}
9+
10+
const navItems: NavItem[] = [
11+
{
12+
title: 'Dashboard',
13+
route: route('user.dashboard'),
14+
},
15+
{
16+
title: ' My Profile',
17+
route: route('user.dashboard'),
18+
},
19+
{
20+
title: 'Go Home',
21+
route: '/',
22+
},
23+
]
24+
25+
function drawerClose(): void {
26+
drawerStore.close()
27+
}
28+
</script>
29+
30+
<nav class="list-nav">
31+
<ul>
32+
{#each navItems as item}
33+
<li>
34+
<a
35+
class="!rounded hover:rounded focus:rounded"
36+
class:bg-primary-active-token={item.route.endsWith($page.url)}
37+
href={item.route}
38+
use:inertia
39+
on:click={drawerClose}
40+
>{item.title}
41+
</a>
42+
</li>
43+
{/each}
44+
</ul>
45+
</nav>
Lines changed: 62 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
<script>
1+
<script lang="ts">
22
import MainLayout from './MainLayout.svelte'
3-
import { AppBar } from '@skeletonlabs/skeleton'
3+
import { AppBar, AppShell } from '@skeletonlabs/skeleton'
44
import { page, inertia, useForm } from '@inertiajs/svelte'
5-
import { LightSwitch } from '@skeletonlabs/skeleton'
5+
import { LightSwitch, Drawer, drawerStore } from '@skeletonlabs/skeleton'
6+
import UserSidebar from '@/Components/UserSidebar.svelte'
67
78
$: auth = $page.props.auth.user
89
@@ -13,33 +14,67 @@
1314
1415
$form.post(route('logout'))
1516
}
17+
18+
function drawerOpen(): void {
19+
drawerStore.open({})
20+
}
1621
</script>
1722

1823
<MainLayout>
19-
<svelte:fragment slot="header">
20-
<div class="bg-surface-100-800-token">
21-
<div class="container">
22-
<AppBar background="bg-transparent">
23-
<svelte:fragment slot="lead">
24-
<a href={route('user.dashboard')} use:inertia>
25-
<strong class="text-xl uppercase">{$page.props.siteName}</strong>
26-
</a>
27-
</svelte:fragment>
28-
29-
<svelte:fragment slot="trail">
30-
<LightSwitch />
31-
32-
<form on:submit|preventDefault={handleLogout}>
33-
<button type="submit" class="btn btn-sm variant-ghost-surface"> Logout </button>
34-
</form>
35-
36-
<a class="btn btn-sm variant-ghost-surface" href="/dashboard" use:inertia> Profile </a>
37-
</svelte:fragment>
38-
</AppBar>
24+
<AppShell
25+
slotSidebarLeft="bg-surface-500/5 w-0 lg:w-64"
26+
regionPage="overflow-y-auto relative h-screen scrollbar-hidden"
27+
>
28+
<svelte:fragment slot="header">
29+
<div class="bg-surface-100-800-token">
30+
<div class="container">
31+
<AppBar background="bg-transparent">
32+
<svelte:fragment slot="lead">
33+
<button class="lg:hidden btn btn-sm mr-4" on:click={drawerOpen}>
34+
<span>
35+
<svg viewBox="0 0 100 80" class="fill-token w-4 h-4">
36+
<rect width="100" height="20" />
37+
<rect y="30" width="100" height="20" />
38+
<rect y="60" width="100" height="20" />
39+
</svg>
40+
</span>
41+
</button>
42+
<a href={route('user.dashboard')} use:inertia>
43+
<strong class="text-xl uppercase">{$page.props.siteName}</strong>
44+
</a>
45+
</svelte:fragment>
46+
47+
<svelte:fragment slot="trail">
48+
<LightSwitch />
49+
50+
<form on:submit|preventDefault={handleLogout}>
51+
<button type="submit" class="btn btn-sm variant-ghost-surface"> Logout </button>
52+
</form>
53+
54+
<span class="hidden lg:block">
55+
<a class="btn btn-sm variant-ghost-surface" href="/dashboard" use:inertia> Profile </a>
56+
</span>
57+
</svelte:fragment>
58+
</AppBar>
59+
</div>
60+
</div>
61+
</svelte:fragment>
62+
63+
<!-- sidebar -->
64+
<Drawer regionDrawer="mt-16 w-56 pb-16">
65+
<UserSidebar />
66+
</Drawer>
67+
68+
<svelte:fragment slot="sidebarLeft">
69+
<div id="sidebar-left" class="hidden lg:block">
70+
<div class="overflow-y-auto h-screen">
71+
<UserSidebar />
72+
</div>
3973
</div>
40-
</div>
41-
</svelte:fragment>
74+
</svelte:fragment>
4275

43-
<!-- content -->
44-
<slot />
76+
<!-- content -->
77+
<slot />
78+
<div class="my-4" />
79+
</AppShell>
4580
</MainLayout>

resources/ts/Pages/User/Dashboard.svelte

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
{#if ready}
1414
<div in:fly={{ y: -70, duration: 300, easing: quintOut }}>
1515
<Title>User Dashboard</Title>
16-
<a href="/" use:inertia>Go Home</a>
1716
</div>
1817
{/if}
1918
</div>

0 commit comments

Comments
 (0)