| Current Path : /var/www/html/dynaweb-starter/plugin/dynaweb-site/src/Http/Livewire/ |
| Current File : /var/www/html/dynaweb-starter/plugin/dynaweb-site/src/Http/Livewire/Frontend.php |
<?php
namespace Dynaweb\DynawebSite\Http\Livewire;
use Livewire\Component;
use Dynaweb\DynawebSite\Classes\{GenerateComponent};
use Dynaweb\DynawebSite\Classes\PortalsHandler;
use Dynaweb\DynawebSite\Repositories\{FrontendSiteRepository, FrontendPageRepository, FrontendPageComponentRepository};
use Dynaweb\DynawebSite\Models\{FrontendSite, FrontendPage, FrontendPageComponent};
use Illuminate\Http\Response;
class Frontend extends Component
{
public function handle()
{
$portal = PortalsHandler::getInstance()
->siteRepository(new FrontendSiteRepository(new FrontendSite()))
->pageRepository(new FrontendPageRepository(new FrontendPage()))
->pageComponentRepository(new FrontendPageComponentRepository(new FrontendPageComponent()))
->setSiteSlug($this->siteSlug())
->setPageSlug($this->pageSlug())
->handle();
return $portal;
}
private function siteSlug(): ?String
{
return request()->segment(1);
}
private function pageSlug(): ?String
{
return request()->route('page');
}
public function render()
{
try {
// handle portal
$handle = $this->handle();
return view('dynaweb-site::livewire.frontend')
->layout($handle->exportSiteLayout(), $handle->exportComponent());
// ->layout('dynaweb-site::components.layouts.app', $handle->exportComponent());
;
} catch (\Throwable $t) {
// return abort(404);
// return '<pre>Error Ocurred!!</pre>';
return view('dynaweb-site::livewire.error', ['t' => $t])
->layout('dynaweb-site::components.layouts.app');
}
}
}