*/ protected $listeners = ['$refresh']; /** * @return Builder */ protected function getTableQuery(): Builder { return SshKey::query()->where('user_id', auth()->id()); } protected function getTableColumns(): array { return [ TextColumn::make('name') ->sortable() ->searchable(), TextColumn::make('public_key') ->tooltip('Copy') ->limit(20) ->copyable(), TextColumn::make('created_at') ->sortable(), ]; } public function table(Table $table): Table { /** @var \App\Models\User $user */ $user = auth()->user(); return $table ->heading(null) ->query($this->getTableQuery()) ->columns($this->getTableColumns()) ->actions([ DeleteAction::make('delete') ->requiresConfirmation() ->authorize(fn (SshKey $record) => $user->can('delete', $record)) ->action(function (SshKey $record): void { run_action($this, function () use ($record): void { $record->delete(); $this->dispatch('$refresh'); }); }), ]); } }