diff --git a/app/Livewire/Member/Membership.php b/app/Livewire/Member/Membership.php
index 034e9fb..7a9721f 100644
--- a/app/Livewire/Member/Membership.php
+++ b/app/Livewire/Member/Membership.php
@@ -15,6 +15,8 @@
#[Layout('components.layouts.member')]
class Membership extends Component
{
+ public ?MembershipModel $membership = null;
+
public array $stats = [];
public string $nextTierName = '';
@@ -31,7 +33,11 @@ class Membership extends Component
public function mount()
{
- $membership = MembershipModel::with(['tier', 'tier.rewards'])->where('user_id', auth()->id())->first();
+ $this->membership = MembershipModel::with(['tier', 'tier.rewards'])->where('user_id', auth()->id())->first();
+
+ if (! $this->membership) {
+ return;
+ }
$monthlyTierAddition = PointRecord::where('user_id', auth()->id())
->where('type', PointRecordType::TIER)
@@ -40,42 +46,42 @@ public function mount()
->whereMonth('created_at', now()->month)
->sum('change');
- $nextTier = Tier::where('min_points', '>', $membership->tier_points)
+ $nextTier = Tier::where('min_points', '>', $this->membership->tier_points)
->orderBy('min_points', 'asc')
->first();
$this->nextTierName = $nextTier ? $nextTier->name : 'Maksimal';
- $this->currentPoints = $membership->tier_points;
+ $this->currentPoints = $this->membership->tier_points;
$this->nextTierPoints = $nextTier ? $nextTier->min_points : 'Maksimal';
- $this->progress = ($membership->tier_points / $nextTier->min_points) * 100;
+ $this->progress = ($this->membership->tier_points / $nextTier->min_points) * 100;
$this->stats = [
[
'title' => 'Poin Tier',
- 'value' => currency($membership->tier_points),
+ 'value' => currency($this->membership->tier_points),
'description' => '+'.currency($monthlyTierAddition).' bulan ini',
],
[
'title' => 'Tier Sekarang',
- 'value' => $membership->tier->name,
- 'description' => 'Terdaftar sejak '.formatDate($membership->created_at),
+ 'value' => $this->membership->tier->name,
+ 'description' => 'Terdaftar sejak '.formatDate($this->membership->created_at),
],
[
'title' => 'Tier Selanjutnya',
'value' => $nextTier ? $nextTier->name : 'Maksimal',
- 'description' => $nextTier ? ($nextTier->min_points - $membership->tier_points).' poin lagi' : 'Anda sudah berada di tier tertinggi',
+ 'description' => $nextTier ? ($nextTier->min_points - $this->membership->tier_points).' poin lagi' : 'Anda sudah berada di tier tertinggi',
],
[
'title' => 'Poin Hadiah',
- 'value' => currency($membership->reward_points),
+ 'value' => currency($this->membership->reward_points),
'description' => 'Nikmati hadiah sekarang',
],
];
- $this->rewards = TierReward::where('tier_id', $membership->tier_id)
+ $this->rewards = TierReward::where('tier_id', $this->membership->tier_id)
->latest()
->get()
->map(fn ($reward) => [
diff --git a/resources/views/livewire/member/memberships.blade.php b/resources/views/livewire/member/memberships.blade.php
index 7cad2cc..82d1ee4 100644
--- a/resources/views/livewire/member/memberships.blade.php
+++ b/resources/views/livewire/member/memberships.blade.php
@@ -2,90 +2,104 @@
Seharga {{ $reward['value'] }}
- +Seharga {{ $reward['value'] }}
+ +