44 lines
1 KiB
PHP
44 lines
1 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire\Web\Components\Sections;
|
|
|
|
use Livewire\Component;
|
|
|
|
class HeroSlider extends Component
|
|
{
|
|
public $content = [];
|
|
|
|
public $currentSlide = 0;
|
|
|
|
public function mount()
|
|
{
|
|
$this->content = cms_theme_section('hero_slider');
|
|
}
|
|
|
|
public function nextSlide()
|
|
{
|
|
if (! empty($this->content['slides'])) {
|
|
$this->currentSlide = ($this->currentSlide + 1) % count($this->content['slides']);
|
|
}
|
|
}
|
|
|
|
public function previousSlide()
|
|
{
|
|
if (! empty($this->content['slides'])) {
|
|
$totalSlides = count($this->content['slides']);
|
|
$this->currentSlide = ($this->currentSlide - 1 + $totalSlides) % $totalSlides;
|
|
}
|
|
}
|
|
|
|
public function setSlide($index)
|
|
{
|
|
if (! empty($this->content['slides']) && $index >= 0 && $index < count($this->content['slides'])) {
|
|
$this->currentSlide = $index;
|
|
}
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('livewire.web.components.sections.hero-slider');
|
|
}
|
|
}
|