X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fhelpers%2FResult.js;h=329116d245515ffa0f3603d599a620388443156e;hb=816690cc4fadff954f4407999550f7feec2884da;hp=205a42b27325050800c4fe55f728f43de1d0c8c0;hpb=8d97d023740e438361e659c6e133418e33343178;p=alttp.git diff --git a/resources/js/helpers/Result.js b/resources/js/helpers/Result.js index 205a42b..329116d 100644 --- a/resources/js/helpers/Result.js +++ b/resources/js/helpers/Result.js @@ -1,6 +1,29 @@ import React from 'react'; import Icon from '../components/common/Icon'; +export const compareResult = (a, b) => { + const a_placement = a && a.placement ? a.placement : 0; + const b_placement = b && b.placement ? b.placement : 0; + if (a_placement) { + if (b_placement) { + if (a_placement < b_placement) return -1; + if (b_placement < a_placement) return 1; + return compareUsername(a, b); + } + return -1; + } + if (b_placement) { + return 1; + } + return compareUsername(a, b); +}; + +export const compareUsername = (a, b) => { + const a_name = (a && a.user && a.user.username) || ''; + const b_name = (b && b.user && b.user.username) || ''; + return a_name.localeCompare(b_name); +}; + export const formatTime = result => { const hours = `${Math.floor(result.time / 60 / 60)}`; let minutes = `${Math.floor((result.time / 60) % 60)}`; @@ -48,10 +71,12 @@ export const getTime = (result, maySee) => { export const parseTime = str => { if (!str) return null; - return `${str}`.split(/[-.: ]+/).reduce((acc,time) => (60 * acc) + +time, 0); + return `${str}`.trim().split(/[-.: ]+/).reduce((acc,time) => (60 * acc) + +time, 0); }; export default { + compareResult, + compareUsername, formatTime, getIcon, getTime,