diff --git a/resources/views/filament/infolists/entries/settings-catalog-grouped.blade.php b/resources/views/filament/infolists/entries/settings-catalog-grouped.blade.php new file mode 100644 index 0000000..1be2232 --- /dev/null +++ b/resources/views/filament/infolists/entries/settings-catalog-grouped.blade.php @@ -0,0 +1,160 @@ +@php + use Illuminate\Support\Str; + use function Filament\Support\evaluate; + + // Normalize incoming state from Filament ViewEntry. Accept multiple shapes: + // - $groups passed directly + // - $state as array with ['groups' => [...]] + // - $state as JSON string + // - $state as a Closure + $groups = []; + $searchQuery = $searchQuery ?? ''; + + // If $state is a closure, resolve it first. + $state = evaluate($state); + + if (isset($groups) && is_array($groups) && count($groups) > 0) { + // $groups already provided by caller + // leave as-is + } elseif (isset($state)) { + if (is_string($state) && Str::startsWith(trim($state), '{')) { + $decoded = json_decode($state, true); + if (is_array($decoded)) { + $groups = $decoded['groups'] ?? $decoded; + } + } elseif (is_array($state)) { + $groups = $state['groups'] ?? $state; + } elseif (is_object($state)) { + $arr = (array) $state; + $groups = $arr['groups'] ?? $arr; + } + } + + // Ensure groups is an array + if (! is_array($groups)) { + $groups = []; + } +@endphp + +
No settings available
++ {{ Str::limit($setting['help_text'], 200) }} +
+ @endif +No settings match your search
+ +