Class: QTimetrap::ProjectSidebar::Component
- Inherits:
-
Object
- Object
- QTimetrap::ProjectSidebar::Component
- Includes:
- ArchiveToggleHelpers, LogoHelpers, ProjectButtonHelpers, ProjectSelectionHelpers, TaskHelpers
- Defined in:
- app/components/project_sidebar/component.rb
Overview
Displays project shortcuts and notifies on project selection.
Instance Attribute Summary collapse
-
#widget ⇒ Object
readonly
Returns the value of attribute widget.
Instance Method Summary collapse
-
#initialize(parent:, on_project_selected:, on_task_selected: nil, on_archive_mode_toggled: nil) ⇒ Component
constructor
A new instance of Component.
- #render(projects:, tasks: [], selection: {}, selected_task: nil, archive_mode: false) ⇒ Object
Constructor Details
#initialize(parent:, on_project_selected:, on_task_selected: nil, on_archive_mode_toggled: nil) ⇒ Component
Returns a new instance of Component.
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/components/project_sidebar/component.rb', line 15 def initialize( parent:, on_project_selected:, on_task_selected: nil, on_archive_mode_toggled: nil ) @parent = parent @on_project_selected = on_project_selected @on_task_selected = on_task_selected @on_archive_mode_toggled = on_archive_mode_toggled initialize_selection_state build end |
Instance Attribute Details
#widget ⇒ Object (readonly)
Returns the value of attribute widget.
13 14 15 |
# File 'app/components/project_sidebar/component.rb', line 13 def @widget end |
Instance Method Details
#render(projects:, tasks: [], selection: {}, selected_task: nil, archive_mode: false) ⇒ Object
29 30 31 32 33 34 35 |
# File 'app/components/project_sidebar/component.rb', line 29 def render(projects:, tasks: [], selection: {}, selected_task: nil, archive_mode: false) values = Array(projects) selection = selection_state(selection) render_projects(projects: values, selection: selection) render_tasks(tasks: tasks, selected_project: selection.fetch(:selected_project), selected_task: selected_task) .checked = archive_mode end |