about summary refs log tree commit diff
path: root/app/helpers
diff options
context:
space:
mode:
authorReverite <github@reverite.sh>2019-08-20 10:46:41 -0600
committerReverite <github@reverite.sh>2019-08-20 10:46:41 -0600
commitd2c357ba86b1a9d1b7b4c291e1c55811997027ed (patch)
tree229bd4223833900f11701fb232f6ea7b2e4160f1 /app/helpers
parent2e221bd5b6472d1eecb654b3518af7886d3dadaf (diff)
parentbce46f2057b06e78958a42821f3ce18c945de88d (diff)
Merge branch 'glitch' into production
Diffstat (limited to 'app/helpers')
-rw-r--r--app/helpers/application_helper.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 7ae1e5d0b..6940c8535 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -123,4 +123,25 @@ module ApplicationHelper
     text = word_wrap(text, line_width: line_width - 2, break_sequence: break_sequence)
     text.split("\n").map { |line| '> ' + line }.join("\n")
   end
+
+  def render_initial_state
+    state_params = {
+      settings: {
+        known_fediverse: Setting.show_known_fediverse_at_about_page,
+      },
+
+      text: [params[:title], params[:text], params[:url]].compact.join(' '),
+    }
+
+    if user_signed_in?
+      state_params[:settings]          = state_params[:settings].merge(Web::Setting.find_by(user: current_user)&.data || {})
+      state_params[:push_subscription] = current_account.user.web_push_subscription(current_session)
+      state_params[:current_account]   = current_account
+      state_params[:token]             = current_session.token
+      state_params[:admin]             = Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, ''))
+    end
+
+    json = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(state_params), serializer: InitialStateSerializer).to_json
+    content_tag(:script, json_escape(json).html_safe, id: 'initial-state', type: 'application/json')
+  end
 end