Fix delay on updating 'Online For' when opening user dialog

I don't like or understand Vue
This commit is contained in:
Natsumi
2020-12-17 20:24:11 +13:00
committed by pypy
parent 8a0a25309f
commit 74fa583b99
2 changed files with 41 additions and 5 deletions

View File

@@ -7600,6 +7600,45 @@ import gameLogService from './service/gamelog.js'
});
};
$app.methods.onlineFor = function (ctx) {
var timeToText = function (sec) {
var n = Number(sec);
if (isNaN(n)) {
return escapeTag(sec);
}
n = Math.floor(n / 1000);
var arr = [];
if (n < 0) {
n = -n;
}
if (n >= 86400) {
arr.push(`${Math.floor(n / 86400)}d`);
n %= 86400;
}
if (n >= 3600) {
arr.push(`${Math.floor(n / 3600)}h`);
n %= 3600;
}
if (n >= 60) {
arr.push(`${Math.floor(n / 60)}m`);
n %= 60;
}
if (n ||
arr.length === 0) {
arr.push(`${n}s`);
}
return arr.join(' ');
};
if (ctx.ref.state === 'online') {
return timeToText(Date.now() - ctx.ref.$online_for)
} else if (ctx.ref.$offline_for) {
return timeToText(Date.now() - ctx.ref.$offline_for)
} else {
return '-';
}
};
$app = new Vue($app);
window.$app = $app;
})();

View File

@@ -772,12 +772,9 @@ html
span.extra(v-else style="color:#F56C6C") Deny
.x-friend-item
.detail
span.name(v-if="userDialog.ref.state != 'offline' && userDialog.ref.state != 'active' && userDialog.ref.state != ''") Online For
span.name(v-if="userDialog.ref.state === 'online'") Online For
span.name(v-else) Offline For
span.extra
timer(v-if="userDialog.ref.state != 'offline' && userDialog.ref.state != 'active' && userDialog.ref.state != ''" :epoch="userDialog.ref.$online_for")
timer(v-else-if="userDialog.ref.$offline_for" :epoch="userDialog.ref.$offline_for")
span(v-else) -
span.extra(v-text="onlineFor(userDialog)")
.x-friend-item
.detail
span.name Last Login