From 7ddbe0c4731a9b76c78eabbcb8b4ecf50e6cd152 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 6 Mar 2025 02:41:13 -0700 Subject: [PATCH] Add AVIF support --- app/Http/Controllers/Admin/AdminSettingsController.php | 4 +++- resources/assets/components/admin/AdminSettings.vue | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Admin/AdminSettingsController.php b/app/Http/Controllers/Admin/AdminSettingsController.php index cae5c1e4a..13b9e9a49 100644 --- a/app/Http/Controllers/Admin/AdminSettingsController.php +++ b/app/Http/Controllers/Admin/AdminSettingsController.php @@ -70,6 +70,7 @@ trait AdminSettingsController 'type_gif' => 'nullable', 'type_mp4' => 'nullable', 'type_webp' => 'nullable', + 'type_avif' => 'nullable', 'admin_account_id' => 'nullable', 'regs' => 'required|in:open,filtered,closed', 'account_migration' => 'nullable', @@ -128,6 +129,7 @@ trait AdminSettingsController 'type_gif' => 'image/gif', 'type_mp4' => 'video/mp4', 'type_webp' => 'image/webp', + 'type_avif' => 'image/avif', ]; foreach ($mimes as $key => $value) { @@ -609,7 +611,7 @@ trait AdminSettingsController $mediaTypes = $request->input('media_types'); $mediaArray = explode(',', $mediaTypes); foreach ($mediaArray as $mediaType) { - if (! in_array($mediaType, ['image/jpeg', 'image/png', 'image/gif', 'image/webp', 'video/mp4'])) { + if (! in_array($mediaType, ['image/jpeg', 'image/png', 'image/gif', 'image/webp', 'video/mp4', 'image/avif'])) { return redirect()->back()->withErrors(['media_types' => 'Invalid media type']); } } diff --git a/resources/assets/components/admin/AdminSettings.vue b/resources/assets/components/admin/AdminSettings.vue index 88b6192d4..4192edd02 100644 --- a/resources/assets/components/admin/AdminSettings.vue +++ b/resources/assets/components/admin/AdminSettings.vue @@ -1025,6 +1025,10 @@ res += 'video/mp4' } + if(this.mediaTypes.avif) { + res += 'image/avif' + } + if(res.endsWith(',')) { res = res.slice(0, -1); } @@ -1088,7 +1092,7 @@ if(types && types.length) { types.forEach((type) => { let mime = type.split('/')[1]; - if(['jpeg', 'png', 'gif', 'webp', 'mp4'].includes(mime)) { + if(['jpeg', 'png', 'gif', 'webp', 'mp4', 'avif'].includes(mime)) { this.mediaTypes[mime] = true; } })