class TokensRelationManager extends RelationManager
{
protected static string $relationship = 'tokens';
#[Locked]
public ?string $plainTextToken = null;
public function form(Form $form): Form
{
return $form
->schema([
TextInput::make('name')
->required()
->maxLength(255),
TextInput::make('abilities')
->required(),
TextInput::make('plainTextToken')
->readOnly()
->autocomplete(false)
->label('Token')
->columnSpanFull()
->visible(fn () => $this->plainTextToken !== null)
->formatStateUsing(fn () => $this->plainTextToken)
->live(),
]);
}
....
public function table(Table $table): Table
{
return $table
...
->headerActions([
CreateAction::make('createToken')
->action(function (CreateAction $action, RelationManager $livewire, array $data) {
$device = $livewire->ownerRecord;
$this->plainTextToken = $device->createToken($data['name'], explode(',', $data['abilities']))->plainTextToken;
$action->halt();
})
]);
}
class TokensRelationManager extends RelationManager
{
protected static string $relationship = 'tokens';
#[Locked]
public ?string $plainTextToken = null;
public function form(Form $form): Form
{
return $form
->schema([
TextInput::make('name')
->required()
->maxLength(255),
TextInput::make('abilities')
->required(),
TextInput::make('plainTextToken')
->readOnly()
->autocomplete(false)
->label('Token')
->columnSpanFull()
->visible(fn () => $this->plainTextToken !== null)
->formatStateUsing(fn () => $this->plainTextToken)
->live(),
]);
}
....
public function table(Table $table): Table
{
return $table
...
->headerActions([
CreateAction::make('createToken')
->action(function (CreateAction $action, RelationManager $livewire, array $data) {
$device = $livewire->ownerRecord;
$this->plainTextToken = $device->createToken($data['name'], explode(',', $data['abilities']))->plainTextToken;
$action->halt();
})
]);
}