diff --git a/app/components/doctrines_offcanvas_accordion_component.rb b/app/components/doctrines_offcanvas_accordion_component.rb new file mode 100644 index 0000000..7dd24ad --- /dev/null +++ b/app/components/doctrines_offcanvas_accordion_component.rb @@ -0,0 +1,39 @@ +class DoctrinesOffcanvasAccordionComponent < BaseComponent + with_collection_parameter :search_result + attr_reader :search_result, :opts + + def initialize(search_result:, current_user:, opts: {}) + @search_result = search_result + @opts = opts + end + + def accordion_name + "doctrinesOffCanvasAccordion" + end + + def accordion_body_name + "doctrinesOffCanvasAccordionBody" + end + + def parent_accordion_id + return accordion_body_name if search_result["parent_id"].blank? + + [accordion_name, search_result["parent_id"]].join + end + + def children_accordion_id + [accordion_name, search_result["heirarchy_level"], search_result["id"]].join + end + + def accordion_id + [accordion_name, search_result["id"]].join + end + + def accordion_body_id + [accordion_body_name, search_result["id"]].join + end + + def index_url + search_doctrines_path(subject_ids: [search_result["id"]], is_index_table: true) + end +end diff --git a/app/components/doctrines_offcanvas_accordion_component/doctrines_offcanvas_accordion_component.html.erb b/app/components/doctrines_offcanvas_accordion_component/doctrines_offcanvas_accordion_component.html.erb new file mode 100644 index 0000000..89905da --- /dev/null +++ b/app/components/doctrines_offcanvas_accordion_component/doctrines_offcanvas_accordion_component.html.erb @@ -0,0 +1,25 @@ +