39 lines
929 B
PHP
39 lines
929 B
PHP
<?php
|
|
|
|
namespace Laravel\Nova\Fields;
|
|
|
|
trait HasPreview
|
|
{
|
|
/**
|
|
* The callback used to retrieve the preview URL.
|
|
*
|
|
* @var (callable(mixed, ?string, mixed):(?string))|null
|
|
*/
|
|
public $previewUrlCallback;
|
|
|
|
/**
|
|
* Specify the callback that should be used to retrieve the preview URL.
|
|
*
|
|
* @param callable(mixed, ?string, mixed):?string $previewUrlCallback
|
|
* @return $this
|
|
*/
|
|
public function preview(callable $previewUrlCallback)
|
|
{
|
|
$this->previewUrlCallback = $previewUrlCallback;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Resolve the preview URL for the field.
|
|
*
|
|
* @return string|null
|
|
*/
|
|
public function resolvePreviewUrl()
|
|
{
|
|
return is_callable($this->previewUrlCallback)
|
|
? call_user_func($this->previewUrlCallback, $this->value, $this->getStorageDisk(), $this->resource)
|
|
: null;
|
|
}
|
|
}
|