GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: /var/www/html/app/Livewire/Pages/Services.php
<?php

namespace App\Livewire\Pages;

use Livewire\Component;
use App\Services\ApiEndpoints;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Cache;

class Services extends Component
{
    public $gigs = [];
    public $page = 1; // Tracks the current page
    public $canLoadMore = true; // Tracks if more gigs are available


  
    public function mount()
    {
        $this->loadGigs();
        $this->loadCats();
    }

    public $cats;

    public function loadCats()
    {
        $this->cats = Cache::remember('browse_category', now()->addMonth(), function () {
            return Http::get(ApiEndpoints::getCategory())->json()['data'];
        });
    }
    public function loadGigs()
    {
        // Fetch gigs from the API
        $response = Http::post(ApiEndpoints::getNearbyGig(), [
            'page' => $this->page,
            'per_page' => 20,
        ])->json();

        $data = $response['gig'] ?? [];
        $this->gigs = array_merge($this->gigs, $data);

        // Check if more gigs are available
        $this->canLoadMore = $response['current_page'] < $response['total_pages'];
        $this->page++; // Increment page for the next request
    }
    
    public function render()
    {
        return view('livewire.pages.services');
    }
}