1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Migrate some easy components to ES6

This commit is contained in:
Cameron Cordes 2020-03-19 21:20:47 -04:00
parent 37ebb772e8
commit f3b5c804a3
5 changed files with 256 additions and 267 deletions

View file

@ -70,11 +70,23 @@
"whatwg-fetch": "^3.0.0"
},
"babel": {
"presets": ["@babel/preset-env"],
"overrides": [{
"test": ["src/components/cardbuilder/cardBuilder.js"],
"plugins": ["@babel/plugin-transform-modules-amd"]
}]
"presets": [
"@babel/preset-env"
],
"overrides": [
{
"test": [
"src/components/cardbuilder/cardBuilder.js",
"src/components/filedownloader.js",
"src/components/filesystem.js",
"src/components/input/keyboardnavigation.js",
"src/components/sanatizefilename.js"
],
"plugins": [
"@babel/plugin-transform-modules-amd"
]
}
]
},
"browserslist": [
"last 2 Firefox versions",

View file

@ -1,8 +1,6 @@
define(['multi-download'], function (multiDownload) {
'use strict';
import multiDownload from "multi-download"
return {
download: function (items) {
export function download(items) {
if (window.NativeShell) {
items.map(function (item) {
@ -14,5 +12,3 @@ define(['multi-download'], function (multiDownload) {
}));
}
}
};
});

View file

@ -1,18 +1,13 @@
define([], function () {
'use strict';
return {
fileExists: function (path) {
export function fileExists(path) {
if (window.NativeShell && window.NativeShell.FileSystem) {
return window.NativeShell.FileSystem.fileExists(path);
}
return Promise.reject();
},
directoryExists: function (path) {
}
export function directoryExists(path) {
if (window.NativeShell && window.NativeShell.FileSystem) {
return window.NativeShell.FileSystem.directoryExists(path);
}
return Promise.reject();
}
};
});

View file

@ -1,11 +1,10 @@
define(["inputManager", "layoutManager"], function (inputManager, layoutManager) {
"use strict";
import inputManager from "inputManager";
import layoutManager from "layoutManager";
/**
* Key name mapping.
*/
// Add more to support old browsers
var KeyNames = {
const KeyNames = {
13: "Enter",
19: "Pause",
27: "Escape",
@ -37,9 +36,9 @@ define(["inputManager", "layoutManager"], function (inputManager, layoutManager)
/**
* Keys used for keyboard navigation.
*/
var NavigationKeys = ["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"];
const NavigationKeys = ["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"];
var hasFieldKey = false;
let hasFieldKey = false;
try {
hasFieldKey = "key" in new KeyboardEvent("keydown");
} catch (e) {
@ -48,7 +47,7 @@ define(["inputManager", "layoutManager"], function (inputManager, layoutManager)
if (!hasFieldKey) {
// Add [a..z]
for (var i = 65; i <= 90; i++) {
for (let i = 65; i <= 90; i++) {
KeyNames[i] = String.fromCharCode(i).toLowerCase();
}
}
@ -56,10 +55,10 @@ define(["inputManager", "layoutManager"], function (inputManager, layoutManager)
/**
* Returns key name from event.
*
* @param {KeyboardEvent} keyboard event
* @param {KeyboardEvent} event keyboard event
* @return {string} key name
*/
function getKeyName(event) {
export function getKeyName(event) {
return KeyNames[event.keyCode] || event.key;
}
@ -69,20 +68,20 @@ define(["inputManager", "layoutManager"], function (inputManager, layoutManager)
* @param {string} key name
* @return {boolean} _true_ if key is used for navigation
*/
function isNavigationKey(key) {
export function isNavigationKey(key) {
return NavigationKeys.indexOf(key) != -1;
}
function enable() {
export function enable() {
document.addEventListener("keydown", function (e) {
var key = getKeyName(e);
const key = getKeyName(e);
// Ignore navigation keys for non-TV
if (!layoutManager.tv && isNavigationKey(key)) {
return;
}
var capture = true;
let capture = true;
switch (key) {
case "ArrowLeft":
@ -156,10 +155,3 @@ define(["inputManager", "layoutManager"], function (inputManager, layoutManager)
// No need to check for gamepads manually at load time, the eventhandler will be fired for that
window.addEventListener("gamepadconnected", attachGamepadScript);
return {
enable: enable,
getKeyName: getKeyName,
isNavigationKey: isNavigationKey
};
});

View file

@ -1,14 +1,11 @@
// From https://github.com/parshap/node-sanitize-filename
define([], function () {
'use strict';
var illegalRe = /[\/\?<>\\:\*\|":]/g;
const illegalRe = /[\/\?<>\\:\*\|":]/g;
// eslint-disable-next-line no-control-regex
var controlRe = /[\x00-\x1f\x80-\x9f]/g;
var reservedRe = /^\.+$/;
var windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;
var windowsTrailingRe = /[\. ]+$/;
const controlRe = /[\x00-\x1f\x80-\x9f]/g;
const reservedRe = /^\.+$/;
const windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;
const windowsTrailingRe = /[\. ]+$/;
function isHighSurrogate(codePoint) {
return codePoint >= 0xd800 && codePoint <= 0xdbff;
@ -23,11 +20,11 @@ define([], function () {
throw new Error("Input must be string");
}
var charLength = string.length;
var byteLength = 0;
var codePoint = null;
var prevCodePoint = null;
for (var i = 0; i < charLength; i++) {
const charLength = string.length;
let byteLength = 0;
let codePoint = null;
let prevCodePoint = null;
for (let i = 0; i < charLength; i++) {
codePoint = string.charCodeAt(i);
// handle 4-byte non-BMP chars
// low surrogate
@ -56,12 +53,12 @@ define([], function () {
throw new Error("Input must be string");
}
var charLength = string.length;
var curByteLength = 0;
var codePoint;
var segment;
const charLength = string.length;
let curByteLength = 0;
let codePoint;
let segment;
for (var i = 0; i < charLength; i += 1) {
for (let i = 0; i < charLength; i += 1) {
codePoint = string.charCodeAt(i);
segment = string[i];
@ -82,9 +79,8 @@ define([], function () {
return string;
}
return {
sanitize: function (input, replacement) {
var sanitized = input
export function sanitize(input, replacement) {
const sanitized = input
.replace(illegalRe, replacement)
.replace(controlRe, replacement)
.replace(reservedRe, replacement)
@ -92,5 +88,3 @@ define([], function () {
.replace(windowsTrailingRe, replacement);
return truncate(sanitized, 255);
}
};
});