From 8d6d0b52b9a4c4a36430ada7b50cab99f2bad50b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Cmit=20Tun=C3=A7?= Date: Fri, 31 Oct 2025 17:01:27 -0300 Subject: [PATCH] Refactor template preview components: Moved preview component placement after the CodeEditor in footer, header, and section template forms for improved user experience. Enhanced loading indicators in the template preview Blade view for better feedback during content processing. --- .../Schemas/FooterTemplateForm.php | 16 +- .../Schemas/HeaderTemplateForm.php | 16 +- .../Schemas/SectionTemplateForm.php | 16 +- .../components/template-preview.blade.php | 440 +++++++++++------- 4 files changed, 294 insertions(+), 194 deletions(-) diff --git a/app/Filament/Admin/Resources/FooterTemplates/Schemas/FooterTemplateForm.php b/app/Filament/Admin/Resources/FooterTemplates/Schemas/FooterTemplateForm.php index fcb9058..059d403 100644 --- a/app/Filament/Admin/Resources/FooterTemplates/Schemas/FooterTemplateForm.php +++ b/app/Filament/Admin/Resources/FooterTemplates/Schemas/FooterTemplateForm.php @@ -23,14 +23,6 @@ class FooterTemplateForm ->maxLength(255) ->columnSpanFull(), - // Preview Component - View::make('components.template-preview') - ->extraAttributes([ - 'data-type' => 'footer', - 'data-field-name' => 'html_content', - ]) - ->columnSpanFull(), - CodeEditor::make('html_content') ->label(__('footer-templates.field_html_content')) ->required() @@ -42,6 +34,14 @@ class FooterTemplateForm 'data-field-name' => 'html_content', ]), + // Preview Component - placed after editor + View::make('components.template-preview') + ->extraAttributes([ + 'data-type' => 'footer', + 'data-field-name' => 'html_content', + ]) + ->columnSpanFull(), + Toggle::make('is_active') ->label(__('footer-templates.field_is_active')) ->default(true) diff --git a/app/Filament/Admin/Resources/HeaderTemplates/Schemas/HeaderTemplateForm.php b/app/Filament/Admin/Resources/HeaderTemplates/Schemas/HeaderTemplateForm.php index 50caa00..a34b981 100644 --- a/app/Filament/Admin/Resources/HeaderTemplates/Schemas/HeaderTemplateForm.php +++ b/app/Filament/Admin/Resources/HeaderTemplates/Schemas/HeaderTemplateForm.php @@ -23,14 +23,6 @@ class HeaderTemplateForm ->maxLength(255) ->columnSpanFull(), - // Preview Component - View::make('components.template-preview') - ->extraAttributes([ - 'data-type' => 'header', - 'data-field-name' => 'html_content', - ]) - ->columnSpanFull(), - CodeEditor::make('html_content') ->label(__('header-templates.field_html_content')) ->required() @@ -42,6 +34,14 @@ class HeaderTemplateForm 'data-field-name' => 'html_content', ]), + // Preview Component - placed after editor + View::make('components.template-preview') + ->extraAttributes([ + 'data-type' => 'header', + 'data-field-name' => 'html_content', + ]) + ->columnSpanFull(), + Toggle::make('is_active') ->label(__('header-templates.field_is_active')) ->default(true) diff --git a/app/Filament/Admin/Resources/SectionTemplates/Schemas/SectionTemplateForm.php b/app/Filament/Admin/Resources/SectionTemplates/Schemas/SectionTemplateForm.php index fd98fbe..6c2ca56 100644 --- a/app/Filament/Admin/Resources/SectionTemplates/Schemas/SectionTemplateForm.php +++ b/app/Filament/Admin/Resources/SectionTemplates/Schemas/SectionTemplateForm.php @@ -23,14 +23,6 @@ class SectionTemplateForm ->maxLength(255) ->columnSpanFull(), - // Preview Component - View::make('components.template-preview') - ->extraAttributes([ - 'data-type' => 'section', - 'data-field-name' => 'html_content', - ]) - ->columnSpanFull(), - CodeEditor::make('html_content') ->label(__('section-templates.field_html_content')) ->required() @@ -42,6 +34,14 @@ class SectionTemplateForm 'data-field-name' => 'html_content', ]), + // Preview Component - placed after editor + View::make('components.template-preview') + ->extraAttributes([ + 'data-type' => 'section', + 'data-field-name' => 'html_content', + ]) + ->columnSpanFull(), + Toggle::make('is_active') ->label(__('section-templates.field_is_active')) ->default(true) diff --git a/resources/views/components/template-preview.blade.php b/resources/views/components/template-preview.blade.php index 39c920f..55da1e8 100644 --- a/resources/views/components/template-preview.blade.php +++ b/resources/views/components/template-preview.blade.php @@ -1,6 +1,5 @@ @php $previewUrl = route('template.preview'); - // Get type and fieldName from component attributes or defaults $type = $attributes->get('data-type') ?? 'section'; $fieldName = $attributes->get('data-field-name') ?? 'html_content'; @endphp @@ -9,7 +8,7 @@ x-data="templatePreview(@js($previewUrl), @js($type), @js($fieldName))" class="template-preview-wrapper w-full" style="width: 100%;" - wire:ignore> + wire:ignore.self>