chore: optimize StatusDateGroupLabel some more

since this component is performance critical, optimize it some more by
extracting some common constants so that they don't have to revaluted
every time
This commit is contained in:
Lukáš Tinkl 2023-01-20 16:34:30 +01:00 committed by Lukáš Tinkl
parent a55a207bb2
commit a8a3f5285e

View File

@ -1,7 +1,6 @@
import QtQuick 2.14
import StatusQ.Core 0.1
import StatusQ.Core.Utils 0.1
import StatusQ.Core.Theme 0.1
StatusBaseText {
@ -10,6 +9,10 @@ StatusBaseText {
property double previousMessageTimestamp
property double messageTimestamp
readonly property int msInADay: 86400000
readonly property int lastMessageInDays: Math.floor(previousMessageTimestamp / msInADay)
readonly property int currentMessageInDays: Math.floor(messageTimestamp / msInADay)
font.pixelSize: 13
color: Theme.palette.baseColor1
horizontalAlignment: Text.AlignHCenter
@ -18,20 +21,9 @@ StatusBaseText {
if (messageTimestamp === 0)
return ""
const msInADay = 86400000
const lastMessageInDays = Math.floor(previousMessageTimestamp / msInADay)
const currentMessageInDays = Math.floor(messageTimestamp / msInADay)
if(previousMessageTimestamp > 0 && currentMessageInDays <= lastMessageInDays)
return ""
let date = new Date()
const currentYear = date.getFullYear()
date.setTime(messageTimestamp)
// FIXME Qt6: replace with Intl.DateTimeFormat
const monthName = Qt.locale().standaloneMonthName(date.getMonth(), Locale.LongFormat)
if (currentYear > date.getFullYear())
return "%1 %2, %3".arg(monthName).arg(date.getDate()).arg(date.getFullYear())
return "%1, %2".arg(monthName).arg(date.getDate())
return LocaleUtils.formatDate(messageTimestamp)
}
}