Index.vue 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <script setup>
  2. import { computed } from 'vue'
  3. import { Head, Link } from '@inertiajs/inertia-vue3'
  4. const props = defineProps({
  5. status: Number,
  6. })
  7. const title = computed(() => {
  8. return {
  9. 503: '503: Layanan Tidak Tersedia',
  10. 500: '500: Server Error',
  11. 404: '404: Halaman Tidak Ditemukan',
  12. 403: '403: Akses Ditolak',
  13. }[props.status]
  14. })
  15. const description = computed(() => {
  16. return {
  17. 503: 'Sorry, Kami sedang melakukan maintenance. Silakan periksa kembali nanti.',
  18. 500: 'Whoops, Sesuatu sedang terjadi pada server kami.',
  19. 404: 'Sorry, Hamalan yang anda cari tidak dapat ditemukan.',
  20. 403: 'Sorry, Anda tidak memiliki akses kehalaman ini.',
  21. }[props.status]
  22. })
  23. </script>
  24. <template>
  25. <Head :title="title" />
  26. <div
  27. class="surface-0 flex align-items-center justify-content-center min-h-screen min-w-screen overflow-hidden"
  28. >
  29. <div
  30. class="grid flex-column align-items-center p-2 lg:p-0"
  31. style="min-width: 80%"
  32. >
  33. <img src="/images/logo.svg" alt="logo" class="w-5rem" />
  34. <div class="max-w-28rem p-6 m-4">
  35. <div class="grid flex flex-column align-items-center">
  36. <div
  37. class="flex justify-content-center align-items-center bg-primary border-circle"
  38. style="height: 3.2rem; width: 3.2rem"
  39. >
  40. <i class="pi pi-fw pi-exclamation-circle text-2xl text-50"></i>
  41. </div>
  42. <h1 class="text-center mb-5 font-bold text-3xl text-color">
  43. {{ title }}
  44. </h1>
  45. <span class="text-center text-600">{{ description }}</span>
  46. <div class="col-12 mt-5 text-center">
  47. <i
  48. class="pi pi-fw pi-arrow-left text-blue-500 mr-2"
  49. style="vertical-align: center"
  50. >
  51. </i>
  52. <Link href="/" class="text-blue-500">Ayo kembali!</Link>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </template>