77 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <div>
 | |
|     <div id="dropdown" />
 | |
|     <div class="md:flex md:flex-col">
 | |
|       <div class="md:h-screen md:flex md:flex-col">
 | |
|         <div class="md:flex md:flex-shrink-0">
 | |
|           <div class="bg-indigo-900 md:flex-shrink-0 md:w-56 px-6 py-4 flex items-center justify-between md:justify-center">
 | |
|             <Link class="mt-1" href="/">
 | |
|               <logo class="fill-white" width="120" height="28" />
 | |
|             </Link>
 | |
|             <dropdown class="md:hidden" placement="bottom-end">
 | |
|               <template #default>
 | |
|                 <svg class="fill-white w-6 h-6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z" /></svg>
 | |
|               </template>
 | |
|               <template #dropdown>
 | |
|                 <div class="mt-2 px-8 py-4 shadow-lg bg-indigo-800 rounded">
 | |
|                   <main-menu />
 | |
|                 </div>
 | |
|               </template>
 | |
|             </dropdown>
 | |
|           </div>
 | |
|           <div class="bg-white border-b w-full p-4 md:py-0 md:px-12 text-sm md:text-md flex justify-between items-center">
 | |
|             <div class="mt-1 mr-4">{{ auth.user.account.name }}</div>
 | |
|             <dropdown class="mt-1" placement="bottom-end">
 | |
|               <template #default>
 | |
|                 <div class="flex items-center cursor-pointer select-none group">
 | |
|                   <div class="text-gray-700 group-hover:text-indigo-600 focus:text-indigo-600 mr-1 whitespace-nowrap">
 | |
|                     <span>{{ auth.user.first_name }}</span>
 | |
|                     <span class="hidden md:inline">{{ auth.user.last_name }}</span>
 | |
|                   </div>
 | |
|                   <icon class="w-5 h-5 group-hover:fill-indigo-600 fill-gray-700 focus:fill-indigo-600" name="cheveron-down" />
 | |
|                 </div>
 | |
|               </template>
 | |
|               <template #dropdown>
 | |
|                 <div class="mt-2 py-2 shadow-xl bg-white rounded text-sm">
 | |
|                   <Link class="block px-6 py-2 hover:bg-indigo-500 hover:text-white" :href="`/users/${auth.user.id}/edit`">My Profile</Link>
 | |
|                   <Link class="block px-6 py-2 hover:bg-indigo-500 hover:text-white" href="/users">Manage Users</Link>
 | |
|                   <Link class="block px-6 py-2 hover:bg-indigo-500 hover:text-white w-full text-left" href="/logout" method="delete" as="button">Logout</Link>
 | |
|                 </div>
 | |
|               </template>
 | |
|             </dropdown>
 | |
|           </div>
 | |
|         </div>
 | |
|         <div class="md:flex md:flex-grow md:overflow-hidden">
 | |
|           <main-menu class="hidden md:block bg-indigo-800 flex-shrink-0 w-56 p-12 overflow-y-auto" />
 | |
|           <div class="md:flex-1 px-4 py-8 md:p-12 md:overflow-y-auto" scroll-region>
 | |
|             <flash-messages />
 | |
|             <slot />
 | |
|           </div>
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
|   </div>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| import { Link } from '@inertiajs/inertia-vue3'
 | |
| import Icon from '@/Shared/Icon'
 | |
| import Logo from '@/Shared/Logo'
 | |
| import Dropdown from '@/Shared/Dropdown'
 | |
| import MainMenu from '@/Shared/MainMenu'
 | |
| import FlashMessages from '@/Shared/FlashMessages'
 | |
| 
 | |
| export default {
 | |
|   components: {
 | |
|     Dropdown,
 | |
|     FlashMessages,
 | |
|     Icon,
 | |
|     Link,
 | |
|     Logo,
 | |
|     MainMenu,
 | |
|   },
 | |
|   props: {
 | |
|     auth: Object,
 | |
|   },
 | |
| }
 | |
| </script>
 | 
