Hide "anonymous" actions in create page

Hello everyone... I added anonymous actions to show modal contains checkbox to generate PDF respective to the selected checkbox.

public static function form(Form $form): Form
{
    return $form
        ->schema([
            TextInput::make('name')->required()->label('Nama'),
            TextInput::make('email')->email()->maxLength(255),
            // anonymous actions - show modal popup contains checkbox to generate PDF respective to the category
            Actions::make([
                Action::make('Print  PDF')
                    ->form([
                        CheckboxList::make('category')
                            ->options([
                                'profail' => 'profail',
                                'sale' => 'sale',
                            ])
                    ])
                    ->action(function (array $data, $state, $record) {
                        // get the checkbox value, user_id to be process in controller
                        $data = array_merge($data,[ 'user_id' => $state['id']]);
                        return redirect()->route('pdf',['data' => $data]);
                    })
                    ->hiddenOn('create')
                ) 

            ]), 
        ]);
}

Currently the Action button "Print PDF" are available both in create & edit page. My question is
  1. How can I hide the action button in create page and only show in edit page?.
  2. ->hiddenOn() it will cause Method Filament\Forms\Components\Actions\Action::hiddenOn does not exist.
  3. ->hidden(function ( $state) { if (!$state) { return false; } }) it will show Typed property Filament\Forms\Components\Actions\Action::$component must not be accessed before initialization
  4. How can I open new tab when the "Print PDF" Action Button is clicked?
Solution
1 - Actions::make([...])->hiddenOn('create')
Was this page helpful?