- Views::add($shelf);
- $this->entityContextManager->setShelfContext($shelf->id);
- $view = setting()->getForCurrentUser('bookshelf_view_type', config('app.views.books'));
+ $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->shelfContext->setShelfContext($shelf->id);
+ $view = setting()->getForCurrentUser('bookshelf_view_type');