adrema/resources/js/components/page/Layout.vue

42 lines
1.3 KiB
Vue
Raw Normal View History

2023-04-29 23:15:07 +02:00
<template>
<div class="grow bg-gray-900 flex flex-col transition-all" :class="{'ml-56': menuStore.visible, 'ml-0': !menuStore.visible}">
2023-05-20 01:45:43 +02:00
<div class="h-16 px-6 flex justify-between items-center border-b border-solid border-gray-600 group-[.is-bright]:border-gray-500">
<a href="#" @click.prevent="menuStore.toggle()" class="lg:hidden mr-2">
2023-04-29 23:15:07 +02:00
<svg-sprite src="menu" class="text-gray-100 w-5 h-5"></svg-sprite>
</a>
2023-05-20 01:45:43 +02:00
<div class="flex items-center">
<page-title class="mr-2">{{ $page.props.title }}</page-title>
<slot name="toolbar"></slot>
</div>
2023-04-29 23:15:07 +02:00
<div class="flex grow justify-between">
<portal-target name="toolbar-left"> </portal-target>
<portal-target name="toolbar-right"> </portal-target>
</div>
</div>
2023-04-29 23:41:26 +02:00
<div :class="pageClass" class="grow flex flex-col">
2023-04-29 23:15:07 +02:00
<slot></slot>
</div>
</div>
</template>
<script>
import {menuStore} from '../../stores/menuStore.js';
export default {
2023-04-29 23:41:26 +02:00
inheritAttrs: false,
props: {
pageClass: {
default: () => '',
required: false,
type: String,
},
},
2023-04-29 23:15:07 +02:00
data: function () {
return {
menuStore: menuStore(),
};
},
};
</script>