[Glitch] fix: support KaiOS arrow navigation on public pages
Port 1e232e455c
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
pull/1242/head
parent
734181c3bf
commit
ec567337dc
|
@ -1,5 +1,6 @@
|
||||||
import loadPolyfills from 'flavours/glitch/util/load_polyfills';
|
import loadPolyfills from 'flavours/glitch/util/load_polyfills';
|
||||||
import ready from 'flavours/glitch/util/ready';
|
import ready from 'flavours/glitch/util/ready';
|
||||||
|
import loadKeyboardExtensions from 'flavours/glitch/util/load_keyboard_extensions';
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
const IntlMessageFormat = require('intl-messageformat').default;
|
const IntlMessageFormat = require('intl-messageformat').default;
|
||||||
|
@ -118,6 +119,9 @@ function main() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
loadPolyfills().then(main).catch(error => {
|
loadPolyfills()
|
||||||
console.error(error);
|
.then(main)
|
||||||
});
|
.then(loadKeyboardExtensions)
|
||||||
|
.catch(error => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import loadPolyfills from 'flavours/glitch/util/load_polyfills';
|
import loadPolyfills from 'flavours/glitch/util/load_polyfills';
|
||||||
import ready from 'flavours/glitch/util/ready';
|
import ready from 'flavours/glitch/util/ready';
|
||||||
|
import loadKeyboardExtensions from 'flavours/glitch/util/load_keyboard_extensions';
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
const { delegate } = require('rails-ujs');
|
const { delegate } = require('rails-ujs');
|
||||||
|
@ -15,6 +16,9 @@ function main() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
loadPolyfills().then(main).catch(error => {
|
loadPolyfills()
|
||||||
console.error(error);
|
.then(main)
|
||||||
});
|
.then(loadKeyboardExtensions)
|
||||||
|
.catch(error => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
Loading…
Reference in New Issue