Simplifies the namespace hierarchy by removing the intermediate Mod segment. Updates all 118 files including models, services, controllers, middleware, tests, and composer.json autoload configuration. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
67 lines
1.9 KiB
PHP
67 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace Core\Tenant\View\Modal\Web;
|
|
|
|
use Core\Mod\Content\Services\ContentRender;
|
|
use Core\Tenant\Models\Workspace;
|
|
use Core\Tenant\Services\WorkspaceService;
|
|
use Livewire\Component;
|
|
|
|
class WorkspaceHome extends Component
|
|
{
|
|
public array $workspace = [];
|
|
|
|
public array $content = [];
|
|
|
|
public bool $loading = true;
|
|
|
|
public function mount(?string $workspace = null): void
|
|
{
|
|
$workspaceService = app(WorkspaceService::class);
|
|
|
|
// Get workspace from route param or request attributes (from subdomain middleware)
|
|
$slug = $workspace ?? request()->attributes->get('workspace', 'main');
|
|
|
|
$this->workspace = $workspaceService->get($slug) ?? $workspaceService->get('main');
|
|
|
|
// Load workspace content from native content
|
|
$this->loadContent();
|
|
}
|
|
|
|
protected function loadContent(): void
|
|
{
|
|
try {
|
|
$workspaceModel = Workspace::where('slug', $this->workspace['slug'])->first();
|
|
if (! $workspaceModel) {
|
|
$this->content = ['posts' => [], 'pages' => []];
|
|
$this->loading = false;
|
|
|
|
return;
|
|
}
|
|
|
|
$render = app(ContentRender::class);
|
|
$homepage = $render->getHomepage($workspaceModel);
|
|
|
|
$this->content = [
|
|
'posts' => $homepage['posts'] ?? [],
|
|
'pages' => [], // Pages not included in homepage response
|
|
];
|
|
} catch (\Exception $e) {
|
|
$this->content = [
|
|
'posts' => [],
|
|
'pages' => [],
|
|
];
|
|
}
|
|
|
|
$this->loading = false;
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('tenant::web.workspace.home')
|
|
->layout('components.layouts.workspace', [
|
|
'title' => $this->workspace['name'].' | Host UK',
|
|
'workspace' => $this->workspace,
|
|
]);
|
|
}
|
|
}
|