Thursday, September 19, 2024 11:53:57 PM
> settings

Customize


Authenticate

> project_timeline_year_component.rb
# 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
All opinions represented herein are my own
- © 2024 itsthedevman
- build 3c15a1b