# frozen_string_literal: true module QuestionsCrafter module Ui module Components class QuestionsPage < ::Phlex::HTML include Phlex::Rails::Helpers::FormWith include ActionView::Helpers::TextHelper # For pluralize def initialize(questions_object:, form_url:, form_method:, read_only:) @questions_object = questions_object @form_url = form_url @form_method = form_method @read_only = read_only @custom_html_classes = @questions_object.class.custom_html_classes @css_manager = QuestionsCrafter::Ui::CssClassesManager.new(@custom_html_classes) @class_prefix = QuestionsCrafter::Utils.html_class_name_prefix(questions: questions_object) end def view_template div(class: css_classes(:page, :main)) do h1(class: css_classes(:page, :title)) { @questions_object.class.title } p(class: css_classes(:page, :description)) { @questions_object.class.description } render QuestionsCrafter::Ui::Components::FormBuilder.new( questions_object: @questions_object, form_url: @form_url, form_method: @form_method, read_only: @read_only, custom_html_classes: @custom_html_classes ) end end def css_classes(section, key = nil) @css_manager.get(section, key) end end end end end