Some checks failed
🚀 Deploy - Demo / deployment (push) Has been cancelled
- 웹훅 URL을 https://admin.youtooplay.com/webhook로 변경 - Nginx 리버스 프록시 설정 파일 추가 - 배포 가이드 업데이트
81 lines
1.7 KiB
Vue
81 lines
1.7 KiB
Vue
<script setup lang="ts">
|
|
import type { NuxtError } from 'nuxt/app'
|
|
import misc404 from '@images/pages/404.png'
|
|
|
|
defineOptions({
|
|
inheritAttrs: false,
|
|
})
|
|
|
|
const props = defineProps<{
|
|
error: NuxtError
|
|
}>()
|
|
|
|
const isDev = process.dev
|
|
|
|
const errToShow = computed(() => {
|
|
const is404 = props.error?.statusCode === 404 || props.error.message?.includes('404')
|
|
|
|
if (is404) {
|
|
return {
|
|
title: 'Page Not Found',
|
|
description: 'We couldn\'t find the page you are looking for.',
|
|
}
|
|
}
|
|
|
|
else if (isDev) {
|
|
return {
|
|
title: props.error?.statusMessage,
|
|
description: props.error.message,
|
|
}
|
|
}
|
|
|
|
return {
|
|
title: 'Oops! Something went wrong.',
|
|
description: 'We are working on it and we\'ll get it fixed as soon as we can',
|
|
}
|
|
})
|
|
|
|
const handleError = () => clearError({ redirect: '/' })
|
|
</script>
|
|
|
|
<template>
|
|
<NuxtLayout name="blank">
|
|
<div class="misc-wrapper">
|
|
<ErrorHeader
|
|
:status-code="props.error.statusCode"
|
|
:title="errToShow.title"
|
|
:description="errToShow.description"
|
|
/>
|
|
|
|
<!-- eslint-disable vue/no-v-html -->
|
|
<div
|
|
v-if="isDev"
|
|
style="max-inline-size: 80dvw; overflow-x: scroll;"
|
|
v-html="error.stack"
|
|
/>
|
|
<!-- eslint-enable -->
|
|
|
|
<VBtn
|
|
class="mb-6"
|
|
@click="handleError"
|
|
>
|
|
Back to Home
|
|
</VBtn>
|
|
|
|
<!-- 👉 Image -->
|
|
<div class="misc-avatar w-100 text-center">
|
|
<VImg
|
|
:src="misc404"
|
|
alt="Page Not Found"
|
|
:max-width="500"
|
|
class="mx-auto"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</NuxtLayout>
|
|
</template>
|
|
|
|
<style lang="scss">
|
|
@use "@core/scss/template/pages/misc.scss";
|
|
</style>
|