From 4f966e3759660ac024e9b93fa0e16f98fe786e01 Mon Sep 17 00:00:00 2001
From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
Date: Wed, 5 Aug 2026 23:31:27 +0200
Subject: [PATCH] fix(ui): normalize service logos and fix template icon
fallbacks
Map svg/ logo paths to public svgs/, fall back when files are missing,
and tighten hardcoded database logo viewBoxes on the new-resource select page.
---
app/Livewire/Project/New/Select.php | 22 +++++++---
.../livewire/project/new/select.blade.php | 40 ++++++++++++++-----
.../ServiceTemplatesLastUpdatedHintTest.php | 23 ++++++++++-
3 files changed, 68 insertions(+), 17 deletions(-)
diff --git a/app/Livewire/Project/New/Select.php b/app/Livewire/Project/New/Select.php
index d05f1c916..05107a105 100644
--- a/app/Livewire/Project/New/Select.php
+++ b/app/Livewire/Project/New/Select.php
@@ -111,8 +111,20 @@ class Select extends Component
$templateLastUpdatedMap = $this->serviceTemplateLastUpdatedMap($services);
$services = collect($services)->map(function ($service, $key) use ($templateLastUpdatedMap) {
- $default_logo = 'images/default.webp';
- $logo = data_get($service, 'logo', $default_logo);
+ $default_logo = 'svgs/default.webp';
+ $logo = data_get($service, 'logo');
+
+ if (is_string($logo) && str_starts_with($logo, 'svg/')) {
+ $normalizedLogo = 'svgs/'.str($logo)->after('svg/');
+ if (file_exists(public_path($normalizedLogo))) {
+ $logo = $normalizedLogo;
+ }
+ }
+
+ if (! is_string($logo) || ! file_exists(public_path($logo))) {
+ $logo = $default_logo;
+ }
+
$local_logo_path = public_path($logo);
$serviceKey = (string) $key;
@@ -244,13 +256,13 @@ class Select extends Component
'id' => 'keydb',
'name' => 'KeyDB',
'description' => 'KeyDB is a database that offers high performance, low latency, and scalability for various data structures and workloads.',
- 'logo' => '
',
+ 'logo' => ' ',
],
[
'id' => 'dragonfly',
'name' => 'Dragonfly',
'description' => 'Dragonfly DB is a drop-in Redis replacement that delivers 25x more throughput and 12x faster snapshotting than Redis.',
- 'logo' => '',
+ 'logo' => '',
],
[
'id' => 'mongodb',
@@ -262,7 +274,7 @@ class Select extends Component
'id' => 'clickhouse',
'name' => 'ClickHouse',
'description' => 'ClickHouse is a column-oriented database that supports real-time analytics, business intelligence, observability, ML and GenAI, and more.',
- 'logo' => '',
+ 'logo' => '',
],
];
diff --git a/resources/views/livewire/project/new/select.blade.php b/resources/views/livewire/project/new/select.blade.php
index af611fca9..1567a52ec 100644
--- a/resources/views/livewire/project/new/select.blade.php
+++ b/resources/views/livewire/project/new/select.blade.php
@@ -20,20 +20,24 @@
-
-