' . basename($this->path) . '
is too large!')
->body('Max is ' . convert_bytes_to_readable(config('panel.files.max_edit_size')))
->danger()
@@ -142,7 +142,7 @@ class EditFiles extends Page
$this->redirect(ListFiles::getUrl(['path' => dirname($this->path)]));
} catch (FileNotFoundException) {
- AlertBanner::make()
+ AlertBanner::make('file_not_found')
->title('' . basename($this->path) . '
not found!')
->danger()
->closable()
@@ -150,7 +150,7 @@ class EditFiles extends Page
$this->redirect(ListFiles::getUrl(['path' => dirname($this->path)]));
} catch (FileNotEditableException) {
- AlertBanner::make()
+ AlertBanner::make('file_is_directory')
->title('' . basename($this->path) . '
is a directory')
->danger()
->closable()
@@ -184,15 +184,6 @@ class EditFiles extends Page
->info()
->closable()
->send();
-
- try {
- $this->getDaemonFileRepository()->getDirectory('/');
- } catch (ConnectionException) {
- AlertBanner::make('node_connection_error')
- ->title('Could not connect to the node!')
- ->danger()
- ->send();
- }
}
}
diff --git a/app/Filament/Server/Resources/FileResource/Pages/ListFiles.php b/app/Filament/Server/Resources/FileResource/Pages/ListFiles.php
index d2473b235..6dc448188 100644
--- a/app/Filament/Server/Resources/FileResource/Pages/ListFiles.php
+++ b/app/Filament/Server/Resources/FileResource/Pages/ListFiles.php
@@ -430,7 +430,7 @@ class ListFiles extends ListRecords
->property('file', join_paths($path, $data['name']))
->log();
} catch (FileExistsException) {
- AlertBanner::make()
+ AlertBanner::make('file_already_exists')
->title('' . $path . '
already exists!')
->danger()
->closable()
@@ -471,7 +471,7 @@ class ListFiles extends ListRecords
->log();
} catch (FileExistsException) {
$path = join_paths($this->path, $data['name']);
- AlertBanner::make()
+ AlertBanner::make('folder_already_exists')
->title('' . $path . '
already exists!')
->danger()
->closable()
diff --git a/app/Livewire/AlertBanner.php b/app/Livewire/AlertBanner.php
index 773046081..813012945 100644
--- a/app/Livewire/AlertBanner.php
+++ b/app/Livewire/AlertBanner.php
@@ -4,25 +4,32 @@ namespace App\Livewire;
use Closure;
use Filament\Notifications\Concerns;
-use Filament\Support\Concerns\EvaluatesClosures;
-use Illuminate\Support\Str;
-use Livewire\Wireable;
+use Filament\Support\Components\ViewComponent;
+use Illuminate\Contracts\Support\Arrayable;
-final class AlertBanner implements Wireable
+final class AlertBanner extends ViewComponent implements Arrayable
{
use Concerns\HasBody;
use Concerns\HasIcon;
use Concerns\HasId;
use Concerns\HasStatus;
use Concerns\HasTitle;
- use EvaluatesClosures;
protected bool|Closure $closable = false;
- public static function make(?string $id = null): AlertBanner
+ protected string $view = 'livewire.alerts.alert-banner';
+
+ protected string $viewIdentifier = 'alert-banner';
+
+ public function __construct(string $id)
{
- $static = new self();
- $static->id($id ?? Str::orderedUuid());
+ $this->id($id);
+ }
+
+ public static function make(string $id): AlertBanner
+ {
+ $static = new self($id);
+ $static->configure();
return $static;
}
@@ -30,7 +37,7 @@ final class AlertBanner implements Wireable
/**
* @return array{id: string, title: ?string, body: ?string, status: ?string, icon: ?string, closeable: bool}
*/
- public function toLivewire(): array
+ public function toArray(): array
{
return [
'id' => $this->getId(),
@@ -42,15 +49,18 @@ final class AlertBanner implements Wireable
];
}
- public static function fromLivewire(mixed $value): AlertBanner
+ /**
+ * @param array{id: string, title: ?string, body: ?string, status: ?string, icon: ?string, closeable: bool} $data
+ */
+ public static function fromArray(array $data): AlertBanner
{
- $static = AlertBanner::make($value['id']);
+ $static = AlertBanner::make($data['id']);
- $static->title($value['title']);
- $static->body($value['body']);
- $static->status($value['status']);
- $static->icon($value['icon']);
- $static->closable($value['closeable']);
+ $static->title($data['title']);
+ $static->body($data['body']);
+ $static->status($data['status']);
+ $static->icon($data['icon']);
+ $static->closable($data['closeable']);
return $static;
}
@@ -69,7 +79,7 @@ final class AlertBanner implements Wireable
public function send(): AlertBanner
{
- session()->push('alert-banners', $this->toLivewire());
+ session()->push('alert-banners', $this->toArray());
return $this;
}
diff --git a/app/Livewire/AlertBannerContainer.php b/app/Livewire/AlertBannerContainer.php
index d5d7bf60c..66dba002d 100644
--- a/app/Livewire/AlertBannerContainer.php
+++ b/app/Livewire/AlertBannerContainer.php
@@ -2,18 +2,18 @@
namespace App\Livewire;
+use Filament\Notifications\Collection;
use Illuminate\Contracts\View\View;
use Livewire\Attributes\On;
use Livewire\Component;
class AlertBannerContainer extends Component
{
- /** @var array