diff --git a/middleware/profil.global.ts b/middleware/profil.ts
similarity index 100%
rename from middleware/profil.global.ts
rename to middleware/profil.ts
diff --git a/pages/admin/buku/[isbn].vue b/pages/admin/buku/[isbn].vue
index 962690ed..038b354d 100644
--- a/pages/admin/buku/[isbn].vue
+++ b/pages/admin/buku/[isbn].vue
@@ -1,11 +1,11 @@
diff --git a/pages/index.vue b/pages/index.vue
index 15a526cd..57b516e3 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -3,8 +3,10 @@ definePageMeta({
layout: "default",
})
-const authStore = useAuthStore()
-const { profile } = authStore
+const { data: profile } = await useLazyAsyncData(async () => {
+ const authStore = useAuthStore()
+ return authStore.profile
+})
diff --git a/pages/profil/edit.vue b/pages/profil/edit.vue
index 63933864..53a03a07 100644
--- a/pages/profil/edit.vue
+++ b/pages/profil/edit.vue
@@ -13,16 +13,13 @@ useHead({
definePageMeta({
layout: "profile-edit",
+ middleware: "profil",
})
const authStore = useAuthStore()
-const supabaseUser = useSupabaseUser()
-const user = ref(null)
-onMounted(async () => {
- if (supabaseUser.value) {
- user.value = await authStore.getProfile(supabaseUser.value.id)
- }
+const { data: user } = await useAsyncData(async () => {
+ return authStore.profile
})
const toast = useToast()
diff --git a/pages/profil/index.vue b/pages/profil/index.vue
index 70c4c239..79a6b83e 100644
--- a/pages/profil/index.vue
+++ b/pages/profil/index.vue
@@ -9,6 +9,7 @@ useHead({
definePageMeta({
layout: "default",
+ middleware: "profil",
})
const supabase = useSupabaseClient()
diff --git a/pages/profil/keamanan.vue b/pages/profil/keamanan.vue
index 11bf91cc..d744b702 100644
--- a/pages/profil/keamanan.vue
+++ b/pages/profil/keamanan.vue
@@ -13,15 +13,17 @@ useHead({
definePageMeta({
layout: "profile-edit",
+ middleware: "profil",
})
const supabase = useSupabaseClient()
+const user = useSupabaseUser()
const { dialog } = useDialog()
const kredensialPengguna = ref({
password: "",
passwordKonfirmasi: "",
- email: "",
+ email: user.value!.email,
})
async function ubahKredensial() {
@@ -72,13 +74,6 @@ async function signOut() {
await authStore.handleSignOut()
router.push("/")
}
-
-onMounted(async () => {
- authStore.$subscribe((_, state) => {
- if (!state.profile) return
- kredensialPengguna.value.email = state.profile.email
- })
-})
diff --git a/pages/wishlist.vue b/pages/wishlist.vue
index cbed81f1..5753261d 100644
--- a/pages/wishlist.vue
+++ b/pages/wishlist.vue
@@ -1,6 +1,6 @@