fix: remove blocking instant_remote_process and hide button during download
The first click did nothing because instant_remote_process() blocked the Livewire response, preventing UI state updates. The button also remained visible during download, allowing multiple clicks. - Replace blocking instant_remote_process() with async command in queue - Add container cleanup to command queue with error suppression - Hide "Download & Prepare" button when s3DownloadInProgress is true - Button now properly disappears when clicked, preventing double-clicks - No more blocking operations in downloadFromS3() method 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
91d752f906
commit
d37378ec02
2 changed files with 3 additions and 6 deletions
|
|
@ -394,12 +394,9 @@ public function downloadFromS3()
|
|||
// Create download directory on server
|
||||
$commands[] = "mkdir -p {$downloadDir}";
|
||||
|
||||
// Check if container exists and remove it
|
||||
// Check if container exists and remove it (done in the command queue to avoid blocking)
|
||||
$containerName = "s3-restore-{$this->resource->uuid}";
|
||||
$containerExists = instant_remote_process(["docker ps -a -q -f name={$containerName}"], $this->server, false);
|
||||
if (filled($containerExists)) {
|
||||
instant_remote_process(["docker rm -f {$containerName}"], $this->server, false);
|
||||
}
|
||||
$commands[] = "docker rm -f {$containerName} 2>/dev/null || true";
|
||||
|
||||
// Run MinIO client container to download file
|
||||
$commands[] = "docker run -d --name {$containerName} --rm -v {$downloadDir}:{$downloadDir} {$fullImageName} sleep 30";
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@
|
|||
</x-forms.button>
|
||||
</div>
|
||||
|
||||
<div x-show="s3FileSize && !s3DownloadedFile" class="pt-2">
|
||||
<div x-show="s3FileSize && !s3DownloadedFile && !s3DownloadInProgress" class="pt-2">
|
||||
<div class="text-sm">File found in S3 ({{ formatBytes($s3FileSize ?? 0) }})</div>
|
||||
<div class="flex gap-2 pt-2">
|
||||
<x-forms.button class="w-full" wire:click='downloadFromS3'>
|
||||
|
|
|
|||
Loading…
Reference in a new issue