ToastContainer.vue 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <template>
  2. <Toast class="top-14!">
  3. <template #messageicon="{ class: messageIconClass }">
  4. <div :class="messageIconClass">
  5. <template v-for="{ className, iconName } in messageIcons">
  6. <Icon
  7. :class="className"
  8. :name="iconName"
  9. size="1.125rem"
  10. />
  11. </template>
  12. </div>
  13. </template>
  14. <template #closeicon="{ class: closeIconClass }">
  15. <span
  16. :class="closeIconClass"
  17. class="self-start"
  18. >
  19. <Icon name="ph:x-bold" />
  20. </span>
  21. </template>
  22. </Toast>
  23. </template>
  24. <script setup>
  25. const messageIcons = [
  26. { className: "not-group-p-success:hidden", iconName: "ph:check-circle-fill" },
  27. { className: "not-group-p-info:hidden", iconName: "ph:info-fill" },
  28. { className: "not-group-p-warn:hidden", iconName: "ph:warning-circle-fill" },
  29. { className: "not-group-p-danger:hidden", iconName: "ph:warning-fill" },
  30. {
  31. className: "not-group-p-secondary:hidden",
  32. iconName: "ph:check-circle-fill"
  33. },
  34. { className: "not-group-p-contrast:hidden", iconName: "ph:check-circle-fill" }
  35. ]
  36. </script>
  37. <style scoped></style>