From 89a058f7ad8824e7d92d327d18f997d5c2c25398 Mon Sep 17 00:00:00 2001 From: Sami Mazouz Date: Mon, 8 Jul 2024 18:33:01 +0100 Subject: [PATCH] fix: default sort not saved --- extend.php | 3 --- js/src/forum/index.tsx | 17 +++++---------- src/ApplyUserSortingMiddleware.php | 5 ----- src/ShowUserPreferredSortingController.php | 25 ---------------------- 4 files changed, 5 insertions(+), 45 deletions(-) delete mode 100644 src/ShowUserPreferredSortingController.php diff --git a/extend.php b/extend.php index 81272d4..81058ff 100644 --- a/extend.php +++ b/extend.php @@ -17,9 +17,6 @@ return [ new Extend\Locales(__DIR__.'/locale'), - (new Extend\Routes('api')) - ->get('/sorting-preference', 'sorting-preferences.show', ShowUserPreferredSortingController::class), - (new Extend\Middleware('forum'))->add(ApplyUserSortingMiddleware::class), (new Extend\Middleware('api'))->add(ApplyUserSortingMiddleware::class), diff --git a/js/src/forum/index.tsx b/js/src/forum/index.tsx index 2e9102b..6e7a760 100644 --- a/js/src/forum/index.tsx +++ b/js/src/forum/index.tsx @@ -12,21 +12,14 @@ app.initializers.add('blomstra/save-sorting-preferences', () => { return; } - if (!sort) { - m.request({ - method: 'GET', - url: '/api/sorting-preference', - }).then((response) => { - sort = response.data.attributes.sort; - - m.redraw(); - }); - } - override(IndexPage.prototype, 'viewItems', function (this, user) { const items = new ItemList(); const sortMap = app.discussions.sortMap(); + if (!sort) { + sort = app.session.user?.preferences()?.['discussion_sort']; + } + const sortOptions = Object.keys(sortMap).reduce((acc: any, sortId) => { acc[sortId] = app.translator.trans(`core.forum.index_sort.${sortId}_button`); return acc; @@ -45,8 +38,8 @@ app.initializers.add('blomstra/save-sorting-preferences', () => { function handleClick() { app.search.changeSort.bind(app.search, value)(); - sort = value; + app.session.user?.savePreferences({ discussion_sort: value }); } return ( diff --git a/src/ApplyUserSortingMiddleware.php b/src/ApplyUserSortingMiddleware.php index 00ce966..94adda1 100644 --- a/src/ApplyUserSortingMiddleware.php +++ b/src/ApplyUserSortingMiddleware.php @@ -27,11 +27,6 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface $sort = Arr::get($request->getQueryParams(), 'sort'); $lastSelectedSort = $actor->getPreference('discussion_sort'); - if ($sort && $sort !== $lastSelectedSort) { - $actor->setPreference('discussion_sort', $sort); - $actor->save(); - } - return $handler->handle($request->withQueryParams([ 'sort' => $sort ?? $lastSelectedSort, ])); diff --git a/src/ShowUserPreferredSortingController.php b/src/ShowUserPreferredSortingController.php deleted file mode 100644 index 1f6343e..0000000 --- a/src/ShowUserPreferredSortingController.php +++ /dev/null @@ -1,25 +0,0 @@ -isGuest()) { - return []; - } - - return ['sort' => $actor->getPreference('discussion_sort')]; - } -}