about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/javascript/core/public.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/javascript/core/public.js b/app/javascript/core/public.js
index d3d80019f..4ac9eab3e 100644
--- a/app/javascript/core/public.js
+++ b/app/javascript/core/public.js
@@ -1,8 +1,21 @@
 //  This file will be loaded on public pages, regardless of theme.
 
+import createHistory from 'history/createBrowserHistory';
+import ready from '../mastodon/ready';
+
 const { delegate } = require('rails-ujs');
 const { length } = require('stringz');
 
+ready(() => {
+  const history = createHistory();
+  const detailedStatuses = document.querySelectorAll('.public-layout .detailed-status');
+  const location = history.location;
+  if (detailedStatuses.length == 1 && (!location.state || !location.state.scrolledToDetailedStatus)) {
+    detailedStatuses[0].scrollIntoView();
+    history.replace(location.pathname, {...location.state, scrolledToDetailedStatus: true});
+  }
+});
+
 delegate(document, '.webapp-btn', 'click', ({ target, button }) => {
   if (button !== 0) {
     return true;