*/ public function share(Request $request): array { // Get translations from translator app. $translations = TranslationHelper::getCachedTranslations(); // Get all errors messages of session from middleware and redirect response. $errors = array_filter([ ...($request->session()->get('errors')?->getBag('default')?->toArray() ?? []), ...array_filter([ 'error' => $request->session()->get('error'), ]), ]); $props = [ ...parent::share($request), 'appEnv' => [ 'mode' => config('app.env'), 'name' => config('app.name'), 'url' => config('app.url'), 'locale' => app()->getLocale(), 'locales' => LaravelLocalization::getSupportedLanguagesKeys(), 'fallbackLocale' => app()->getFallbackLocale(), ], 'auth' => [ 'user' => $request->user(), 'policies' => [ 'activityLogs' => [ 'viewAny' => Gate::allows('viewAny', User::class), ], 'users' => [ 'viewAny' => Gate::allows('viewAny', User::class), 'create' => Gate::allows('create', User::class), ], 'dynamicPages' => [ 'viewAny' => Gate::allows('viewAny', DynamicPage::class), 'viewTrash' => Gate::allows('viewTrash', DynamicPage::class), 'create' => Gate::allows('create', DynamicPage::class), ], 'pageConfigs' => [ 'viewAny' => Gate::allows('viewAny', PageConfig::class), 'viewTrash' => Gate::allows('viewTrash', PageConfig::class), 'create' => Gate::allows('create', PageConfig::class), ], 'contact_counts' => [ "viewAny" => Gate::allows('viewAny', ContactCount::class) ], 'news' => [ 'viewAny' => Gate::allows('viewAny', News::class), 'viewTrash' => Gate::allows('viewTrash', News::class), 'create' => Gate::allows('create', News::class), ], "newsCategories" => [ 'viewAny' => Gate::allows('viewAny', NewsCategory::class), 'viewTrash' => Gate::allows('viewTrash', NewsCategory::class), 'create' => Gate::allows('create', NewsCategory::class), ], "newsTags" => [ 'viewAny' => Gate::allows('viewAny', NewsTag::class), 'viewTrash' => Gate::allows('viewTrash', NewsTag::class), 'create' => Gate::allows('create', NewsTag::class), ], 'companies' => [ 'viewAny' => Gate::allows('viewAny', Company::class), 'viewTrash' => Gate::allows('viewTrash', Company::class), 'create' => Gate::allows('create', Company::class), ], 'companyActivities' => [ 'viewAny' => Gate::allows('viewAny', CompanyActivity::class), 'viewTrash' => Gate::allows('viewTrash', CompanyActivity::class), 'create' => Gate::allows('create', CompanyActivity::class), ], 'companySectors' => [ 'viewAny' => Gate::allows('viewAny', CompanySector::class), 'viewTrash' => Gate::allows('viewTrash', CompanySector::class), 'create' => Gate::allows('create', CompanySector::class), ], 'documents' => [ 'viewAny' => Gate::allows('viewAny', Document::class), 'create' => Gate::allows('create', Document::class), ], "documentCategories" => [ 'viewAny' => Gate::allows('viewAny', DocumentCategory::class), 'viewTrash' => Gate::allows('viewTrash', DocumentCategory::class), 'create' => Gate::allows('create', DocumentCategory::class), ], 'documentTags' => [ 'viewAny' => Gate::allows('viewAny', DocumentTag::class), 'viewTrash' => Gate::allows('viewTrash', DocumentTag::class), 'create' => Gate::allows('create', DocumentTag::class), ], ] ], 'enumItemsPerPagination' => ItemsPerPaginationEnum::toArray(), 'enumUserRole' => RoleEnum::toArray(), 'enumDynamicFieldTypes' => DynamicFieldTypes::toArray(), 'enumModelsList' => ModelsList::toArray(), 'enumStaticRoutes' => StaticRoutesEnum::getRoutes(), 'videoProviderEnum' => VideoProviderEnum::toArray(), 'errors' => $errors, 'translations' => $translations, ]; if (Breadcrumbs::exists($request->route()->getName())) { $props = array_merge($props, [ 'breacrumbs' => Breadcrumbs::generate($request->route()->getName())->toArray() ]); } return $props; } }