diff --git a/app/Http/Controllers/UserProfileController.php b/app/Http/Controllers/UserProfileController.php
index ecc7c1d..9d0411c 100644
--- a/app/Http/Controllers/UserProfileController.php
+++ b/app/Http/Controllers/UserProfileController.php
@@ -12,7 +12,7 @@ public function store(Request $request)
{
$request->validate([
'name' => 'required|string|max:255',
- 'email' => 'required|email|max:255',
+ 'email' => 'required|email|max:255|unique:user_profiles,email',
'gender' => 'required|in:laki-laki,perempuan',
'day' => 'required|integer|min:1|max:31',
'month' => 'required|integer|min:1|max:12',
diff --git a/public/css/style.css b/public/css/style.css
index ef37961..9e2b410 100644
--- a/public/css/style.css
+++ b/public/css/style.css
@@ -652,4 +652,11 @@ .image-section img{
.image-section img:hover{
transform: scale(1.03) translateY(-4px);
filter: drop-shadow(0 16px 40px rgba(88,166,255,0.2));
+}
+
+/* ===== VALIDATION ERROR STATE ===== */
+.form-input.is-invalid,
+.form-select.is-invalid {
+ border-color: rgba(248, 81, 73, 0.7) !important;
+ box-shadow: 0 0 0 3px rgba(248, 81, 73, 0.12);
}
\ No newline at end of file
diff --git a/resources/views/input-data.blade.php b/resources/views/input-data.blade.php
index a62df8e..6d004f7 100644
--- a/resources/views/input-data.blade.php
+++ b/resources/views/input-data.blade.php
@@ -174,7 +174,10 @@
Nama
-
+
+ @error('name')
+ ⚠ {{ $message }}
+ @enderror
@@ -186,7 +189,10 @@
Email
-
+
+ @error('email')
+ ⚠ {{ $message }}
+ @enderror
@@ -258,8 +264,11 @@
Register Voice Keyword
-
+
+ @error('voice_keyword')
+ ⚠ {{ $message }}
+ @enderror
🎙️ Kata kunci ini akan digunakan untuk membuka pintu dengan suara