# frozen_string_literal: true class ProjectTimelineYearComponent < ApplicationComponent attr_reader :year, :languages, :all_languages def on_load(year:, languages:) @year = year @languages = languages end def render_language_progress(language) classes = ["language-progress"] if language.start_date.year == @year classes << "start-#{language.start_date.month}" end if language.end_date.year == @year classes << "end-#{language.end_date.month}" end content_tag( :div, nil, class: class_names(classes), style: "background-color: #{language.color}" ) end def render_project_dot(project) content_tag( :a, nil, href: project_path(project), class: class_names( "project", "start-#{project.start_date.month}" ), style: "background-color: #{project.color}", title: project.name, data: { # No turbo, else popovers don't work on back nav turbo: false, # Stop spamming the server "turbo-prefetch": false, # Popover "bs-content": project.description_as_html, "bs-custom-class": "popover" } ) end def render_project_progress(project) classes = ["project-progress"] if project.start_date.year == @year classes << "start-#{project.start_date.month}" end if project.end_date.year == @year classes << "end-#{project.end_date.month}" end content_tag( :div, nil, class: class_names(classes), style: "background-color: red" # #{project.color}" ) end end