feat(index.js): sort titles alphabetically

This commit is contained in:
Ryan Mackey 2017-10-16 22:53:54 -05:00
parent e0c4c01e44
commit 9527750205

View File

@ -6,7 +6,6 @@ var api; // `api` should only be set if we're in a host-specific screen. on the
var isInGame = false; // flag indicating whether the game stream started var isInGame = false; // flag indicating whether the game stream started
var windowState = 'normal'; // chrome's windowState, possible values: 'normal' or 'fullscreen' var windowState = 'normal'; // chrome's windowState, possible values: 'normal' or 'fullscreen'
// Called by the common.js module. // Called by the common.js module.
function attachListeners() { function attachListeners() {
changeUiModeForNaClLoad(); changeUiModeForNaClLoad();
@ -410,6 +409,26 @@ function stylizeBoxArt(freshApi, appIdToStylize) {
} }
} }
function sortTitles(list, sortOrder) {
return list.sort((a, b) => {
const titleA = a.title.toLowerCase();
const titleB = b.title.toLowerCase();
// A - Z
if (sortOrder === 'ASC') {
if (titleA < titleB) { return -1; }
if (titleA > titleB) { return 1; }
return 0;
}
// Z - A
if (sortOrder === 'DESC') {
if (titleA < titleB) { return 1; }
if (titleA > titleB) { return -1; }
return 0; }
});
}
// show the app list // show the app list
function showApps(host) { function showApps(host) {
if(!host || !host.paired) { // safety checking. shouldn't happen. if(!host || !host.paired) { // safety checking. shouldn't happen.
@ -431,7 +450,9 @@ function showApps(host) {
$('#naclSpinner').hide(); $('#naclSpinner').hide();
$("#game-grid").show(); $("#game-grid").show();
appList.forEach(function (app) { const sortedAppList = sortTitles(appList, 'ASC');
sortedAppList.forEach(function (app) {
host.getBoxArt(app.id).then(function (resolvedPromise) { host.getBoxArt(app.id).then(function (resolvedPromise) {
// put the box art into the image holder // put the box art into the image holder
if ($('#game-' + app.id).length === 0) { if ($('#game-' + app.id).length === 0) {