16 lines
543 B
TypeScript
16 lines
543 B
TypeScript
import type {Directive} from 'vue'
|
|
|
|
const focus = <Directive<HTMLElement,string>>{
|
|
// When the bound element is inserted into the DOM...
|
|
mounted(el, {modifiers}) {
|
|
// Focus the element only if the viewport is big enough
|
|
// auto focusing elements on mobile can be annoying since in these cases the
|
|
// keyboard always pops up and takes half of the available space on the screen.
|
|
// The threshhold is the same as the breakpoints in css.
|
|
if (window.innerWidth > 769 || modifiers?.always) {
|
|
el.focus()
|
|
}
|
|
},
|
|
}
|
|
|
|
export default focus |