environment('testing') && config('portal.qa_build_directory')) { $manifest = public_path(config('portal.qa_build_directory').'/manifest.json'); $version = is_file($manifest) ? hash_file('xxh128', $manifest) : false; return $version === false ? null : $version; } return parent::version($request); } /** * Define the props that are shared by default. * * @see https://inertiajs.com/shared-data * * @return array */ public function share(Request $request): array { $contentManagementAccess=app(\App\Services\ContentManagement::class)->access($request->user()); return [ ...parent::share($request), 'name' => config('app.name'), 'procurementEnabled' => app(\App\Services\Procurement::class)->available(), 'homologationReserved' => (bool) config('portal.homologation_only', false), 'profileAccess' => app(PortalProfileAccess::class)->navigation($request->user()), 'contentManagementHref' => $contentManagementAccess !== [] ? '/gestao-conteudos' : null, 'contentManagementAccess'=>$contentManagementAccess, 'portalOperator' => config('portal.operator_name'), 'portalInstitutionalContactEmail' => filter_var(config('portal.institutional_contact_email'), FILTER_VALIDATE_EMAIL) ?: null, 'legacyContentEnabled' => app(LegacyContent::class)->available(), 'educationEnabled' => (bool) config('education.enabled', false), 'aiEnabled' => (bool) config('investmoz_ai.enabled', false), 'existingBusinessEnabled' => (bool) config('existing-business.enabled', false), 'businessReviewUrl' => config('existing-business.enabled') && $request->user()?->can('reviewQueue', ExistingBusiness::class) ? '/management/negocios' : null, 'investorPathEnabled' => app(InvestorPath::class)->available(), 'opportunityManagement' => config('portal.opportunity_dashboard_access_enabled') && $request->user() && app(PortalProfileAccess::class)->legacyWriteAllowed($request->user()) ? [ 'installed' => app(OpportunityManagement::class)->installed(), 'manage' => ['label' => 'Gestão de Oportunidades', 'href' => '/management/opportunities'], 'create' => ['label' => 'Nova oportunidade', 'href' => '/management/opportunities/create'], 'installationHref' => '/management/opportunity-management-install', ] : null, 'flash' => ['success' => fn () => $request->session()->get('success'), 'warning' => fn () => $request->session()->get('warning'), 'uploaded_document_id' => fn () => $request->session()->get('uploaded_document_id')], 'scopedAdministration' => $request->user() && app(\App\Services\ScopedPortalAdministration::class)->administrative($request->user()) ? [ ['label'=>'Zonas e parques','href'=>'/management/investment/zones'], ['label'=>'Referências económicas','href'=>'/management/economic-references/lot-01'], ['label'=>'Referências e formulários','href'=>'/management/investment/references'], ['label'=>'Educação e competências','href'=>'/management/education'], ['label'=>'Interesses atribuídos','href'=>'/management/interests'], ['label'=>'Atribuições de interesses','href'=>'/management/interests/atribuicoes'], ['label'=>'Atribuições do Balcão','href'=>'/management/balcao/atribuicoes'], ] : [], 'auth' => [ 'user' => $request->user(), 'canManagePortal' => $request->user()?->can('manage-portal') ?? false, 'legacyManagementAccess' => $request->user()?->hasVerifiedEmail() && app(PortalProfileAccess::class)->legacyWriteAllowed($request->user()), ], 'sidebarOpen' => ! $request->hasCookie('sidebar_state') || $request->cookie('sidebar_state') === 'true', ]; } }