Skip to content

Commit

Permalink
Move the Media components out of the Embed namespace
Browse files Browse the repository at this point in the history
The Embed namespace is not needed.
  • Loading branch information
jcoyne committed Jan 31, 2025
1 parent 87e41e4 commit 50990fa
Show file tree
Hide file tree
Showing 22 changed files with 267 additions and 279 deletions.
2 changes: 1 addition & 1 deletion app/components/companion_windows_component.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
Share
</header>

<%= render Embed::Media::EmbedThisFormComponent.new(viewer:) %>
<%= render Media::EmbedThisFormComponent.new(viewer:) %>

<button data-action="click->companion-window#closeModal">Close</button>
</dialog>
Expand Down
17 changes: 0 additions & 17 deletions app/components/embed/media/embed_this_form_component.rb

This file was deleted.

13 changes: 0 additions & 13 deletions app/components/embed/media/metadata_component.rb

This file was deleted.

65 changes: 0 additions & 65 deletions app/components/embed/media/preview_image_component.rb

This file was deleted.

119 changes: 0 additions & 119 deletions app/components/embed/media/tag_component.rb

This file was deleted.

37 changes: 0 additions & 37 deletions app/components/embed/media/wrapper_component.rb

This file was deleted.

20 changes: 0 additions & 20 deletions app/components/embed/media_component.rb

This file was deleted.

15 changes: 15 additions & 0 deletions app/components/media/embed_this_form_component.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# frozen_string_literal: true

module Media
class EmbedThisFormComponent < ViewComponent::Base
def initialize(viewer:)
@viewer = viewer
end

delegate :embed_request, :purl_object, to: :viewer
delegate :title, to: :purl_object, prefix: true
delegate :purl_url, to: :purl_object

attr_reader :viewer
end
end
11 changes: 11 additions & 0 deletions app/components/media/metadata_component.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# frozen_string_literal: true

module Media
class MetadataComponent < ViewComponent::Base
def initialize(viewer:)
@viewer = viewer
end

attr_reader :viewer
end
end
63 changes: 63 additions & 0 deletions app/components/media/preview_image_component.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# frozen_string_literal: true

module Media
# Displays an image (e.g. photo of the media) for a media resource
class PreviewImageComponent < ViewComponent::Base
include Embed::StacksImage

# @param [String] druid the object identifier
# @param [ResourceFile] file the file to display
# @param [Integer] resource_index the offset of this resource in the purl
# @param [String] type the type of resource (either audio or video), used to determine which icon to show
def initialize(druid:, file:, resource_index:, type:)
@druid = druid
@file = file
@resource_index = resource_index
@type = type
end

attr_reader :resource_index, :druid, :file, :type

def call
# the 74,73 size accounts for the additional pixel size returned by the image server
thumb_url = stacks_square_url(druid, file.title, size: '74,73')
render WrapperComponent.new(thumbnail: thumb_url, file:, type:, resource_index:) do
tag.div(class: 'osd', id: "openseadragon-#{resource_index}",
data: { controller: 'osd', osd_url_value:, osd_nav_images_value: })
end
end

def osd_url_value
"#{stacks_image_url(druid, file.filename)}/info.json"
end

def osd_nav_images_value # rubocop:disable Metrics/MethodLength
{
zoomIn: {
REST: asset_path('zoomin_rest.png'),
GROUP: asset_path('zoomin_grouphover.png'),
HOVER: asset_path('zoomin_hover.png'),
DOWN: asset_path('zoomin_pressed.png')
},
zoomOut: {
REST: asset_path('zoomout_rest.png'),
GROUP: asset_path('zoomout_grouphover.png'),
HOVER: asset_path('zoomout_hover.png'),
DOWN: asset_path('zoomout_pressed.png')
},
home: {
REST: asset_path('home_rest.png'),
GROUP: asset_path('home_grouphover.png'),
HOVER: asset_path('home_hover.png'),
DOWN: asset_path('home_pressed.png')
},
fullpage: {
REST: asset_path('fullpage_rest.png'),
GROUP: asset_path('fullpage_grouphover.png'),
HOVER: asset_path('fullpage_hover.png'),
DOWN: asset_path('fullpage_pressed.png')
}
}
end
end
end
Loading

0 comments on commit 50990fa

Please sign in to comment.