From ac2b203f37499612558a341bd2aa7b204a9158e1 Mon Sep 17 00:00:00 2001 From: Farhaan4 <127176994+Farhaan4@users.noreply.github.com> Date: Thu, 11 Sep 2025 11:26:04 +0700 Subject: [PATCH 1/2] template --- proyek-frontend/app/app.vue | 30 ++++- .../template-page/CategorySelection.vue | 113 ++++++++++++------ .../components/template-page/TemplateGrid.vue | 113 +++++++++++++----- proyek-frontend/app/pages/template.vue | 34 +++--- 4 files changed, 209 insertions(+), 81 deletions(-) diff --git a/proyek-frontend/app/app.vue b/proyek-frontend/app/app.vue index 5b5760e..d136a2c 100644 --- a/proyek-frontend/app/app.vue +++ b/proyek-frontend/app/app.vue @@ -2,4 +2,32 @@
- \ No newline at end of file + + + + +// const templates = ref([]) + +// const fetchTemplates = async () => { +// try { +// templates.value = await $fetch(`http://localhost:8000/api/templates/category/${props.id_category}`) +// } catch (error) { +// console.error('Gagal ambil template:', error) +// } +// } + +// onMounted(() => { +// fetchTemplates() +// }) + +// defineEmits(['back']); \ No newline at end of file diff --git a/proyek-frontend/app/components/template-page/CategorySelection.vue b/proyek-frontend/app/components/template-page/CategorySelection.vue index f8ee80d..8a66ff7 100644 --- a/proyek-frontend/app/components/template-page/CategorySelection.vue +++ b/proyek-frontend/app/components/template-page/CategorySelection.vue @@ -1,50 +1,89 @@ + fetchCategories(); +}); +// Cukup satu baris ini untuk mengambil data dan mengelola semua state! +// const { data: categories, pending: isLoading, error } = await useFetch('http://localhost:8000/api/kategoris'); + \ No newline at end of file diff --git a/proyek-frontend/app/components/template-page/TemplateGrid.vue b/proyek-frontend/app/components/template-page/TemplateGrid.vue index ea8c0ee..0ec471c 100644 --- a/proyek-frontend/app/components/template-page/TemplateGrid.vue +++ b/proyek-frontend/app/components/template-page/TemplateGrid.vue @@ -1,25 +1,80 @@ diff --git a/proyek-frontend/app/pages/template.vue b/proyek-frontend/app/pages/template.vue index cad6a85..de0bd58 100644 --- a/proyek-frontend/app/pages/template.vue +++ b/proyek-frontend/app/pages/template.vue @@ -1,27 +1,33 @@ \ No newline at end of file diff --git a/proyek-frontend/app/components/template-page/TemplateGrid.vue b/proyek-frontend/app/components/template-page/TemplateGrid.vue index 0ec471c..c04192a 100644 --- a/proyek-frontend/app/components/template-page/TemplateGrid.vue +++ b/proyek-frontend/app/components/template-page/TemplateGrid.vue @@ -1,102 +1,78 @@ +const { data: templates, pending: isLoading, error } = useFetch( + () => `/api/templates/category/${props.id_category}`, + { + baseURL: 'http://localhost:8000', + key: () => `templates-${props.id_category}`, + transform: (response) => { + if (!response || !Array.isArray(response)) return []; + return response; + } + } +); + \ No newline at end of file diff --git a/proyek-frontend/nuxt.config.ts b/proyek-frontend/nuxt.config.ts index 7e815b9..b3bb747 100644 --- a/proyek-frontend/nuxt.config.ts +++ b/proyek-frontend/nuxt.config.ts @@ -19,5 +19,9 @@ export default defineNuxtConfig({ tailwindcss(), ], }, - + runtimeConfig: { + public: { + apiBaseUrl: process.env.NUXT_PUBLIC_API_BASE_URL || 'http://localhost:8000' + } + } }) \ No newline at end of file