cms-laravel/app/Livewire/DatePickerForm.php

53 lines
1.7 KiB
PHP

<?php
namespace App\Livewire;
use Livewire\Component;
use Carbon\Carbon;
class DatePickerForm extends Component
{
public $value;
public $type = 'date';
public $name;
public $label;
public $format = 'Y-m-d';
public $minDateToday = false;
public $required = false;
public $disabledDateStart = false;
public $dateStartEnd = null;
public $disabledDateStartEndPhotoSlider = false;
public $disabledDateStartEndPhotoSliderEndDate = false;
public $isEdit = false;
public function mount($name, $label, $type = 'date', $format = 'Y-m-d', $minDateToday = false, $required = false, $disabledDateStart = false, $dateStartEnd = null, $disabledDateStartEndPhotoSlider = false, $disabledDateStartEndPhotoSliderEndDate = false, $isEdit = false)
{
$this->name = $name;
$this->label = $label;
$this->type = $type;
$this->format = $format;
$this->minDateToday = $minDateToday;
$this->required = $required;
$this->disabledDateStart = $disabledDateStart;
$this->dateStartEnd = $dateStartEnd;
$this->disabledDateStartEndPhotoSlider = $disabledDateStartEndPhotoSlider;
$this->disabledDateStartEndPhotoSliderEndDate = $disabledDateStartEndPhotoSliderEndDate;
$this->isEdit = $isEdit;
}
public function updatedValue()
{
$this->dispatch('dateChanged', $this->value);
}
public function render()
{
$minDate = $this->minDateToday ? Carbon::today()->toDateString() : null;
if ($this->disabledDateStart && $this->dateStartEnd) {
$minDate = Carbon::parse($this->dateStartEnd['date_start'])->toDateString();
}
return view('livewire.date-picker-form', ['minDate' => $minDate]);
}
}