Oii Jonatas, tudo bem?
Vou te dar uma ideia do que você pode fazer, tudo bem?
Para visualizar arquivos de imagem e PDF, você precisará de uma maneira de carregar esses arquivos no frontend de maneira eficiente. No Livewire, você pode fazer isso utilizando a propriedade de file uploads combinada com a visualização em tempo real.
Um exemplo básico de como você pode começar:
- Upload de Arquivos: Primeiro, você precisa criar um componente Livewire para o upload e a visualização dos arquivos.
// Em app/Http/Livewire/FileViewer.php
namespace App\Http\Livewire;
use Livewire\Component;
use Livewire\WithFileUploads;
use Illuminate\Support\Facades\Storage;
class FileViewer extends Component
{
    use WithFileUploads;
    public $file;
    public function render()
    {
        return view('livewire.file-viewer');
    }
    public function save()
    {
        $this->validate([
            'file' => 'required|file|max:10240', // 10MB Max
        ]);
        $path = $this->file->store('public/files');
        $this->emit('fileUploaded', $path);
    }
}
- Visualização de Arquivos: No frontend, você pode exibir o arquivo dependendo do tipo. Para imagens e PDFs, você pode usar elementos HTML adequados.
<!-- Em resources/views/livewire/file-viewer.blade.php -->
<div>
    <input type="file" wire:model="file">
    <button wire:click="save">Upload</button>
    @if ($file)
        @if (in_array($file->extension(), ['png', 'jpg', 'jpeg', 'gif']))
            <img src="{{ $file->temporaryUrl() }}" alt="Preview Image">
        @elseif ($file->extension() === 'pdf')
            <iframe src="{{ $file->temporaryUrl() }}" style="width:100%;height:600px;"></iframe>
        @endif
    @endif
</div>
- Integração com o Banco de Dados: Lembre de salvar o caminho do arquivo no banco de dados após o upload, para que você possa recuperá-lo posteriormente para visualização.
Este é apenas um exemplo básico para começar. Você pode precisar ajustar o código para atender às especificidades do seu projeto, como manipulação de diferentes tipos de arquivos, segurança dos arquivos armazenados, entre outros.
Um abraço e bons estudos.