ContactForm   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 18
c 1
b 0
f 1
dl 0
loc 37
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A contactStore() 0 14 1
A resetInputFields() 0 3 1
A render() 0 3 1
1
<?php
2
3
namespace App\Http\Livewire;
4
5
use Livewire\Component;
6
use Jantinnerezo\LivewireAlert\LivewireAlert;
7
use App\Models\Contact;
8
9
class ContactForm extends Component
10
{
11
    use LivewireAlert;
12
13
    public $name = '';
14
    public $phone_number = '';
15
    public $email = '';
16
    public $budget = '';
17
    public $message = '';
18
19
    public function render()
20
    {
21
        return view('components.contact-form');
22
    }
23
24
    public function contactStore()
25
    {
26
        $validatedDate = $this->validate([
27
            'name' => 'required|string|max:191',
28
            'phone_number' => 'required|max:50',
29
            'email' => 'required|email|unique:contacts,email',
30
            'budget' => 'required',
31
            'message' => 'nullable|string',
32
        ]);
33
34
        Contact::create($validatedDate);
35
36
        $this->resetInputFields();
37
        $this->alert('success', 'Contact stored successfully.');
38
    }
39
40
    /**
41
     * @var array
42
     */
43
    private function resetInputFields()
44
    {
45
        $this->reset(['name', 'phone_number', 'email', 'budget', 'message']);
46
    }
47
}
48