diff --git a/app/Filament/Resources/ServerResource/Pages/CreateServer.php b/app/Filament/Resources/ServerResource/Pages/CreateServer.php index 1ca378c19..2596179c4 100644 --- a/app/Filament/Resources/ServerResource/Pages/CreateServer.php +++ b/app/Filament/Resources/ServerResource/Pages/CreateServer.php @@ -252,8 +252,8 @@ class CreateServer extends CreateRecord ->searchable() ->preload() ->live() - ->afterStateUpdated(function ($state, Forms\Set $set) { - $egg = Egg::find($state); + ->afterStateUpdated(function ($state, Forms\Set $set, Forms\Get $get, $old) { + $egg = Egg::query()->find($state); $set('startup', $egg->startup); $variables = $egg->variables ?? []; @@ -271,6 +271,11 @@ class CreateServer extends CreateRecord } $set('environment', $variables); + + $previousEgg = Egg::query()->find($old); + if (!$get('name') || $previousEgg?->getKebabName() === $get('name')) { + $set('name', $egg->getKebabName()); + } }) ->required(), diff --git a/app/Models/Egg.php b/app/Models/Egg.php index 211945c19..66f377fcb 100644 --- a/app/Models/Egg.php +++ b/app/Models/Egg.php @@ -307,4 +307,9 @@ class Egg extends Model { return $this->belongsTo(self::class, 'config_from'); } + + public function getKebabName(): string + { + return str($this->name)->kebab()->lower()->trim()->split('/[^\w\-]/')->join(''); + } }