FIX: Preload sidebar categories when lazy loading categories (#25332)

This fixes a bug where the sidebar categories would not be loaded when
the categories were lazy loaded because the sidebar uses the preloaded
category list, which was empty.
This commit is contained in:
Bianca Nenciu
2024-02-02 10:35:15 +02:00
committed by GitHub
parent e071b74a79
commit 1d160702ad
3 changed files with 42 additions and 9 deletions

View File

@@ -106,15 +106,26 @@ class Site
end
def categories
if @guardian.can_lazy_load_categories?
preloaded_category_ids = []
if @guardian.authenticated?
preloaded_category_ids.concat(@guardian.user.secured_sidebar_category_ids(@guardian))
end
end
@categories ||=
begin
categories = []
self.class.all_categories_cache.each do |category|
if @guardian.can_see_serialized_category?(
category_id: category[:id],
read_restricted: category[:read_restricted],
)
if (
!@guardian.can_lazy_load_categories? ||
preloaded_category_ids.include?(category[:id])
) &&
@guardian.can_see_serialized_category?(
category_id: category[:id],
read_restricted: category[:read_restricted],
)
categories << category
end
end