aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshpuld <shp@cock.li>2019-01-30 16:38:28 +0200
committershpuld <shp@cock.li>2019-01-30 16:38:28 +0200
commit0a39159fdf99143ddf05580f066508e6d5a90773 (patch)
treed27242f193c87907ede88119a638cce3140347a7 /src
parent3cfbf0141f9e5c2c835699c5427d4829da412328 (diff)
Adjust scrolling logic and document it, make sure to never show 'show less' if it's not a tall status
Diffstat (limited to 'src')
-rw-r--r--src/components/status/status.js13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/components/status/status.js b/src/components/status/status.js
index 558125df..6ef13010 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -179,7 +179,7 @@ const Status = {
return this.tallStatus
},
showingMore () {
- return this.showingTall || (this.status.summary && this.expandingSubject)
+ return (this.tallStatus && this.showingTall) || (this.status.summary && this.expandingSubject)
},
nsfwClickthrough () {
if (!this.status.nsfw) {
@@ -303,11 +303,14 @@ const Status = {
'highlight': function (id) {
if (this.status.id === id) {
let rect = this.$el.getBoundingClientRect()
- if (rect.top < 140) {
- window.scrollBy(0, rect.top - 200)
- } else if (rect.top < window.innerHeight && rect.height >= (window.innerHeight - 50)) {
- window.scrollBy(0, rect.top - 50)
+ if (rect.top < 100) {
+ // Post is above screen, match its top to screen top
+ window.scrollBy(0, rect.top - 100)
+ } else if (rect.height >= (window.innerHeight - 50)) {
+ // Post we want to see is taller than screen so match its top to screen top
+ window.scrollBy(0, rect.top - 100)
} else if (rect.bottom > window.innerHeight - 50) {
+ // Post is below screen, match its bottom to screen bottom
window.scrollBy(0, rect.bottom - window.innerHeight + 50)
}
}