# frozen_string_literal: true

class StaticController < ApplicationController
  include ThemeHelper

  def index
    if user_signed_in?
      @timeline = current_user.cursored_timeline(last_id: params[:last_id])
      @timeline_last_id = @timeline.map(&:id).min
      @more_data_available = !current_user.cursored_timeline(last_id: @timeline_last_id, size: 1).count.zero?

      respond_to do |format|
        format.html
        format.js { render layout: false }
      end
    else
      return render 'static/front'
    end
  end

  def about
    user_count = User
                 .where.not(confirmed_at: nil)
                 .where("answered_count > 0")
                 .count

    current_ban_count = UserBan
                        .current
                        .joins(:user)
                        .where.not("users.confirmed_at": nil)
                        .where("users.answered_count > 0")
                        .count

    @users = user_count - current_ban_count
    @questions = Question.count
    @answers = Answer.count
    @comments = Comment.count
    @smiles = Appendable::Reaction.count
  end

  def linkfilter
    redirect_to root_path unless params[:url]
    
    @link = params[:url]
  end

  def faq

  end

  def privacy_policy

  end

  def terms

  end

  def webapp_manifest
    render json: {
      name: APP_CONFIG["site_name"],
      description: t(".front.subtitle"),
      start_url: root_url(source: "pwa"),
      scope: root_url,
      display: "standalone",
      categories: %w[social],
      lang: I18n.locale,
      shortcuts: [
        {
          name: t('views.navigation.inbox'),
          url: inbox_url,
          icons: [
            {
              src: "/icons/shortcuts/inbox.svg",
              sizes: "96x96"
            }
          ]
        }
      ],
      icons: %i[1024 512 384 192 128 96 72 48].map do |size|
        [
          { src: "/icons/maskable_icon_x#{size}.webp", size: "#{size}x#{size}", type: "image/webp" },
          { src: "/icons/maskable_icon_x#{size}.png", size: "#{size}x#{size}", type: "image/png" }
        ]
      end.flatten,
      theme_color: theme_color,
      background_color: mobile_theme_color,
      orientation: "any"
    }
  end
end