'refreshStatus']; $user = Auth::user(); if (! $user) { return $listeners; } $listeners["echo-private:user.{$user->id},DatabaseStatusChanged"] = 'refreshStatus'; return [ ...$listeners, ...$this->teamChannelListeners(['ServiceChecked' => 'refreshStatus']), ]; } public function mount(Model $resource): void { $this->authorize('view', $resource); $this->resourceId = $resource->id; $this->resourceType = get_class($resource); $this->refreshStatus(); } public function refreshStatus(): void { $resource = $this->resolveStoredResource(); $this->authorize('view', $resource); $resource->refresh(); $this->resourceUuid = $resource->uuid; $this->resourceStatus = $resource->status ?? ''; $this->unsupported = $this->isUnsupportedResource($resource); } public function render(): View { return view('livewire.project.database.import', [ 'resource' => $this->resolveStoredResource(), ]); } private function resolveStoredResource(): Model { return $this->resourceType::find($this->resourceId) ?? abort(404); } private function isUnsupportedResource(object $resource): bool { if ( $resource instanceof StandaloneRedis || $resource instanceof StandaloneKeydb || $resource instanceof StandaloneDragonfly || $resource instanceof StandaloneClickhouse ) { return true; } if ($resource instanceof ServiceDatabase) { $dbType = $resource->databaseType(); return str_contains($dbType, 'redis') || str_contains($dbType, 'keydb') || str_contains($dbType, 'dragonfly') || str_contains($dbType, 'clickhouse'); } return false; } }