searchTerm = $searchTerm; $this->path = $path ?? '/'; } public function getBreadcrumbs(): array { $resource = static::getResource(); return [ $resource::getUrl() => $resource::getBreadcrumb(), self::getUrl(['searchTerm' => $this->searchTerm]) => 'Search "' . $this->searchTerm . '"', ]; } public function table(Table $table): Table { /** @var Server $server */ $server = Filament::getTenant(); return $table ->paginated(false) ->query(fn () => File::get($server, $this->path, $this->searchTerm)->orderByDesc('is_directory')->orderBy('name')) ->columns([ TextColumn::make('name') ->searchable() ->icon(fn (File $file) => $file->getIcon()), BytesColumn::make('size'), DateTimeColumn::make('modified_at') ->since() ->sortable(), ]) ->recordUrl(function (File $file) { if ($file->is_directory) { return ListFiles::getUrl(['path' => join_paths($this->path, $file->name)]); } return $file->canEdit() ? EditFiles::getUrl(['path' => join_paths($this->path, $file->name)]) : null; }); } }