feat: Rewind (#116)

* wip

* chore: update counts to allow unix timeframe

* feat: add db functions for counting new items

* wip: endpoint working

* wip

* wip: initial ui done

* add header, adjust ui

* add time listened toggle

* fix layout, year param

* param fixes
This commit is contained in:
Gabe Farrell 2025-12-31 18:44:55 -05:00 committed by GitHub
parent c0a8c64243
commit d4ac96f780
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
64 changed files with 2252 additions and 1055 deletions

View file

@ -15,6 +15,16 @@ const timeframeToInterval = (timeframe: Timeframe): string => {
}
};
const getRewindYear = (): number => {
const today = new Date();
if (today.getMonth() > 10 && today.getDate() >= 30) {
// if we are in december 30/31, just serve current year
return today.getFullYear();
} else {
return today.getFullYear() - 1;
}
};
function timeSince(date: Date) {
const now = new Date();
const seconds = Math.floor((now.getTime() - date.getTime()) / 1000);
@ -104,5 +114,5 @@ const timeListenedString = (seconds: number) => {
return `${minutes} minutes listened`;
};
export { hexToHSL, timeListenedString };
export { hexToHSL, timeListenedString, getRewindYear };
export type { hsl };