benedict.regore
benedict.regore
FFilament
Created by benedict.regore on 3/24/2023 in #❓┊help
Create Action that opens a modal in a custom Livewire Component
okay thanks
14 replies
FFilament
Created by benedict.regore on 3/24/2023 in #❓┊help
Create Action that opens a modal in a custom Livewire Component
yep i wrap it, heres my custom page
<x-filament::page>
{{-- the folders --}}
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4 ">
@foreach($this->getRootFolders() as $folder)
<livewire:filament.livewire.asset-management.folder wire:key='{{$folder->id}}' :folder="$folder" />
@endforeach
</div>
</x-filament::page>
<x-filament::page>
{{-- the folders --}}
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4 ">
@foreach($this->getRootFolders() as $folder)
<livewire:filament.livewire.asset-management.folder wire:key='{{$folder->id}}' :folder="$folder" />
@endforeach
</div>
</x-filament::page>
14 replies
FFilament
Created by benedict.regore on 3/24/2023 in #❓┊help
Create Action that opens a modal in a custom Livewire Component
livewire component
14 replies
FFilament
Created by benedict.regore on 3/24/2023 in #❓┊help
Create Action that opens a modal in a custom Livewire Component
yup but ive got this error Typed property Filament\Pages\Actions\Action::$livewire must not be accessed before initialization class Folder extends Component { public $folder; public function mount(FolderModel $folder) { $this->folder = $folder; } public function render() { return view('filament.components.livewire.asset-management.folder'); } public function getActions(): array { return [ Actions\ActionGroup::make([ Actions\Action::make('delete') ->action('deleteFolder') ->requiresConfirmation() ])->color('secondary'), ]; } public function deleteFolder(){ dd("DELETED"); } }
14 replies
FFilament
Created by benedict.regore on 3/24/2023 in #❓┊help
Create Action that opens a modal in a custom Livewire Component
the modal is not opening
14 replies
FFilament
Created by benedict.regore on 3/24/2023 in #❓┊help
Create Action that opens a modal in a custom Livewire Component
here is my livewire component named Folder Class
<?php

namespace App\Filament\Livewire\AssetManagement;

use Domain\AssetManagement\Models\Folder as FolderModel;
use Livewire\Component;
use Filament\Pages\Actions;

class Folder extends Component
{
public $folder;

public function mount(FolderModel $folder)
{
$this->folder = $folder;
}

public function render()
{
return view('filament.components.livewire.asset-management.folder');
}

public function getActions(): array
{
return [
Actions\ActionGroup::make([
Actions\Action::make('delete')
// ->label('Delete Folder')
// ->modalHeading('Delete Folder')
// ->modalWidth("md")
// ->requiresConfirmation()
// ->action('deleteFolder)
])->color('secondary'),
];
}

public function deleteFolder(){
dd("DELETED");
}


}
<?php

namespace App\Filament\Livewire\AssetManagement;

use Domain\AssetManagement\Models\Folder as FolderModel;
use Livewire\Component;
use Filament\Pages\Actions;

class Folder extends Component
{
public $folder;

public function mount(FolderModel $folder)
{
$this->folder = $folder;
}

public function render()
{
return view('filament.components.livewire.asset-management.folder');
}

public function getActions(): array
{
return [
Actions\ActionGroup::make([
Actions\Action::make('delete')
// ->label('Delete Folder')
// ->modalHeading('Delete Folder')
// ->modalWidth("md")
// ->requiresConfirmation()
// ->action('deleteFolder)
])->color('secondary'),
];
}

public function deleteFolder(){
dd("DELETED");
}


}
view
<x-filament::card>
<div class="flex items-center justify-between space-x-2 rtl:space-x-reverse">
<x-dynamic-component class="h-12" component="heroicon-s-folder" />
<div class="grow">
<span>
{{$folder->name}}
</span>
</div>

<x-filament::pages.actions :actions="$this->getActions()" class="shrink-0" />
</div>
</x-filament::card>
<x-filament::card>
<div class="flex items-center justify-between space-x-2 rtl:space-x-reverse">
<x-dynamic-component class="h-12" component="heroicon-s-folder" />
<div class="grow">
<span>
{{$folder->name}}
</span>
</div>

<x-filament::pages.actions :actions="$this->getActions()" class="shrink-0" />
</div>
</x-filament::card>
14 replies