Files
zemailnator/app/Livewire/EmailInbox.php

63 lines
1.3 KiB
PHP

<?php
namespace App\Livewire;
use App\Models\ZEmail;
use Livewire\Component;
use Livewire\WithPagination;
class EmailInbox extends Component
{
use WithPagination;
public $currentEmail;
public $messages = [];
public $selectedMessage = null;
public $searchTerm = '';
public $refreshInterval = 30; // seconds
public function mount()
{
$this->currentEmail = ZEmail::getEmail();
$this->loadMessages();
}
public function loadMessages()
{
if ($this->currentEmail) {
$this->messages = ZEmail::getMessages($this->currentEmail);
}
}
public function selectMessage($messageId)
{
$this->selectedMessage = $messageId;
}
public function deleteMessage($messageId)
{
ZEmail::deleteMessage($messageId);
$this->loadMessages();
$this->selectedMessage = null;
}
public function generateNewEmail()
{
$this->currentEmail = ZEmail::generateRandomEmail();
$this->loadMessages();
}
public function getPollingInterval()
{
return $this->refreshInterval * 1000; // Convert to milliseconds
}
public function render()
{
return view('livewire.email-inbox', [
'messages' => $this->messages,
'currentEmail' => $this->currentEmail
]);
}
}