Sha256: dee4774c71efc78a49a134a826b5110dde5c21b1fe63e72e4b6fe1d5f7c10447

Contents?: true

Size: 1.5 KB

Versions: 8

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

module Primer
  # A client-side mechanism to crop images.
  class ImageCrop < Primer::Component
    # A loading indicator that is shown while the image is loading.
    # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
    renders_one :loading, lambda { |**system_arguments|
      deny_tag_argument(**system_arguments)
      system_arguments[:tag] = :div
      system_arguments[:"data-loading-slot"] = true

      Primer::BaseComponent.new(**system_arguments)
    }

    # @example Simple cropper
    #   <%= render(Primer::ImageCrop.new(src: "https://github.com/koddsson.png")) %>
    #
    # @example Square cropper
    #   <%= render(Primer::ImageCrop.new(src: "https://github.com/koddsson.png", rounded: false)) %>
    #
    # @example Cropper with a custom loader
    #   <%= render(Primer::ImageCrop.new(src: "https://github.com/koddsson.png", rounded: false)) do |cropper| %>
    #     <% cropper.with_loading(style: "width: 120px").with_content("Loading...") %>
    #   <% end %>
    #
    # @param src [String] The path of the image to crop.
    # @param rounded [Boolean] If the crop mask should be a circle. Defaults to true.
    # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
    def initialize(src:, rounded: true, **system_arguments)
      @system_arguments = deny_tag_argument(**system_arguments)
      @system_arguments[:tag] = "image-crop"
      @system_arguments[:src] = src
      @system_arguments[:rounded] = true if rounded
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
primer_view_components-0.0.97 app/components/primer/image_crop.rb
primer_view_components-0.0.96 app/components/primer/image_crop.rb
primer_view_components-0.0.95 app/components/primer/image_crop.rb
primer_view_components-0.0.94 app/components/primer/image_crop.rb
primer_view_components-0.0.93 app/components/primer/image_crop.rb
primer_view_components-0.0.92 app/components/primer/image_crop.rb
primer_view_components-0.0.91 app/components/primer/image_crop.rb
primer_view_components-0.0.90 app/components/primer/image_crop.rb