Use public member

This commit is contained in:
Lance Pioch 2024-06-02 01:25:48 -04:00
parent b220c582cc
commit 9c81c0ce18

View File

@ -22,6 +22,7 @@ class CreateServer extends CreateRecord
{ {
protected static string $resource = ServerResource::class; protected static string $resource = ServerResource::class;
protected static bool $canCreateAnother = false; protected static bool $canCreateAnother = false;
public ?Egg $egg = null;
public function form(Form $form): Form public function form(Form $form): Form
{ {
@ -47,11 +48,11 @@ class CreateServer extends CreateRecord
->preload() ->preload()
->live() ->live()
->afterStateUpdated(function ($state, Forms\Set $set, Forms\Get $get, $old) { ->afterStateUpdated(function ($state, Forms\Set $set, Forms\Get $get, $old) {
$egg = Egg::query()->find($state); $this->egg = Egg::query()->find($state);
$set('startup', $egg->startup); $set('startup', $this->egg->startup);
$set('image', ''); $set('image', '');
$variables = $egg->variables ?? []; $variables = $this->egg->variables ?? [];
$serverVariables = collect(); $serverVariables = collect();
foreach ($variables as $variable) { foreach ($variables as $variable) {
$serverVariables->add($variable->toArray()); $serverVariables->add($variable->toArray());
@ -69,7 +70,7 @@ class CreateServer extends CreateRecord
$previousEgg = Egg::query()->find($old); $previousEgg = Egg::query()->find($old);
if (!$get('name') || $previousEgg?->getKebabName() === $get('name')) { if (!$get('name') || $previousEgg?->getKebabName() === $get('name')) {
$set('name', $egg->getKebabName()); $set('name', $this->egg->getKebabName());
} }
}) })
->required(), ->required(),
@ -81,8 +82,7 @@ class CreateServer extends CreateRecord
->suffixAction(Forms\Components\Actions\Action::make('random') ->suffixAction(Forms\Components\Actions\Action::make('random')
->icon('tabler-dice-' . random_int(1, 6)) ->icon('tabler-dice-' . random_int(1, 6))
->action(function (Forms\Set $set, Forms\Get $get) { ->action(function (Forms\Set $set, Forms\Get $get) {
$egg = Egg::find($get('egg_id')); $prefix = $this->egg ? str($this->egg->name)->lower()->kebab() . '-' : '';
$prefix = $egg ? str($egg->name)->lower()->kebab() . '-' : '';
$word = (new RandomWordService())->word(); $word = (new RandomWordService())->word();
@ -177,7 +177,7 @@ class CreateServer extends CreateRecord
->default(null) ->default(null)
->datalist([ ->datalist([
$get('name'), $get('name'),
Egg::find($get('egg_id'))?->name, $this->egg?->name,
]) ])
->helperText('Optional display name to help you remember what these are.') ->helperText('Optional display name to help you remember what these are.')
->required(false), ->required(false),
@ -317,11 +317,11 @@ class CreateServer extends CreateRecord
])) ]))
->schema([ ->schema([
Forms\Components\Placeholder::make('Select an egg first to show its variables!') Forms\Components\Placeholder::make('Select an egg first to show its variables!')
->hidden(fn (Forms\Get $get) => $get('egg_id')), ->hidden(fn (Forms\Get $get) => $this->egg),
Forms\Components\Placeholder::make('The selected egg has no variables!') Forms\Components\Placeholder::make('The selected egg has no variables!')
->hidden(fn (Forms\Get $get) => !$get('egg_id') || ->hidden(fn (Forms\Get $get) => !$this->egg ||
Egg::query()->find($get('egg_id'))?->variables()?->count() $this->egg->variables()?->count()
), ),
Forms\Components\Repeater::make('server_variables') Forms\Components\Repeater::make('server_variables')
@ -625,8 +625,7 @@ class CreateServer extends CreateRecord
->label('Image Name') ->label('Image Name')
->afterStateUpdated(fn (Forms\Set $set, $state) => $set('image', $state)) ->afterStateUpdated(fn (Forms\Set $set, $state) => $set('image', $state))
->options(function ($state, Forms\Get $get, Forms\Set $set) { ->options(function ($state, Forms\Get $get, Forms\Set $set) {
$egg = Egg::query()->find($get('egg_id')); $images = $this->egg->docker_images ?? [];
$images = $egg->docker_images ?? [];
$currentImage = $get('image'); $currentImage = $get('image');
if (!$currentImage && $images) { if (!$currentImage && $images) {
@ -644,8 +643,7 @@ class CreateServer extends CreateRecord
->label('Image') ->label('Image')
->debounce(500) ->debounce(500)
->afterStateUpdated(function ($state, Forms\Get $get, Forms\Set $set) { ->afterStateUpdated(function ($state, Forms\Get $get, Forms\Set $set) {
$egg = Egg::query()->find($get('egg_id')); $images = $this->egg->docker_images ?? [];
$images = $egg->docker_images ?? [];
if (in_array($state, $images)) { if (in_array($state, $images)) {
$set('select_image', $state); $set('select_image', $state);