From cce733e288cbb9d80fd609bab1136fcdaba02b09 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Thu, 25 Jun 2026 22:41:11 +0700 Subject: [PATCH] refactor: improve MediaDropzone file handling and input triggering with container-based scoping --- app/Models/HomepageConfiguration.php | 2 +- .../System/Setting/HomepageSettingService.php | 2 +- .../js/components/media/MediaDropzone.vue | 202 ++++++++++++------ .../system/setting/form/HomepageSection.vue | 29 ++- 4 files changed, 168 insertions(+), 67 deletions(-) diff --git a/app/Models/HomepageConfiguration.php b/app/Models/HomepageConfiguration.php index 5cb0b5a..02ce091 100644 --- a/app/Models/HomepageConfiguration.php +++ b/app/Models/HomepageConfiguration.php @@ -28,6 +28,6 @@ public function registerMediaCollections(): void { $this->addMediaCollection('hero_image')->singleFile(); $this->addMediaCollection('about_image')->singleFile(); - $this->addMediaCollection('gallery')->singleFile(); + $this->addMediaCollection('gallery'); } } diff --git a/app/Services/System/Setting/HomepageSettingService.php b/app/Services/System/Setting/HomepageSettingService.php index be5e3c9..c27a984 100644 --- a/app/Services/System/Setting/HomepageSettingService.php +++ b/app/Services/System/Setting/HomepageSettingService.php @@ -41,7 +41,7 @@ public function updateHomepage(array $validated): void $this->mediaService->replaceSingleFile($configuration, $validated['about_image'], 'about_image', 'about-image'); } - if (isset($validated['gallery_images'])) { + if (isset($validated['gallery_images']) || isset($validated['gallery_images_remove'])) { $this->mediaService->syncCollection( $configuration, 'gallery', diff --git a/resources/js/components/media/MediaDropzone.vue b/resources/js/components/media/MediaDropzone.vue index 0063883..93a65e8 100644 --- a/resources/js/components/media/MediaDropzone.vue +++ b/resources/js/components/media/MediaDropzone.vue @@ -1,6 +1,4 @@