Skip to content

Commit d7ad2e4

Browse files
committed
added kendo drawer popup and button
1 parent cdc8531 commit d7ad2e4

File tree

6 files changed

+123
-2
lines changed

6 files changed

+123
-2
lines changed

components.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ declare module '@vue/runtime-core' {
1010
BoardCard: typeof import('./src/components/BoardCard.vue')['default']
1111
RouterLink: typeof import('vue-router')['RouterLink']
1212
RouterView: typeof import('vue-router')['RouterView']
13+
TheDrawer: typeof import('./src/components/TheDrawer.vue')['default']
14+
TheNavbar: typeof import('./src/components/TheNavbar.vue')['default']
1315
}
1416
}
1517

src/App.vue

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
<script setup lang="ts"></script>
1+
<script setup lang="ts">
2+
import TheNavbar from "./components/TheNavbar.vue";
3+
import TheDrawer from "./components/TheDrawer.vue";</script>
24

35
<template>
4-
<RouterView />
6+
<TheNavbar />
7+
<TheDrawer />
58
</template>

src/components/TheDrawer.vue

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<script setup lang="ts">
2+
3+
import { Drawer, DrawerContent } from "@progress/kendo-vue-layout";
4+
5+
import { useRouter } from "vue-router";
6+
7+
import { computed, ref } from "vue";
8+
9+
// const router = useRouter();
10+
const selectedId = ref(0);
11+
12+
const expanded = ref(false);
13+
const expandedIcon = computed(() =>
14+
expanded.value ? "k-i-arrow-chevron-left" : "k-i-arrow-chevron-right"
15+
);
16+
const items = computed(() => [
17+
{
18+
text: "Boards",
19+
icon: "k-i-set-column-position",
20+
selected: true,
21+
data: {
22+
path: "/",
23+
},
24+
},
25+
{
26+
text: "Templates",
27+
icon: "k-i-border-left",
28+
data: {
29+
path: "/templates",
30+
},
31+
},
32+
{
33+
text: "Settings",
34+
icon: "k-i-gear",
35+
data: {
36+
path: "/settings",
37+
},
38+
},
39+
{
40+
text: "Collapse",
41+
icon: expandedIcon.value,
42+
data: {
43+
action: () => (expanded.value = !expanded.value),
44+
},
45+
},
46+
]);
47+
48+
function onSelect({ itemIndex }: { itemIndex: number }) {
49+
const item = items.value[itemIndex];
50+
if (item.data.path) router.push(item.data.path);
51+
if (typeof item.data.action === "function") item.data.action();
52+
}
53+
54+
</script>
55+
56+
<template>
57+
<Drawer class="h-[90vh]" :expanded="expanded" position="start" mode="push" :mini="true" :items="items"
58+
@select="onSelect">
59+
<DrawerContent>
60+
<div class="px-5">
61+
<router-view />
62+
</div>
63+
</DrawerContent>
64+
</Drawer>
65+
</template>

src/components/TheNavbar.vue

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<script setup lang="ts">
2+
3+
import { Button as KButton } from '@progress/kendo-vue-buttons';
4+
import { Popup as KPopup } from '@progress/kendo-vue-popup';
5+
6+
import { ref } from 'vue';
7+
8+
const showTeams = ref(false);
9+
10+
</script>
11+
12+
<template>
13+
14+
<div
15+
class="p-4 border-bottom border-2 flex justify-between"
16+
style="margin: -1px"
17+
>
18+
<img
19+
src="https://vuejsforge.com/images/logo.svg"
20+
width="150"
21+
class="max-w-none"
22+
alt="Vue.js Forge"
23+
/>
24+
<div>
25+
<button
26+
ref="button"
27+
class="mr-5 text-[#ff6358]"
28+
@click="showTeams = !showTeams"
29+
>
30+
<span class="k-icon k-i-ungroup"></span>
31+
My Team
32+
</button>
33+
34+
<KPopup :anchor="'button'" :show="showTeams" class="mt-5">
35+
<ul>
36+
<li class="px-5 py-2" @click="showTeams = false">Team 1</li>
37+
<li class="px-5 py-2" @click="showTeams = false">Team 2</li>
38+
</ul>
39+
</KPopup>
40+
41+
<KButton :rounded = "'full'" :shape = "'rectangle'" :icon = "'logout'" :theme-color="'warning'">Logout</KButton>
42+
</div>
43+
</div>
44+
45+
</template>

src/pages/settings/index.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<template>
2+
<h1 class="text-3xl mb-5">Settings</h1>
3+
</template>

src/pages/templates/index.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<template>
2+
<h1 class="text-3xl mb-5">Templates</h1>
3+
</template>

0 commit comments

Comments
 (0)