first commit
This commit is contained in:
		
							
								
								
									
										47
									
								
								src/components/Notification/Notification.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/components/Notification/Notification.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| <script setup lang="ts"> | ||||
|   import store from './store'; | ||||
|   import type { Notification } from './interfaces'; | ||||
|   import { ErrorIcon, InfoIcon, WarningIcon, SuccessIcon, CloseIcon } from './icons'; | ||||
|  | ||||
|   defineProps<{ | ||||
|     notification: Notification, | ||||
|   }>(); | ||||
|  | ||||
|   const closeNotification = (id: string) => { | ||||
|     store.actions.removeNotification(id); | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <template> | ||||
|   <div class="bg-white shadow-lg rounded-lg pointer-events-auto"> | ||||
|     <div class="rounded-lg shadow-xl overflow-hidden"> | ||||
|       <div class="p-4"> | ||||
|         <div class="flex items-start"> | ||||
|           <div class="flex-shrink-0" v-if="notification.type"> | ||||
|             <SuccessIcon v-if="notification.type === 'success'" /> | ||||
|             <InfoIcon v-else-if="notification.type === 'info'" /> | ||||
|             <WarningIcon v-else-if="notification.type === 'warning'" /> | ||||
|             <ErrorIcon v-else-if="notification.type === 'error'" /> | ||||
|           </div> | ||||
|           <div class="ml-3 w-0 flex-1 pt-0.5"> | ||||
|             <p class="text-sm leading-5 font-medium text-gray-900" v-if="notification.title"> | ||||
|               {{ notification.title }} | ||||
|             </p> | ||||
|             <p :class="`${notification.title ? 'mt-1' : ''} text-sm leading-5 text-gray-500`"> | ||||
|               {{ notification.content }} | ||||
|             </p> | ||||
|           </div> | ||||
|           <div class="ml-4 flex-shrink-0 flex"> | ||||
|             <button | ||||
|               @click="() => closeNotification(notification.id)" | ||||
|               class="inline-flex text-gray-400 focus:outline-none focus:text-gray-500 transition-all ease-in-out duration-150" | ||||
|             > | ||||
|               <CloseIcon /> | ||||
|             </button> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
		Reference in New Issue
	
	Block a user