From f278041bc0353fb33b3b602cfef49af3a08122ab Mon Sep 17 00:00:00 2001 From: MartinOscar <40749467+rmartinoscar@users.noreply.github.com> Date: Thu, 11 Dec 2025 12:48:29 +0000 Subject: [PATCH] EditServer select_startup refactor (#1983) --- .../Resources/Servers/Pages/EditServer.php | 34 ++++--------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/app/Filament/Admin/Resources/Servers/Pages/EditServer.php b/app/Filament/Admin/Resources/Servers/Pages/EditServer.php index 2c1acb642..5cf7cece1 100644 --- a/app/Filament/Admin/Resources/Servers/Pages/EditServer.php +++ b/app/Filament/Admin/Resources/Servers/Pages/EditServer.php @@ -798,37 +798,17 @@ class EditServer extends EditRecord ->label(trans('admin/server.startup_cmd')) ->required() ->live() - ->afterStateUpdated(function (Set $set, $state) { - $set('startup', $state); - $set('previewing', false); - }) - ->options(function ($state, Get $get, Set $set) { + ->options(function (Get $get) { $egg = Egg::find($get('egg_id')); - $startups = $egg->startup_commands ?? []; - $currentStartup = $get('startup'); - if (!$currentStartup && $startups) { - $currentStartup = collect($startups)->first(); - $set('startup', $currentStartup); - $set('select_startup', $currentStartup); - } - - return array_flip($startups) + ['custom' => 'Custom Startup']; + return array_flip($egg->startup_commands ?? []) + ['custom' => 'Custom Startup']; }) - ->formatStateUsing(function (Server $server) { - $startups = $server->egg->startup_commands; - - $currentStartup = $server->startup; - $matchingStartup = collect($startups) - ->filter(fn ($value, $key) => $value === $currentStartup) - ->keys() - ->first(); - - if (!$matchingStartup) { - return 'custom'; + ->formatStateUsing(fn (Server $server) => in_array($server->startup, $server->egg->startup_commands) ? $server->startup : 'custom') + ->afterStateUpdated(function (Set $set, string $state) { + if ($state !== 'custom') { + $set('startup', $state); } - - return $matchingStartup; + $set('previewing', false); }) ->selectablePlaceholder(false) ->columnSpanFull()