diff --git a/components/auth/LoginForm.vue b/components/auth/LoginForm.vue new file mode 100644 index 0000000..8903bf1 --- /dev/null +++ b/components/auth/LoginForm.vue @@ -0,0 +1,167 @@ + + + + + + + Masuk + + Masuk ke akun Metschoo Library yang sudah anda miliki! + + + + + Email + + + + {{ $form.email.error.message }} + + + Password + + + + {{ $form.password.error.message }} + + + + + + + + + + Masukkan emailmu, dan kami akan mengirimkan link untuk mengganti passwordmu. + + + Email terkirim! setelah kamu klik linknya, kamu bisa menutup tab ini. + + + + + + + + + + + + diff --git a/components/auth/SignInForm.vue b/components/auth/SignInForm.vue new file mode 100644 index 0000000..6ae38a4 --- /dev/null +++ b/components/auth/SignInForm.vue @@ -0,0 +1,174 @@ + + + + + + + Daftar + + Buat akun Metschoo Library yang baru! + + + + + Nama + + + + {{ $form.nama?.error.message }} + + + Email + + + + {{ $form.email?.error.message }} + + + No. HP + + + + {{ $form.phoneNumber?.error.message }} + + + Password + + + + {{ $form.password?.error.message }} + + + Konfirmasi Password + + + + {{ $form.confirmPassword?.error.message }} + + + + Mohon konfirmasi password kamu, ngetiknya yang bener. + + + + + + + + + + + diff --git a/components/signIn/SignInForm.vue b/components/signIn/SignInForm.vue deleted file mode 100644 index 8203bae..0000000 --- a/components/signIn/SignInForm.vue +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - - Masuk - - Masuk ke akun Metschoo Library yang sudah anda miliki! - - - - - Daftar - - Buat akun Metschoo Library yang baru! - - - - - - Email - - - Password - - - - - - - - - - Nama - - - Email - - - No. HP - - - - {{ formState.phone.message }} - - - Password - - - - Password harus memiliki panjang 8 karakter atau lebih. - - - Konfirmasi Password - - - - Password tidak sama. - - - - - - - - - - - - Masukkan emailmu, dan kami akan mengirimkan link untuk mengganti passwordmu. - - - Email terkirim! setelah kamu klik linknya, kamu bisa menutup tab ini. - - - - - - - - - - - - diff --git a/package.json b/package.json index 15b8625..253229e 100644 --- a/package.json +++ b/package.json @@ -18,10 +18,12 @@ "@nuxt/fonts": "^0.10.2", "@nuxt/image": "^1.7.0", "@pinia/nuxt": "^0.5.3", + "@primevue/forms": "^4.2.5", "primevue": "^4.2.0", "supabase": "^1.219.2", "tailwindcss-primeui": "^0.3.4", - "vue": "latest" + "vue": "latest", + "zod": "^3.24.1" }, "devDependencies": { "@iconify-json/mdi": "^1.1.68", diff --git a/pages/login.vue b/pages/login.vue index 5023f13..6ae6147 100644 --- a/pages/login.vue +++ b/pages/login.vue @@ -10,9 +10,40 @@ definePageMeta({ }, ], }) + +const isSigningIn = ref(false) + +function handleSwitchForm() { + isSigningIn.value = !isSigningIn.value +} + +const title = computed(() => (isSigningIn.value ? "Log in" : "Sign in")) +useHead({ title }) + +const switchFormButtonLabel = computed(() => + isSigningIn.value ? "Sudah punya akun? Masuk" : "Belum punya akun? ayo bikin dulu!" +) + - - + + + + + + + + + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef218ea..6fd25c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,9 @@ importers: '@pinia/nuxt': specifier: ^0.5.3 version: 0.5.5(magicast@0.3.5)(rollup@4.27.2)(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)) + '@primevue/forms': + specifier: ^4.2.5 + version: 4.2.5(vue@3.5.13(typescript@5.6.3)) primevue: specifier: ^4.2.0 version: 4.2.2(vue@3.5.13(typescript@5.6.3)) @@ -29,6 +32,9 @@ importers: vue: specifier: latest version: 3.5.13(typescript@5.6.3) + zod: + specifier: ^3.24.1 + version: 3.24.1 devDependencies: '@iconify-json/mdi': specifier: ^1.1.68 @@ -1135,14 +1141,26 @@ packages: '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + '@primeuix/forms@0.0.2': + resolution: {integrity: sha512-DpecPQd/Qf/kav4LKCaIeGuT3AkwhJzuHCkLANTVlN/zBvo8KIj3OZHsCkm0zlIMVVnaJdtx1ULNlRQdudef+A==} + engines: {node: '>=12.11.0'} + '@primeuix/styled@0.3.1': resolution: {integrity: sha512-MIPtektNrFwEKJU0qXrguoultADtxMC39ghwXIGP3DR3zsB7vWk6VhJ1Mo7TxgWsVi3kHnh6g5v9X50eMFcBHw==} engines: {node: '>=12.11.0'} + '@primeuix/styled@0.3.2': + resolution: {integrity: sha512-ColZes0+/WKqH4ob2x8DyNYf1NENpe5ZguOvx5yCLxaP8EIMVhLjWLO/3umJiDnQU4XXMLkn2mMHHw+fhTX/mw==} + engines: {node: '>=12.11.0'} + '@primeuix/utils@0.3.1': resolution: {integrity: sha512-KFJ8FylTX2j3AN6AvkF8JGSUNb7Dtqz1T5mlZnINDb6bwW+/V/d5wISiMEdhzdso69mmOX7IlYUDsj0w0pvxvA==} engines: {node: '>=12.11.0'} + '@primeuix/utils@0.3.2': + resolution: {integrity: sha512-B+nphqTQeq+i6JuICLdVWnDMjONome2sNz0xI65qIOyeB4EF12CoKRiCsxuZ5uKAkHi/0d1LqlQ9mIWRSdkavw==} + engines: {node: '>=12.11.0'} + '@primevue/auto-import-resolver@4.2.2': resolution: {integrity: sha512-tM4BSIaS3JTXsVLNm69L7ZD9IOUdzK4PzrS+9zyDqA+l5mPTb+KOBEPXLvYXi+0NE7bAluvx/MhmfRA8eGXXzQ==} engines: {node: '>=12.11.0'} @@ -1153,6 +1171,16 @@ packages: peerDependencies: vue: ^3.3.0 + '@primevue/core@4.2.5': + resolution: {integrity: sha512-+oWBIQs5dLd2Ini4KEVOlvPILk989EHAskiFS3R/dz3jeOllJDMZFcSp8V9ddV0R3yDaPdLVkfHm2Q5t42kU2Q==} + engines: {node: '>=12.11.0'} + peerDependencies: + vue: ^3.3.0 + + '@primevue/forms@4.2.5': + resolution: {integrity: sha512-5jarJQ9Qv32bOo/0tY5bqR3JZI6+YmmoUQ2mjhVSbVElQsE4FNfhT7a7JwF+xgBPMPc8KWGNA1QB248HhPNVAg==} + engines: {node: '>=12.11.0'} + '@primevue/icons@4.2.2': resolution: {integrity: sha512-x0AwfjB94MoLsmNyQtSGgrEWhZ52SzRQ3X5hEUA30L7tdob66qYmiMKCnjfq2gvJIB477DwB7cxJZhaTxspsDw==} engines: {node: '>=12.11.0'} @@ -5426,6 +5454,9 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} + snapshots: '@alloc/quick-lru@5.2.0': {} @@ -6673,12 +6704,22 @@ snapshots: '@polka/url@1.0.0-next.28': {} + '@primeuix/forms@0.0.2': + dependencies: + '@primeuix/utils': 0.3.2 + '@primeuix/styled@0.3.1': dependencies: '@primeuix/utils': 0.3.1 + '@primeuix/styled@0.3.2': + dependencies: + '@primeuix/utils': 0.3.2 + '@primeuix/utils@0.3.1': {} + '@primeuix/utils@0.3.2': {} + '@primevue/auto-import-resolver@4.2.2': dependencies: '@primevue/metadata': 4.2.2 @@ -6689,6 +6730,20 @@ snapshots: '@primeuix/utils': 0.3.1 vue: 3.5.13(typescript@5.6.3) + '@primevue/core@4.2.5(vue@3.5.13(typescript@5.6.3))': + dependencies: + '@primeuix/styled': 0.3.2 + '@primeuix/utils': 0.3.2 + vue: 3.5.13(typescript@5.6.3) + + '@primevue/forms@4.2.5(vue@3.5.13(typescript@5.6.3))': + dependencies: + '@primeuix/forms': 0.0.2 + '@primeuix/utils': 0.3.2 + '@primevue/core': 4.2.5(vue@3.5.13(typescript@5.6.3)) + transitivePeerDependencies: + - vue + '@primevue/icons@4.2.2(vue@3.5.13(typescript@5.6.3))': dependencies: '@primeuix/utils': 0.3.1 @@ -11598,3 +11653,5 @@ snapshots: archiver-utils: 5.0.2 compress-commons: 6.0.2 readable-stream: 4.5.2 + + zod@3.24.1: {}
Masuk ke akun Metschoo Library yang sudah anda miliki!
+ Masukkan emailmu, dan kami akan mengirimkan link untuk mengganti passwordmu. +
+ Email terkirim! setelah kamu klik linknya, kamu bisa menutup tab ini. +
Buat akun Metschoo Library yang baru!
- Masukkan emailmu, dan kami akan mengirimkan link untuk mengganti passwordmu. -
- Email terkirim! setelah kamu klik linknya, kamu bisa menutup tab ini. -