diff --git a/app/Livewire/Home/ContactUs.php b/app/Livewire/Home/ContactUs.php new file mode 100644 index 0000000..d6b28ea --- /dev/null +++ b/app/Livewire/Home/ContactUs.php @@ -0,0 +1,78 @@ + ['required', 'max:100'], + 'email' => ['required', 'email', 'max:254'], + 'subject' => 'nullable', + 'message' => 'required', + ]; + } + + public function validationAttributes() + { + return [ + 'name' => 'name', + 'email' => 'alamat surel', + 'subject' => 'subyek', + 'message' => 'pesan', + ]; + } + + public function save() + { + $this->validate(); + + // Anti-spam: check if this email has submitted in the last 24 hours + $exists = Contact::where('email', $this->email) + ->where('created_at', '>=', now()->subDay()) + ->exists(); + + if ($exists) { + $this->addError('email', 'Maaf, Anda hanya dapat mengirim pesan sekali dalam 24 jam.'); + + return; + } + + Contact::create([ + 'name' => $this->name, + 'email' => $this->email, + 'subject' => $this->subject, + 'message' => $this->message, + ]); + + $this->reset(['name', 'email', 'subject', 'message']); + + session()->flash('success', 'Pesan Anda telah terkirim!'); + } + + public function render(GeneralSettings $settings) + { + return view('livewire.home.contact-us', [ + 'settings' => $settings, + ]); + } +} diff --git a/public/css/home/style.css b/public/css/home/style.css index 66a0657..bc92a4c 100644 --- a/public/css/home/style.css +++ b/public/css/home/style.css @@ -2607,10 +2607,10 @@ .magic-round-cursor #ball-cursor:after { display: none; } /* Anime animation */ -[data-anime] { +/* [data-anime] { opacity: 0; transition: none; -} +} */ [data-anime].appear { opacity: 1; } diff --git a/resources/views/components/layouts/app.blade.php b/resources/views/components/layouts/app.blade.php index bff10d8..b8a030c 100644 --- a/resources/views/components/layouts/app.blade.php +++ b/resources/views/components/layouts/app.blade.php @@ -2,7 +2,7 @@ - {{ $title }} | Simedkom + {{ $title ?? 'Simedkom' }} diff --git a/resources/views/components/partials/footer.blade.php b/resources/views/components/partials/footer.blade.php index aa86554..5c1fa07 100644 --- a/resources/views/components/partials/footer.blade.php +++ b/resources/views/components/partials/footer.blade.php @@ -24,6 +24,16 @@ class="col-12 col-xl-4 col-lg-4 col-sm-6 last-paragraph-no-margin text-xl-start @if ($general->address)

{{ $general->address }}

@endif +
+ @if ($general->site_email) + {{ $general->site_email }} + @endif + @if ($general->site_phone) + {{ $general->site_phone }} + @endif +
diff --git a/resources/views/components/partials/header.blade.php b/resources/views/components/partials/header.blade.php index dcf43d4..672e94e 100644 --- a/resources/views/components/partials/header.blade.php +++ b/resources/views/components/partials/header.blade.php @@ -50,7 +50,9 @@ class="nav-link {{ Route::is('news.index') || Route::is('news.show') ? 'active' Pengumuman - diff --git a/resources/views/livewire/home/contact-us.blade.php b/resources/views/livewire/home/contact-us.blade.php new file mode 100644 index 0000000..44e9cea --- /dev/null +++ b/resources/views/livewire/home/contact-us.blade.php @@ -0,0 +1,145 @@ +
+
+
+ + + + + +
+
+
+
+ {{ $pageTitle }} +
{{ $pageDescription }}
+
+
+
+
+ + +
+
+
+
+
+ Mari bekerjasama +

Siap membantu Anda!

+

Kami di sini untuk membantu dan menjawab pertanyaan apa pun yang Anda + miliki.

+
+
+

Hubungi langsung?

+ {{ $settings->site_phone }} +
+
+

Butuh bantuan?

+ {{ $settings->site_email }} +
+
+ +
+

Kunjungi kami?

+ @if ($settings->address) + {{ $settings->address }} + @endif +
+
+
+
+
+

Ada yang bisa kami bantu?

+
+ + @if (session()->has('success')) +
+ {{ session('success') }} +
+ @endif + +
+ +
+ + @error('name') + {{ $message }} + @enderror +
+ + +
+ + @error('email') + {{ $message }} + @enderror +
+ + +
+ + @error('subject') + {{ $message }} + @enderror +
+ + +
+ + @error('message') + {{ $message }} + @enderror +
+ +
+
+

Kami tidak akan pernah + mengumpulkan informasi tentang Anda tanpa persetujuan eksplisit dari Anda.

+
+
+ +
+
+
+
+
+
+
+ +
diff --git a/routes/web.php b/routes/web.php index 1e2a66f..160b133 100644 --- a/routes/web.php +++ b/routes/web.php @@ -3,6 +3,7 @@ use App\Http\Middleware\TrackVisitor; use App\Livewire\Home\AboutUs; use App\Livewire\Home\Announcement; +use App\Livewire\Home\ContactUs; use App\Livewire\Home\Index; use App\Livewire\Home\News\Index as NewsIndex; use App\Livewire\Home\News\Show as NewsShow; @@ -10,6 +11,7 @@ Route::middleware([TrackVisitor::class])->group(function () { Route::get('/', Index::class)->name('home'); + Route::get('/about-us', AboutUs::class)->name('about-us'); Route::prefix('news')->group(function () { @@ -18,4 +20,6 @@ }); Route::get('/announcements', Announcement::class)->name('announcement'); + + Route::get('/contact-us', ContactUs::class)->name('contact-us'); });