
Hier ist ein vereinfachtes Beispiel meiner aktuellen Implementierung. Die Komponente (YoutubeVideoUploader.php):
class YoutubeVideoUploader extends Component
{
public function uploadVideo()
{
for($i = 0; $i < 10; $i++) {
$this->videoUploadProgress = $i;
$this->dispatch('uploadProgress', ['progress' => $i]);
Log::info("uploadProgress: " . $i . "%"); // this works well
sleep(1);
}
}
}
Blade-Vorlage (youtube-video-uploader.blade.php):
document.addEventListener('livewire:init', () => {
Livewire.on('uploadProgress', event => {
const progress = event[0]?.progress ?? 0;
// init hours, minutes, seconds..
console.log(`[${hours}:${minutes}:${seconds}] uploadProgress event:`, progress);
});
});