mirror of
				https://github.com/Instadapp/assembly.git
				synced 2024-07-29 22:37:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <transition :duration="{ enter: 300, leave: 200 }">
 | |
|     <div v-show="isShown" class="fixed inset-0 z-10 overflow-y-auto pointer-events-auto">
 | |
|       <div
 | |
|         class="flex flex-col items-center justify-end min-h-screen px-4 pt-4 pb-20 text-center sm:justify-center sm:p-0"
 | |
|       >
 | |
|         <transition
 | |
|           enter-active-class="duration-300 ease-out"
 | |
|           enter-class="opacity-0"
 | |
|           enter-to-class="opacity-100"
 | |
|           leave-active-class="duration-200 ease-in"
 | |
|           leave-class="opacity-100"
 | |
|           leave-to-class="opacity-0"
 | |
|         >
 | |
|           <div
 | |
|             v-if="isShown"
 | |
|             class="fixed inset-0 z-20 bg-white dark:bg-dark-500 bg-opacity-70 dark:bg-opacity-70"
 | |
|             @click="close"
 | |
|           ></div>
 | |
|         </transition>
 | |
| 
 | |
|         <transition
 | |
|           enter-active-class="duration-300 ease-out transform"
 | |
|           enter-class="translate-y-4 opacity-0 sm:translate-y-0 sm:scale-95"
 | |
|           enter-to-class="translate-y-0 opacity-100 sm:scale-100"
 | |
|           leave-active-class="duration-200 ease-in transform"
 | |
|           leave-class="translate-y-0 opacity-100 sm:scale-100"
 | |
|           leave-to-class="translate-y-4 opacity-0 sm:translate-y-0 sm:scale-95"
 | |
|         >
 | |
|           <div :is="modal" v-if="isShown" v-bind="props" class="z-30"></div>
 | |
|         </transition>
 | |
|       </div>
 | |
|     </div>
 | |
|   </transition>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| import { defineComponent } from '@nuxtjs/composition-api'
 | |
| import { useModal } from '~/composables/useModal'
 | |
| 
 | |
| export default defineComponent({
 | |
|   props: {
 | |
|     show: { type: Boolean, default: false },
 | |
|   },
 | |
|   setup() {
 | |
|     const { isShown, props, modal, close } = useModal()
 | |
|     return { isShown, props, modal, close }
 | |
|   },
 | |
| })
 | |
| </script>
 | 
