58 lines
1.2 KiB
PHP
58 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\View\Components\Links;
|
|
|
|
use Carbon\Exceptions\InvalidFormatException;
|
|
use Illuminate\Support\Carbon;
|
|
use Illuminate\View\Component;
|
|
|
|
class VideoLink extends Component
|
|
{
|
|
/**
|
|
* @var string
|
|
*/
|
|
public $bvid;
|
|
/**
|
|
* @var int|string
|
|
*/
|
|
public $part;
|
|
/**
|
|
* @var string|null
|
|
*/
|
|
public $time;
|
|
/**
|
|
* @var int|string|null
|
|
*/
|
|
public $sec;
|
|
|
|
/**
|
|
* Create a new component instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct(string $bvid, $part = 1, $time = null, $sec=null)
|
|
{
|
|
$this->bvid = $bvid;
|
|
$this->part = $part;
|
|
if ($sec == null) {
|
|
try {
|
|
$sec = Carbon::createFromFormat("H:i:s", $time)->secondsSinceMidnight();
|
|
} catch (InvalidFormatException $ex) {
|
|
$time = null;
|
|
}
|
|
}
|
|
$this->time = $time;
|
|
$this->sec = $sec;
|
|
}
|
|
|
|
/**
|
|
* Get the view / contents that represent the component.
|
|
*
|
|
* @return \Illuminate\Contracts\View\View|\Closure|string
|
|
*/
|
|
public function render()
|
|
{
|
|
return view('components.links.video_link');
|
|
}
|
|
}
|