diff --git a/src/components/Pages/EmptyPage.vue b/src/components/Pages/EmptyPage.vue index 8e8e187..2f7c0a7 100644 --- a/src/components/Pages/EmptyPage.vue +++ b/src/components/Pages/EmptyPage.vue @@ -7,6 +7,10 @@
{{ desc }}
+ @@ -22,12 +26,18 @@ import { IconDatabase, IconSmileySad } from '@/utils/icons' +import { useRouter } from 'vue-router'; +const router = useRouter() const props = defineProps({ type: { type: String as () => "no_filter" | "not_found" | "disconnect" | "connection_change" | "error_404" | "error_403" | "error_500", default: 'error_404', required: true + }, + action: { + type: Function as () => void, + default: () => { } } }) @@ -93,4 +103,50 @@ const icon = computed(() => { return IconSmileySad } }) + +const actionTitle = computed(() => { + switch (props.type) { + case 'disconnect': + return 'Coba Lagi' + case 'connection_change': + return 'Muat Ulang' + case 'error_404': + return 'Kembali' + case 'error_403': + return 'Kembali' + case 'error_500': + return 'Kembali' + default: + return 'Kembali' + } +}) + +const action = () => { + switch (props.type) { + case 'disconnect': + return props.action + case 'connection_change': + return props.action + case 'error_404': + if (window.history.length > 1) { + return window.history.back() + } else { + return router.push('/home') + } + case 'error_403': + if (window.history.length > 1) { + return window.history.back() + } else { + return router.push('/home') + } + case 'error_500': + return props.action + default: + if (window.history.length > 1) { + return window.history.back() + } else { + return router.push('/home') + } + } +} \ No newline at end of file