3 namespace BookStack\Entities;
5 use BookStack\Entities\Models\Book;
6 use BookStack\Entities\Tools\ShelfContext;
7 use Illuminate\View\View;
9 class BreadcrumbsViewComposer
11 public function __construct(
12 protected ShelfContext $shelfContext
17 * Modify data when the view is composed.
19 public function compose(View $view): void
21 $crumbs = $view->getData()['crumbs'];
22 $firstCrumb = $crumbs[0] ?? null;
24 if ($firstCrumb instanceof Book) {
25 $shelf = $this->shelfContext->getContextualShelfForBook($firstCrumb);
27 array_unshift($crumbs, $shelf);
28 $view->with('crumbs', $crumbs);