From b1467204f89456d7ced83d70415ad916b83a1816 Mon Sep 17 00:00:00 2001 From: andrzejskowron Date: Wed, 26 Nov 2025 13:13:33 +0100 Subject: [PATCH 1/4] add preview import list --- .../views/livewire/catalog/index.blade.php | 137 +++++++++++++++ .../views/livewire/catalog/trmnl.blade.php | 157 ++++++++++++++++++ 2 files changed, 294 insertions(+) diff --git a/resources/views/livewire/catalog/index.blade.php b/resources/views/livewire/catalog/index.blade.php index 201ee7e..83a34fc 100644 --- a/resources/views/livewire/catalog/index.blade.php +++ b/resources/views/livewire/catalog/index.blade.php @@ -14,6 +14,8 @@ new class extends Component { public array $catalogPlugins = []; public string $installingPlugin = ''; + public string $previewingPlugin = ''; + public array $previewData = []; public function mount(): void { @@ -117,6 +119,31 @@ class extends Component { $this->installingPlugin = ''; } } + + public function previewPlugin(string $pluginId): void + { + $plugin = collect($this->catalogPlugins)->firstWhere('id', $pluginId); + + if (!$plugin) { + $this->addError('preview', 'Plugin not found.'); + return; + } + + $this->previewingPlugin = $pluginId; + $this->previewData = $plugin; + + // Store scroll position for restoration later + $this->dispatch('store-scroll-position'); + } + + public function closePreview(): void + { + $this->previewingPlugin = ''; + $this->previewData = []; + + // Restore scroll position when returning to catalog + $this->dispatch('restore-scroll-position'); + } }; ?>
@@ -174,6 +201,17 @@ class extends Component { Install + + + Preview + + + + + @if($plugin['learn_more_url']) @endif + + + + @if($previewingPlugin && !empty($previewData)) +
+ Preview {{ $previewData['name'] ?? 'Plugin' }} +
+ +
+ @if($previewData['screenshot_url']) +
+ Preview of {{ $previewData['name'] }} +
+ @elseif($previewData['logo_url']) +
+ {{ $previewData['name'] }} logo +

No preview image available

+
+ @else +
+ +

No preview available

+
+ @endif + + @if($previewData['description']) +
+

Description

+

{{ $previewData['description'] }}

+
+ @endif + +
+ + + Install Plugin + + +
+
+ @endif +
+ +@script + +@endscript diff --git a/resources/views/livewire/catalog/trmnl.blade.php b/resources/views/livewire/catalog/trmnl.blade.php index 8e9c7af..8a2d72c 100644 --- a/resources/views/livewire/catalog/trmnl.blade.php +++ b/resources/views/livewire/catalog/trmnl.blade.php @@ -14,6 +14,8 @@ class extends Component { public array $recipes = []; public string $search = ''; public bool $isSearching = false; + public string $previewingRecipe = ''; + public array $previewData = []; public function mount(): void { @@ -125,6 +127,31 @@ class extends Component { } } + public function previewRecipe(string $recipeId): void + { + $recipe = collect($this->recipes)->firstWhere('id', $recipeId); + + if (!$recipe) { + $this->addError('preview', 'Recipe not found.'); + return; + } + + $this->previewingRecipe = $recipeId; + $this->previewData = $recipe; + + // Store scroll position for restoration later + $this->dispatch('store-scroll-position'); + } + + public function closePreview(): void + { + $this->previewingRecipe = ''; + $this->previewData = []; + + // Restore scroll position when returning to catalog + $this->dispatch('restore-scroll-position'); + } + /** * @param array> $items * @return array> @@ -218,6 +245,19 @@ class extends Component { @endif + @if($recipe['id']) + + + Preview + + + @endif + + + @if($recipe['detail_url']) @endif + + + + @if($previewingRecipe && !empty($previewData)) +
+ Preview {{ $previewData['name'] ?? 'Recipe' }} +
+ +
+ @if($previewData['screenshot_url']) +
+ Preview of {{ $previewData['name'] }} +
+ @elseif($previewData['icon_url']) +
+ {{ $previewData['name'] }} icon +

No preview image available

+
+ @else +
+ +

No preview available

+
+ @endif + + @if($previewData['author_bio']) +
+

Description

+

{{ $previewData['author_bio'] }}

+
+ @endif + + @if(data_get($previewData, 'stats.installs')) +
+

Statistics

+

+ Installs: {{ data_get($previewData, 'stats.installs') }} · + Forks: {{ data_get($previewData, 'stats.forks') }} +

+
+ @endif + +
+ @if($previewData['detail_url']) + + View on TRMNL + + @endif + + + Install Recipe + + +
+
+ @endif +
+ +@script + +@endscript From a7963947f8111cfc476bf898f065f4815fbc5174 Mon Sep 17 00:00:00 2001 From: andrzejskowron Date: Sun, 30 Nov 2025 07:12:16 +0100 Subject: [PATCH 2/4] use flux design --- .../views/livewire/catalog/trmnl.blade.php | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/resources/views/livewire/catalog/trmnl.blade.php b/resources/views/livewire/catalog/trmnl.blade.php index 8a2d72c..0460337 100644 --- a/resources/views/livewire/catalog/trmnl.blade.php +++ b/resources/views/livewire/catalog/trmnl.blade.php @@ -204,7 +204,7 @@ class extends Component { @else
@foreach($recipes as $recipe) -
+
@php($thumb = $recipe['icon_url'] ?? $recipe['screenshot_url']) @if($thumb) @@ -218,9 +218,9 @@ class extends Component {
-

{{ $recipe['name'] }}

+ {{ $recipe['name'] }} @if(data_get($recipe, 'stats.installs')) -

Installs: {{ data_get($recipe, 'stats.installs') }} · Forks: {{ data_get($recipe, 'stats.forks') }}

+ Installs: {{ data_get($recipe, 'stats.installs') }} · Forks: {{ data_get($recipe, 'stats.forks') }} @endif
@@ -233,7 +233,7 @@ class extends Component {
@if($recipe['author_bio']) -

{{ $recipe['author_bio'] }}

+ {{ $recipe['author_bio'] }} @endif
@@ -269,7 +269,7 @@ class extends Component {
-
+
@endforeach
@endif @@ -293,30 +293,30 @@ class extends Component { {{ $previewData['name'] }} icon -

No preview image available

+ No preview image available
@else
-

No preview available

+ No preview available
@endif @if($previewData['author_bio']) -
-

Description

-

{{ $previewData['author_bio'] }}

-
+ + Description + {{ $previewData['author_bio'] }} + @endif @if(data_get($previewData, 'stats.installs')) -
-

Statistics

-

+ + Statistics + Installs: {{ data_get($previewData, 'stats.installs') }} · Forks: {{ data_get($previewData, 'stats.forks') }} -

-
+ + @endif
From f3538048d4071957deb0761ac84173f9cb79f4bc Mon Sep 17 00:00:00 2001 From: andrzejskowron Date: Sun, 30 Nov 2025 08:08:06 +0100 Subject: [PATCH 3/4] use flux design --- .../views/livewire/catalog/trmnl.blade.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/resources/views/livewire/catalog/trmnl.blade.php b/resources/views/livewire/catalog/trmnl.blade.php index 0460337..96a92c0 100644 --- a/resources/views/livewire/catalog/trmnl.blade.php +++ b/resources/views/livewire/catalog/trmnl.blade.php @@ -204,7 +204,7 @@ class extends Component { @else
@foreach($recipes as $recipe) - +
@php($thumb = $recipe['icon_url'] ?? $recipe['screenshot_url']) @if($thumb) @@ -220,7 +220,7 @@ class extends Component {
{{ $recipe['name'] }} @if(data_get($recipe, 'stats.installs')) - Installs: {{ data_get($recipe, 'stats.installs') }} · Forks: {{ data_get($recipe, 'stats.forks') }} + Installs: {{ data_get($recipe, 'stats.installs') }} · Forks: {{ data_get($recipe, 'stats.forks') }} @endif
@@ -269,7 +269,7 @@ class extends Component {
-
+
@endforeach
@endif @@ -293,30 +293,30 @@ class extends Component { {{ $previewData['name'] }} icon - No preview image available + No preview image available @else
- No preview available + No preview available
@endif @if($previewData['author_bio']) - +
Description {{ $previewData['author_bio'] }} - +
@endif @if(data_get($previewData, 'stats.installs')) - +
Statistics Installs: {{ data_get($previewData, 'stats.installs') }} · Forks: {{ data_get($previewData, 'stats.forks') }} - +
@endif
From be2bb637c9a4d728206df11d1eb78924d4c8da95 Mon Sep 17 00:00:00 2001 From: andrzejskowron Date: Sun, 30 Nov 2025 08:46:51 +0100 Subject: [PATCH 4/4] styling in line with project standards --- .../views/livewire/catalog/trmnl.blade.php | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/resources/views/livewire/catalog/trmnl.blade.php b/resources/views/livewire/catalog/trmnl.blade.php index 96a92c0..e32ae58 100644 --- a/resources/views/livewire/catalog/trmnl.blade.php +++ b/resources/views/livewire/catalog/trmnl.blade.php @@ -204,8 +204,9 @@ class extends Component { @else
@foreach($recipes as $recipe) -
-
+
+
+
@php($thumb = $recipe['icon_url'] ?? $recipe['screenshot_url']) @if($thumb) {{ $recipe['name'] }} @@ -269,6 +270,7 @@ class extends Component {
+
@endforeach
@@ -303,19 +305,23 @@ class extends Component { @endif @if($previewData['author_bio']) -
- Description - {{ $previewData['author_bio'] }} +
+
+ Description + {{ $previewData['author_bio'] }} +
@endif @if(data_get($previewData, 'stats.installs')) -
- Statistics - - Installs: {{ data_get($previewData, 'stats.installs') }} · - Forks: {{ data_get($previewData, 'stats.forks') }} - +
+
+ Statistics + + Installs: {{ data_get($previewData, 'stats.installs') }} · + Forks: {{ data_get($previewData, 'stats.forks') }} + +
@endif