about summary refs log tree commit diff
path: root/app/javascript/core
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2018-08-05 12:55:56 +0200
committerThibG <thib@sitedethib.com>2018-08-07 16:58:00 +0200
commitc70077892227aedc6b8951aeaa697cd904dfb0cb (patch)
tree83bc44cd2ccee8c7791ef95815169e5b86d0a505 /app/javascript/core
parent617c3a8006b8b793604ff78ef331b95d47dc3d6c (diff)
Scroll to linked status in public status view
Diffstat (limited to 'app/javascript/core')
-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;