Commit dd6a279d35c61c3c1a36d453b6e27af326a3fc67
rename "scroll" to "keyboardScroll" (was colliding with native scroll API)
mixmix committed on 11/23/2018, 4:06:16 AMParent: 6d8b19c2ddca9ab63af6775ccb64d0942a23d808
Files changed
app/html/filter.js | changed |
app/html/scroller.js | changed |
app/page/calendar.js | changed |
app/page/channel.js | changed |
app/page/postRank.js | changed |
app/page/posts.js | changed |
app/page/private.js | changed |
app/sync/catch-keyboard-shortcut.js | changed |
app/html/filter.js | ||
---|---|---|
@@ -236,9 +236,9 @@ | ||
236 | 236 … | } |
237 | 237 … | upScrollAborter = Abort() |
238 | 238 … | downScrollAborter = Abort() |
239 | 239 … | |
240 | - container.scroll(0) | |
240 … | + container.keyboardScroll(0) | |
241 | 241 … | content.innerHTML = '' |
242 | 242 … | } |
243 | 243 … | |
244 | 244 … | return { |
app/html/scroller.js | |||
---|---|---|---|
@@ -26,18 +26,18 @@ | |||
26 | 26 … | append ? h('section.bottom', append) : null | |
27 | 27 … | ] | |
28 | 28 … | ) | |
29 | 29 … | ||
30 | - container.scroll = keyscroll(contentSection, scrollIntoView) | ||
30 … | + container.keyboardScroll = KeyboardScroll(contentSection, scrollIntoView) | ||
31 | 31 … | ||
32 | 32 … | return { | |
33 | 33 … | content: contentSection, | |
34 | 34 … | container | |
35 | 35 … | } | |
36 | 36 … | } | |
37 | 37 … | } | |
38 | 38 … | ||
39 | -function keyscroll (content, scrollIntoView = false) { | ||
39 … | +function KeyboardScroll (content, scrollIntoView = false) { | ||
40 | 40 … | var curMsgEl | |
41 | 41 … | ||
42 | 42 … | if (!content) return () => {} | |
43 | 43 … | ||
@@ -58,9 +58,11 @@ | |||
58 | 58 … | : (!curMsgEl || d === 'last') ? content.lastChild | |
59 | 59 … | : d < 0 ? curMsgEl.previousElementSibling || content.firstChild | |
60 | 60 … | : d > 0 ? curMsgEl.nextElementSibling || content.lastChild | |
61 | 61 … | : curMsgEl | |
62 … | + | ||
62 | 63 … | selectChild(child) | |
64 … | + curMsgEl = child | ||
63 | 65 … | ||
64 | 66 … | return curMsgEl | |
65 | 67 … | } | |
66 | 68 … | ||
@@ -70,11 +72,12 @@ | |||
70 | 72 … | if (scrollIntoView) { | |
71 | 73 … | if (!el.scrollIntoViewIfNeeded && !el.scrollIntoView) return | |
72 | 74 … | ;(el.scrollIntoViewIfNeeded || el.scrollIntoView).call(el) | |
73 | 75 … | } else { | |
74 | - content.parentElement.scrollTop = el.offsetTop - content.parentElement.offsetTop - 10 | ||
76 … | + const height = el.offsetTop - content.parentElement.offsetTop - 10 | ||
77 … | + // content.parentElement.scroll({ top: height, behavior: 'smooth' }) | ||
78 … | + content.parentElement.scrollTop = height | ||
75 | 79 … | } | |
76 | 80 … | ||
77 | 81 … | if (el.focus) el.focus() | |
78 | - curMsgEl = el | ||
79 | 82 … | } | |
80 | 83 … | } |
app/page/calendar.js | ||
---|---|---|
@@ -56,9 +56,9 @@ | ||
56 | 56 … | Calendar(state, actions), |
57 | 57 … | Events(state, api) |
58 | 58 … | ]) |
59 | 59 … | |
60 | - page.scroll = (i) => scroll(state.range, i) | |
60 … | + page.keyboardScroll = (i) => scroll(state.range, i) | |
61 | 61 … | |
62 | 62 … | return page |
63 | 63 … | } |
64 | 64 … |
app/page/channel.js | ||
---|---|---|
@@ -69,9 +69,9 @@ | ||
69 | 69 … | container |
70 | 70 … | ]) |
71 | 71 … | |
72 | 72 … | // TODO better scroll hack for keyboard shortcuts |
73 | - page.scroll = container.scroll | |
73 … | + page.keyboardScroll = container.keyboardScroll | |
74 | 74 … | |
75 | 75 … | return page |
76 | 76 … | } |
77 | 77 … | } |
app/page/postRank.js | ||
---|---|---|
@@ -150,9 +150,9 @@ | ||
150 | 150 … | const { container, content } = api.app.html.scroller({ prepend: top }) |
151 | 151 … | |
152 | 152 … | function draw () { |
153 | 153 … | // reset |
154 | - container.scroll(0) | |
154 … | + container.keyboardScroll(0) | |
155 | 155 … | content.innerHTML = '' |
156 | 156 … | |
157 | 157 … | getPosts(channelPostBoost, friendPostBoost, friendVoteBoost, friendCommentBoost, threshold, |
158 | 158 … | (msgs) => { |
app/page/posts.js | ||
---|---|---|
@@ -89,9 +89,9 @@ | ||
89 | 89 … | if (state.sort === BY_START) page = PageByStart(state) |
90 | 90 … | |
91 | 91 … | page.title = '/posts' |
92 | 92 … | page.id = api.app.sync.locationId({ page: 'posts' }) // this is needed because our page is a computed |
93 | - page.scroll = keyscroll(page.querySelector('section.content')) | |
93 … | + page.keyboardScroll = keyscroll(page.querySelector('section.content')) | |
94 | 94 … | return page |
95 | 95 … | }) |
96 | 96 … | |
97 | 97 … | function PageByUpdate (state) { |
app/page/private.js | ||
---|---|---|
@@ -46,24 +46,24 @@ | ||
46 | 46 … | content.recps = [id, ...(content.mentions || [])] |
47 | 47 … | .filter(m => ref.isFeed(typeof m === 'string' ? m : m.link)) |
48 | 48 … | return content |
49 | 49 … | }, |
50 | - placeholder: 'Write a private message. \n\n@mention users in the first message to start a private thread.'} | |
50 … | + placeholder: 'Write a private message. \n\n@mention users in the first message to start a private thread.' } | |
51 | 51 … | ) |
52 | 52 … | const { filterMenu, filterDownThrough, filterUpThrough, resetFeed } = api.app.html.filter(draw) |
53 | 53 … | const { container, content } = api.app.html.scroller({ prepend: [ composer, filterMenu ] }) |
54 | 54 … | |
55 | 55 … | function draw () { |
56 | 56 … | resetFeed({ container, content }) |
57 | 57 … | |
58 | 58 … | pull( |
59 | - pullPrivate({old: false, live: true}), | |
59 … | + pullPrivate({ old: false, live: true }), | |
60 | 60 … | filterDownThrough(), |
61 | 61 … | Scroller(container, content, api.message.html.render, true, false) |
62 | 62 … | ) |
63 | 63 … | |
64 | 64 … | pull( |
65 | - pullPrivate({reverse: true}), | |
65 … | + pullPrivate({ reverse: true }), | |
66 | 66 … | filterUpThrough(), |
67 | 67 … | Scroller(container, content, api.message.html.render, false, false) |
68 | 68 … | ) |
69 | 69 … | } |
@@ -75,12 +75,12 @@ | ||
75 | 75 … | |
76 | 76 … | function pullPrivate (opts) { |
77 | 77 … | const query = [{ |
78 | 78 … | $filter: { |
79 | - timestamp: {$gt: 0}, | |
79 … | + timestamp: { $gt: 0 }, | |
80 | 80 … | value: { |
81 | 81 … | content: { |
82 | - recps: {$truthy: true} | |
82 … | + recps: { $truthy: true } | |
83 | 83 … | } |
84 | 84 … | } |
85 | 85 … | } |
86 | 86 … | }] |
app/sync/catch-keyboard-shortcut.js | ||
---|---|---|
@@ -48,9 +48,9 @@ | ||
48 | 48 … | const currentPage = tabs.currentPage() |
49 | 49 … | // TODO change this scroll API - it seems some pages |
50 | 50 … | // (e.g. Dark Crystal Index) has scroll defined and expect an object |
51 | 51 … | if (currentPage) { |
52 | - scroll = currentPage.scroll | |
52 … | + scroll = currentPage.keyboardScroll || noop | |
53 | 53 … | } else { |
54 | 54 … | scroll = noop |
55 | 55 … | } |
56 | 56 … |
Built with git-ssb-web