You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.9 KiB

  1. # frozen_string_literal: true
  2. module HomeHelper
  3. def default_props
  4. {
  5. locale: I18n.locale,
  6. }
  7. end
  8. def account_link_to(account, button = '', path: nil, full: true)
  9. content_tag(:div, class: 'account') do
  10. content_tag(:div, class: 'account__wrapper') do
  11. section = if account.nil?
  12. content_tag(:div, class: 'account__display-name') do
  13. content_tag(:div, class: 'account__avatar-wrapper') do
  14. image_tag(full_asset_url('avatars/original/missing.png', skip_pipeline: true), class: 'account__avatar')
  15. end +
  16. content_tag(:span, class: 'display-name') do
  17. content_tag(:strong, t('about.contact_missing')) +
  18. content_tag(:span, t('about.contact_unavailable'), class: 'display-name__account')
  19. end
  20. end
  21. elsif full
  22. link_to(path || ActivityPub::TagManager.instance.url_for(account), class: 'account__display-name') do
  23. content_tag(:div, class: 'account__avatar-wrapper') do
  24. image_tag(full_asset_url(current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url), class: 'account__avatar')
  25. end +
  26. content_tag(:span, class: 'display-name') do
  27. content_tag(:bdi) do
  28. content_tag(:strong, display_name(account, custom_emojify: true), class: 'display-name__html emojify')
  29. end +
  30. content_tag(:span, "@#{account.acct}", class: 'display-name__account')
  31. end
  32. end
  33. else
  34. link_to(path || ActivityPub::TagManager.instance.url_for(account), class: 'account__display-name') do
  35. content_tag(:span, class: 'display-name') do
  36. content_tag(:bdi) do
  37. content_tag(:strong, display_name(account, custom_emojify: true), class: 'display-name__html emojify')
  38. end
  39. end
  40. end
  41. end
  42. section + button
  43. end
  44. end
  45. end
  46. def obscured_counter(count)
  47. if count <= 0
  48. 0
  49. elsif count == 1
  50. 1
  51. else
  52. '1+'
  53. end
  54. end
  55. def custom_field_classes(field)
  56. if field.verified?
  57. 'verified'
  58. else
  59. 'emojify'
  60. end
  61. end
  62. def optional_link_to(condition, path, options = {}, &block)
  63. if condition
  64. link_to(path, options, &block)
  65. else
  66. content_tag(:div, &block)
  67. end
  68. end
  69. def sign_up_message
  70. if closed_registrations?
  71. t('auth.registration_closed', instance: site_hostname)
  72. elsif open_registrations?
  73. t('auth.register')
  74. elsif approved_registrations?
  75. t('auth.apply_for_account')
  76. end
  77. end
  78. end