Add react i18next to console
Signed-off-by: Jonathan <contact@grafikart.fr>
This commit is contained in:
@@ -28,49 +28,6 @@ export const DURATION_UNITS: { value: string; label: string; singular: string; s
|
||||
{ value: "years", label: "years", singular: "year", seconds: 31536000, snap: 21 * 24 * 3600 },
|
||||
] as const;
|
||||
|
||||
// Tracker types whose data persists until explicitly cleared. When such a
|
||||
// tracker has no max-age, its lifetime is "persistent" rather than "session"
|
||||
// (cookies and session storage are cleared when the session/tab ends).
|
||||
const PERSISTENT_TRACKER_TYPES = new Set([
|
||||
"LOCAL_STORAGE",
|
||||
"INDEXED_DB",
|
||||
"CACHE_STORAGE",
|
||||
]);
|
||||
|
||||
export function humanizeSeconds(
|
||||
seconds: number | null,
|
||||
trackerType?: string | null,
|
||||
): string {
|
||||
if (seconds === null || seconds <= 0) {
|
||||
return trackerType && PERSISTENT_TRACKER_TYPES.has(trackerType)
|
||||
? "persistent"
|
||||
: "session";
|
||||
}
|
||||
|
||||
let remaining = seconds;
|
||||
const parts: string[] = [];
|
||||
|
||||
for (const {label, singular, seconds: durationInSeconds, snap} of [...DURATION_UNITS].reverse()) {
|
||||
if (remaining >= durationInSeconds - snap) {
|
||||
let count = Math.floor(remaining / durationInSeconds);
|
||||
const leftover = remaining - count * durationInSeconds;
|
||||
|
||||
if (leftover >= durationInSeconds - snap) {
|
||||
count++;
|
||||
remaining = 0;
|
||||
} else if (leftover <= snap) {
|
||||
remaining = 0;
|
||||
} else {
|
||||
remaining = leftover;
|
||||
}
|
||||
|
||||
parts.push(`${count} ${count === 1 ? singular : label}`);
|
||||
}
|
||||
}
|
||||
|
||||
return parts.length > 0 ? parts.join(", ") : "session";
|
||||
}
|
||||
|
||||
export function toMaxAgeSeconds(value: string, unit: string): number | null {
|
||||
const trimmed = value.trim();
|
||||
if (trimmed === "" || !/^\d+(\.\d+)?$/.test(trimmed)) return null;
|
||||
|
||||
Reference in New Issue
Block a user