player.html.haml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. - content_for :header_tags do
  2. = render_initial_state
  3. = javascript_pack_tag 'public', crossorigin: 'anonymous'
  4. :ruby
  5. meta = @media_attachment.file.meta || {}
  6. - if @media_attachment.video?
  7. = react_component :video,
  8. alt: @media_attachment.description,
  9. blurhash: @media_attachment.blurhash,
  10. detailed: true,
  11. editable: true,
  12. frameRate: meta.dig('original', 'frame_rate'),
  13. height: 380,
  14. inline: true,
  15. media: [ActiveModelSerializers::SerializableResource.new(@media_attachment, serializer: REST::MediaAttachmentSerializer)].as_json,
  16. preview: @media_attachment.thumbnail.present? ? @media_attachment.thumbnail.url : @media_attachment.file.url(:small),
  17. src: @media_attachment.file.url(:original),
  18. width: 670 do
  19. %video{ controls: 'controls' }
  20. %source{ src: @media_attachment.file.url(:original) }
  21. - elsif @media_attachment.gifv?
  22. = react_component :media_gallery,
  23. autoplay: true,
  24. height: 380,
  25. media: [ActiveModelSerializers::SerializableResource.new(@media_attachment, serializer: REST::MediaAttachmentSerializer).as_json],
  26. standalone: true do
  27. %video{ autoplay: 'autoplay', muted: 'muted', loop: 'loop' }
  28. %source{ src: @media_attachment.file.url(:original) }
  29. - elsif @media_attachment.audio?
  30. = react_component :audio,
  31. accentColor: meta.dig('colors', 'accent'),
  32. alt: @media_attachment.description,
  33. backgroundColor: meta.dig('colors', 'background'),
  34. duration: meta.dig(:original, :duration),
  35. foregroundColor: meta.dig('colors', 'foreground'),
  36. fullscreen: true,
  37. height: 380,
  38. poster: @media_attachment.thumbnail.present? ? @media_attachment.thumbnail.url : @media_attachment.account.avatar_static_url,
  39. src: @media_attachment.file.url(:original),
  40. width: 670 do
  41. %audio{ controls: 'controls' }
  42. %source{ src: @media_attachment.file.url(:original) }