Add the card to dashboard
<livewire:pulse-cards.inspire-card cols="3" />
| <?php | |
| declare(strict_types=1); | |
| namespace App\Livewire\PulseCards; | |
| use Illuminate\Contracts\View\View; | |
| use Illuminate\Foundation\Inspiring; | |
| use Illuminate\Support\Facades\Cache; | |
| use Illuminate\Support\Facades\View as ViewFacade; | |
| use Laravel\Pulse\Livewire\Card; | |
| use Livewire\Attributes\Lazy; | |
| use Throwable; | |
| #[Lazy] | |
| class InspireCard extends Card | |
| { | |
| public const CACHE_KEY = 'inspire_card_result'; | |
| public function render(): View | |
| { | |
| try { | |
| $message = Cache::remember(self::CACHE_KEY, 300, static fn () => Inspiring::quote()); | |
| } catch (Throwable $th) { | |
| Cache::forget(self::CACHE_KEY); | |
| $message = $th->getMessage(); | |
| } | |
| return ViewFacade::make('livewire.pulse-cards.inspire-card', [ | |
| 'message' => $message, | |
| ]); | |
| } | |
| } |
| <x-pulse::card :cols="$cols" :rows="$rows" :class="$class"> | |
| <x-pulse::card-header | |
| name="Inspire" | |
| title="AAA" | |
| > | |
| <x-slot:icon> | |
| <x-pulse::icons.moon /> | |
| </x-slot:icon> | |
| </x-pulse::card-header> | |
| <x-pulse::scroll :expand="$expand" wire:poll.300s> | |
| <div class="h-full flex flex-col items-center justify-center p-4"> | |
| <blockquote class="italic text-md text-gray-400 dark:text-gray-600"> | |
| {!! $message !!} | |
| </blockquote> | |
| </div> | |
| </x-pulse::scroll> | |
| </x-pulse::card> |