PaystackTransactionsTileComponent   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 18
c 1
b 0
f 0
dl 0
loc 43
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A paginationView() 0 3 1
A getPaginator() 0 3 1
A mount() 0 6 1
A render() 0 9 1
1
<?php
2
3
namespace Digikraaft\PaystackTransactionsTile;
4
5
use Illuminate\Pagination\LengthAwarePaginator;
6
use Illuminate\Support\Collection;
7
use Livewire\Component;
8
use Livewire\WithPagination;
9
10
class PaystackTransactionsTileComponent extends Component
11
{
12
    use WithPagination;
0 ignored issues
show
Bug introduced by
The trait Livewire\WithPagination requires the property $paginationTheme which is not provided by Digikraaft\PaystackTrans...ansactionsTileComponent.
Loading history...
13
14
    /** @var string */
15
    public string $position;
16
17
    /** @var string|null */
18
    public ?string $title;
19
20
    public $perPage;
21
22
    /** @var int|null */
23
    public ?int $refreshInSeconds;
24
25
    public function mount(string $position, $perPage = 5, ?string $title = null, int $refreshInSeconds = null)
26
    {
27
        $this->position = $position;
28
        $this->perPage = $perPage;
29
        $this->title = $title;
30
        $this->refreshInSeconds = $refreshInSeconds;
31
    }
32
33
    public function render()
34
    {
35
        $transactions = collect(PaystackTransactionsStore::make()->getData());
36
        $paginator = $this->getPaginator($transactions);
37
38
        return view('dashboard-paystack-transactions-tile::tile', [
0 ignored issues
show
Bug introduced by
The function view was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

38
        return /** @scrutinizer ignore-call */ view('dashboard-paystack-transactions-tile::tile', [
Loading history...
39
            'transactions' => $transactions->skip(($paginator->firstItem() ?? 1) - 1)->take($paginator->perPage()),
40
            'paginator' => $paginator,
41
            'refreshIntervalInSeconds' => $this->refreshInSeconds ?? config('dashboard.tiles.paystack.transactions.refresh_interval_in_seconds') ?? 1800,
0 ignored issues
show
Bug introduced by
The function config was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

41
            'refreshIntervalInSeconds' => $this->refreshInSeconds ?? /** @scrutinizer ignore-call */ config('dashboard.tiles.paystack.transactions.refresh_interval_in_seconds') ?? 1800,
Loading history...
42
        ]);
43
    }
44
45
    public function getPaginator(Collection $transactions): LengthAwarePaginator
46
    {
47
        return new LengthAwarePaginator($transactions, $transactions->count(), $this->perPage, $this->page);
48
    }
49
50
    public function paginationView()
51
    {
52
        return 'dashboard-paystack-transactions-tile::pagination';
53
    }
54
}
55