feat: navbar component
This commit is contained in:
39
client/components/Navbar.vue
Normal file
39
client/components/Navbar.vue
Normal file
@ -0,0 +1,39 @@
|
||||
<script setup lang="ts">
|
||||
defineProps({
|
||||
search: {
|
||||
type: String,
|
||||
default: undefined,
|
||||
},
|
||||
noPadding: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
})
|
||||
|
||||
const emit = defineEmits<{
|
||||
(event: 'update:search', value: string): void
|
||||
}>()
|
||||
|
||||
function update(event: any) {
|
||||
emit('update:search', event.target.value)
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div flex="~ col gap2" border="b base" flex-1 navbar-glass pb4 :class="[{ p4: !noPadding }]">
|
||||
<div flex="~ gap4">
|
||||
<slot name="search">
|
||||
<NTextInput
|
||||
placeholder="Search..."
|
||||
icon="carbon-search"
|
||||
n="primary" flex-auto
|
||||
:class="{ 'px-5 py-2': !noPadding }"
|
||||
:value="search"
|
||||
@input="update"
|
||||
/>
|
||||
</slot>
|
||||
<slot name="actions" />
|
||||
</div>
|
||||
<slot />
|
||||
</div>
|
||||
</template>
|
||||
Reference in New Issue
Block a user