about summary refs log tree commit diff
path: root/app/views/home
diff options
context:
space:
mode:
Diffstat (limited to 'app/views/home')
-rw-r--r--app/views/home/index.html.haml3
-rw-r--r--app/views/home/initial_state.json.rabl24
2 files changed, 27 insertions, 0 deletions
diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml
index 498fae105..0147f4064 100644
--- a/app/views/home/index.html.haml
+++ b/app/views/home/index.html.haml
@@ -1,4 +1,7 @@
 - content_for :header_tags do
+  :javascript
+    window.INITIAL_STATE = #{json_escape(render(file: 'home/initial_state', formats: :json))}
+
   = javascript_include_tag 'application'
 
 = react_component 'Mastodon', default_props, class: 'app-holder', prerender: false
diff --git a/app/views/home/initial_state.json.rabl b/app/views/home/initial_state.json.rabl
new file mode 100644
index 000000000..0e9736f5f
--- /dev/null
+++ b/app/views/home/initial_state.json.rabl
@@ -0,0 +1,24 @@
+object false
+
+node(:meta) {
+  {
+    access_token: @token,
+    locale: I18n.locale,
+    me: current_account.id,
+  }
+}
+
+node(:compose) {
+  {
+    me: current_account.id,
+    private: current_account.locked?,
+  }
+}
+
+node(:accounts) {
+  {
+    current_account.id => partial('api/v1/accounts/show', object: current_account),
+  }
+}
+
+node(:settings) { @web_settings }