class StreamController < ApplicationController before_action :authenticate_user! before_action :set_stream_navbar_actions, only: [:index, :global] before_action :set_stream_navbar_color, only: [:index, :global] before_action :set_sidenav_expansion before_action :cache_linkable_content_for_each_content_type, only: [:index] def index @page_title = "What's happening" followed_users = current_user.followed_users.pluck(:id) blocked_users = current_user.blocked_users.pluck(:id) blocked_by_users = current_user.blocked_by_users.pluck(:id) @feed = ContentPageShare.where(user_id: followed_users + [current_user.id] - blocked_users - blocked_by_users) .order('created_at DESC') .includes([:content_page, :secondary_content_page]) .includes({ share_comments: [:user], user: [:avatar_attachment] }) .limit(25) end def community end def global @page_title = "What's happening around the world" blocked_users = current_user.blocked_users.pluck(:id) blocked_by_users = current_user.blocked_by_users.pluck(:id) @feed = ContentPageShare.all .where.not(user_id: blocked_users + blocked_by_users) .order('created_at DESC') .includes([:content_page, :secondary_content_page]) .includes({ share_comments: [:user], user: [:avatar_attachment] }) .limit(25) end def set_stream_navbar_color @navbar_color = '#CE93D8' end # For showing a specific piece of content def set_stream_navbar_actions @navbar_actions = [ { label: 'You & Your Network', href: main_app.stream_path }, { label: 'Around the world', href: main_app.stream_world_path } ] end def set_sidenav_expansion @sidenav_expansion = 'community' end end