php-tenant/View/Modal/Web/WorkspaceHome.php
Snider d0ad2737cb refactor: rename namespace from Core\Mod\Tenant to Core\Tenant
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>
2026-01-27 16:30:46 +00:00

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,
]);
}
}