- /** @var Bookshelf $bookshelf */
- $bookshelf = $this->entityRepo->getBySlug('bookshelf', $slug);
- $this->checkOwnablePermission('book-view', $bookshelf);
+ $shelf = $this->bookshelfRepo->getBySlug($slug);
+ $this->checkOwnablePermission('book-view', $shelf);
+
+ $sort = setting()->getForCurrentUser('shelf_books_sort', 'default');
+ $order = setting()->getForCurrentUser('shelf_books_sort_order', 'asc');
+
+ $sortedVisibleShelfBooks = $shelf->visibleBooks()->get()
+ ->sortBy($sort === 'default' ? 'pivot.order' : $sort, SORT_REGULAR, $order === 'desc')
+ ->values()
+ ->all();
+
+ View::incrementFor($shelf);
+ $this->entityContextManager->setShelfContext($shelf->id);
+ $view = setting()->getForCurrentUser('bookshelf_view_type');