A form component for Filament to integrate actions into forms.
You can install the package via composer:
composer require awcodes/drop-in-action
Optionally, you can publish the views using
php artisan vendor:publish --tag="drop-in-action-views"
use Awcodes\DropInAction\Forms\Components\DropInAction; DropInAction::make('test') ->disableLabel() ->execute(function (Closure $get, Closure $set) { return Action::make('geolocate') ->icon('heroicon-o-search') ->label('Geocode') ->action(function () use ($get, $set) { try { $mapsData = Http::get(config('services.google_maps.url') . '?key=' . config('services.google_maps.key') . '&address=' . $address . '&sensor=true') ->throw() ->json(); } catch (RequestException $e) { Filament::notify('danger', 'Unable to geocode for this address.'); return; } $set('latitude', $mapsData['results'][0]['geometry']['location']['lat'] ?? $get('latitude')); $set('longitude', $mapsData['results'][0]['geometry']['location']['lng'] ?? $get('longitude')); }); }),