diff --git a/app/components/media_asset_component/media_asset_component.html.erb b/app/components/media_asset_component/media_asset_component.html.erb index fae5aeadc..45b31f623 100644 --- a/app/components/media_asset_component/media_asset_component.html.erb +++ b/app/components/media_asset_component/media_asset_component.html.erb @@ -6,7 +6,13 @@ 100% - <% if !policy(media_asset).can_see_image? %> + <% if media_asset.expunged? || media_asset.deleted? %> +
Image deleted.
+ <% elsif media_asset.processing? %> +<%= spinner_icon(class: "h-8") %>
+ <% elsif media_asset.failed? %> +Upload failed.
+ <% elsif !media_asset.active? || !policy(media_asset).can_see_image? %>Image unavailable.
<% elsif is_image? %> <%= tag.img src: variant(:original).file_url, width: image_width, height: image_height, draggable: "false", class: "media-asset-image max-h-inherit max-w-full h-full w-auto select-none" -%> diff --git a/app/models/media_asset.rb b/app/models/media_asset.rb index 1bb44d37f..a5795e799 100644 --- a/app/models/media_asset.rb +++ b/app/models/media_asset.rb @@ -21,7 +21,7 @@ class MediaAsset < ApplicationRecord has_many :uploaders, through: :uploads, class_name: "User", foreign_key: :uploader_id has_many :ai_tags - delegate :frame_delays, :metadata, to: :media_metadata + delegate :frame_delays, :metadata, to: :media_metadata, allow_nil: true delegate :is_non_repeating_animation?, :is_greyscale?, :is_rotated?, :is_ai_generated?, :has_sound?, to: :metadata scope :public_only, -> { where(is_public: true) } diff --git a/app/views/media_assets/show.html.erb b/app/views/media_assets/show.html.erb index 5b851bbb6..5e1d0d3a5 100644 --- a/app/views/media_assets/show.html.erb +++ b/app/views/media_assets/show.html.erb @@ -34,26 +34,28 @@