diff --git a/src/Form/Eloquent/Uploads/Transformers/SharpUploadModelFormAttributeTransformer.php b/src/Form/Eloquent/Uploads/Transformers/SharpUploadModelFormAttributeTransformer.php index 597e693d8..d3937c023 100644 --- a/src/Form/Eloquent/Uploads/Transformers/SharpUploadModelFormAttributeTransformer.php +++ b/src/Form/Eloquent/Uploads/Transformers/SharpUploadModelFormAttributeTransformer.php @@ -79,6 +79,7 @@ public function apply($value, $instance = null, $attribute = null) 'path', 'disk', 'thumbnail', + 'large_thumbnail', 'playable_preview_url', 'download_url', 'size', @@ -109,6 +110,7 @@ protected function transformUpload(SharpUploadModel $upload): array 'disk' => $upload->disk, 'mime_type' => $upload->mime_type, 'thumbnail' => $this->getThumbnailUrl($upload), + 'large_thumbnail' => $this->getLargeThumbnailUrl($upload), 'playable_preview_url' => $this->getPlayableMediaUrl($upload), 'download_url' => URL::temporarySignedRoute( 'code16.sharp.download.show', @@ -127,6 +129,25 @@ protected function transformUpload(SharpUploadModel $upload): array ]; } + private function getLargeThumbnailUrl(SharpUploadModel $upload): ?string + { + // prevent generating thumbnail for non-image files + if ($upload->mime_type && ! str($upload->mime_type)->startsWith('image/')) { + return null; + } + + return URL::signedRoute( + 'code16.sharp.api.form.upload.thumbnail.show', + [ + 'entityKey' => sharp()->context()->entityKey(), + 'instanceId' => sharp()->context()->instanceId(), + 'disk' => $upload->disk, + 'path' => $upload->file_name, + 'width' => 1200, + 'height' => 1000, + ]); + } + private function getThumbnailUrl(SharpUploadModel $upload): ?string { if (! $this->withThumbnails) {