*/ public static array $domains = [ '/^core\.(test|localhost)$/', ]; /** * Events this module listens to for lazy loading. * * @var array */ public static array $listens = [ DomainResolving::class => 'onDomainResolving', WebRoutesRegistering::class => 'onWebRoutes', ]; /** * Handle domain resolution - register if we match. */ public function onDomainResolving(DomainResolving $event): void { foreach (static::$domains as $pattern) { if ($event->matches($pattern)) { $event->register(static::class); return; } } } public function register(): void { // } /** * Get domains for this website. * * @return array */ protected function domains(): array { return app(DomainResolver::class)->domainsFor(self::class); } /** * Register public web routes. */ public function onWebRoutes(WebRoutesRegistering $event): void { $event->views('demo', __DIR__.'/View/Blade'); // Register routes for all configured domains $domains = $this->domains(); if (empty($domains)) { // No domain mapping - register globally (for demo/dev) $event->routes(fn () => Route::middleware('web') ->group(__DIR__.'/Routes/web.php')); } else { foreach ($domains as $domain) { $event->routes(fn () => Route::middleware('web') ->domain($domain) ->group(__DIR__.'/Routes/web.php')); } } // Livewire components - names must match Livewire's auto-discovery from namespace $event->livewire('website.demo.view.modal.landing', View\Modal\Landing::class); $event->livewire('website.demo.view.modal.login', View\Modal\Login::class); $event->livewire('website.demo.view.modal.install', View\Modal\Install::class); } }