focus container on page load (#116)

* focus container on page load

* only focus container on first page load

* add test for container focus on page load

* fix typo
This commit is contained in:
Maxime Le Conte des Floris 2018-04-17 18:42:10 +02:00 committed by Nolan Lawson
parent 8cdfdd9bc6
commit eef54e992b
2 changed files with 18 additions and 2 deletions

View File

@ -1,6 +1,6 @@
<Nav :page />
<div class="container">
<div class="container" tabindex="0" ref:container>
<main>
<slot></slot>
</main>
@ -13,11 +13,23 @@
import { store } from '../_store/store'
import InformationalFooter from './InformationalFooter.html'
// Only focus the `.container` div on first load so it does not intefere
// with other desired behaviours (e.g. you click a toot, you navigate from
// a timeline view to a thread view, you press the back button, and now
// you're still focused on the toot).
let firstTime = true
export default {
components: {
Nav,
InformationalFooter
},
},
oncreate () {
if (firstTime) {
firstTime = false
this.refs.container.focus()
}
},
store: () => store
}
</script>

View File

@ -83,3 +83,7 @@ test('reply preserves focus and moves focus to the text input', async t => {
.click(getNthReplyButton(1))
.expect(getActiveElementClass()).contains('compose-box-input')
})
test('focus .container div on index page load', async t => {
await t.expect(getActiveElementClass()).contains('container')
})