fix: support KaiOS arrow navigation on public pages (#12251)
This commit is contained in:
parent
e37358b3bc
commit
1e232e455c
4 changed files with 29 additions and 3 deletions
16
app/javascript/mastodon/load_keyboard_extensions.js
Normal file
16
app/javascript/mastodon/load_keyboard_extensions.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
// On KaiOS, we may not be able to use a mouse cursor or navigate using Tab-based focus, so we install
|
||||
// special left/right focus navigation keyboard listeners, at least on public pages (i.e. so folks
|
||||
// can at least log in using KaiOS devices).
|
||||
|
||||
function importArrowKeyNavigation() {
|
||||
return import(/* webpackChunkName: "arrow-key-navigation" */ 'arrow-key-navigation');
|
||||
}
|
||||
|
||||
export default function loadKeyboardExtensions() {
|
||||
if (/KAIOS/.test(navigator.userAgent)) {
|
||||
return importArrowKeyNavigation().then(arrowKeyNav => {
|
||||
arrowKeyNav.register();
|
||||
});
|
||||
}
|
||||
return Promise.resolve();
|
||||
}
|
|
@ -2,6 +2,7 @@ import escapeTextContentForBrowser from 'escape-html';
|
|||
import loadPolyfills from '../mastodon/load_polyfills';
|
||||
import ready from '../mastodon/ready';
|
||||
import { start } from '../mastodon/common';
|
||||
import loadKeyboardExtensions from '../mastodon/load_keyboard_extensions';
|
||||
|
||||
start();
|
||||
|
||||
|
@ -259,6 +260,9 @@ function main() {
|
|||
});
|
||||
}
|
||||
|
||||
loadPolyfills().then(main).catch(error => {
|
||||
console.error(error);
|
||||
});
|
||||
loadPolyfills()
|
||||
.then(main)
|
||||
.then(loadKeyboardExtensions)
|
||||
.catch(error => {
|
||||
console.error(error);
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue