| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  | <template> | 
					
						
							|  |  |  |   <div class="text-center"> | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |     <v-snackbar | 
					
						
							|  |  |  |       v-model="toastAlert.open" | 
					
						
							|  |  |  |       location="top" | 
					
						
							|  |  |  |       :color="toastAlert.color" | 
					
						
							|  |  |  |       timeout="2000" | 
					
						
							|  |  |  |     > | 
					
						
							|  |  |  |       <v-icon | 
					
						
							|  |  |  |         v-if="icon" | 
					
						
							|  |  |  |         dark | 
					
						
							|  |  |  |         start | 
					
						
							|  |  |  |         :icon="icon" | 
					
						
							|  |  |  |       /> | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |       {{ toastAlert.title }} | 
					
						
							|  |  |  |       {{ toastAlert.text }} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |       <template #actions> | 
					
						
							|  |  |  |         <v-btn | 
					
						
							|  |  |  |           variant="text" | 
					
						
							|  |  |  |           @click="toastAlert.open = false" | 
					
						
							|  |  |  |         > | 
					
						
							|  |  |  |           {{ $t('general.close') }} | 
					
						
							|  |  |  |         </v-btn> | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |       </template> | 
					
						
							|  |  |  |     </v-snackbar> | 
					
						
							|  |  |  |     <v-snackbar | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |       v-model="toastLoading.open" | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |       content-class="py-2" | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |       density="compact" | 
					
						
							|  |  |  |       location="bottom" | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |       :timeout="-1" | 
					
						
							|  |  |  |       :color="toastLoading.color" | 
					
						
							|  |  |  |     > | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |       <div | 
					
						
							|  |  |  |         class="d-flex flex-column align-center justify-start" | 
					
						
							|  |  |  |         @click="toastLoading.open = false" | 
					
						
							|  |  |  |       > | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |         <div class="mb-2 mt-0 text-subtitle-1 text-center"> | 
					
						
							|  |  |  |           {{ toastLoading.text }} | 
					
						
							|  |  |  |         </div> | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         <v-progress-linear | 
					
						
							|  |  |  |           indeterminate | 
					
						
							|  |  |  |           color="white-darken-2" | 
					
						
							|  |  |  |         /> | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |       </div> | 
					
						
							|  |  |  |     </v-snackbar> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | </template> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-09 07:15:23 +01:00
										 |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | import { useNuxtApp } from "#app"; | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  | import { toastAlert, toastLoading } from "~/composables/use-toast"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | export default { | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |   setup() { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |     const { $globals } = useNuxtApp(); | 
					
						
							| 
									
										
										
										
											2022-01-09 07:15:23 +01:00
										 |  |  |     const icon = computed(() => { | 
					
						
							|  |  |  |       switch (toastAlert.color) { | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |         case "error": | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |           return $globals.icons.alertOutline; | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |         case "success": | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |           return $globals.icons.checkBold; | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |         case "info": | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |           return $globals.icons.informationOutline; | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |         default: | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |           return $globals.icons.alertOutline; | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |       } | 
					
						
							| 
									
										
										
										
											2022-01-09 07:15:23 +01:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return { icon, toastAlert, toastLoading }; | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  |   }, | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 |  |  | </script> |