Files
Ronald Huynen 2547717edb Initial commit
2026-03-23 21:37:59 +01:00

119 lines
3.3 KiB
PHP

<?php
namespace App\Http\Livewire\Profile;
use App\Models\Account;
use App\Models\Tag;
use App\Models\User;
use App\Traits\ActiveStatesTrait;
use App\Traits\LocationTrait;
use App\Traits\ProfileTrait;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
use Livewire\Component;
use Spatie\Activitylog\Models\Activity;
class Show extends Component
{
use LocationTrait;
use ActiveStatesTrait;
use ProfileTrait;
public $profile;
public $type;
public $inactive = false;
public bool $hidden = false;
public bool $inactiveLabel = false;
public string $inactiveSince;
public bool $emailUnverifiedLabel = false;
public bool $isIncomplete = false;
public bool $incompleteLabel = false;
public bool $noExchangesYetLabel = false;
public string $removedSince;
public $showAboutFullText = false;
public $age;
public $location = [];
public $friend;
public $pendingFriend;
public $phone;
public $languagesWithCompetences = [];
public $skills;
public $lastLoginAt;
public $lastExchangeAt;
public $registeredSince;
public $onlineStatus;
public $accountsTotals;
public $socials;
/**
* The mount method is called when the component is mounted.
*
*/
public function mount()
{
$this->type = strtolower(class_basename($this->profile));
// $this->onlineStatus = $this->getOnlineStatus();
$this->location = $this->getLocation($this->profile);
$this->age = $this->getAge($this->profile) ? ' (' . $this->getAge($this->profile) . ')' : '';
$this->phone = $this->getPhone($this->profile);
$this->lastLoginAt = $this->getLastLogin($this->profile);
$this->accountsTotals = $this->getAccountsTotals($this->profile);
$this->lastExchangeAt = $this->getLastExchangeAt($this->accountsTotals, $this->profile);
$this->registeredSince = $this->getRegisteredSince($this->profile);
$this->profile->languages = $this->getLanguages($this->profile);
$this->profile->lang_preference = $this->getLangPreference($this->profile);
$this->skills = $this->getSkills($this->profile);
$this->socials = $this->getSocials($this->profile);
}
public function toggleAboutText()
{
$this->showAboutFullText = !$this->showAboutFullText;
}
/**
* Redirects to the payment page to this user.
*
* @return \Illuminate\Http\RedirectResponse
*/
public function payButton()
{
if ($this->profile->isRemoved()) {
return;
}
return redirect()->route('pay-to-name', ['name' => $this->profile->name]);
}
/**
* Start a conversation with this user.
*/
public function createConversation()
{
if ($this->profile->isRemoved()) {
return ;
}
$recipient = $this->profile;
$conversation = getActiveProfile()->createConversationWith($recipient);
return redirect()->route('chat', ['conversation' => $conversation->id]);
}
/**
* Render the view for the ProfileUser Show component.
*
* @return \Illuminate\Contracts\View\View
*/
public function render()
{
return view('livewire.profile.show');
}
}