Use strings utility

This commit is contained in:
Arnaud 2024-09-23 22:48:02 +02:00
parent 4cabe251e3
commit d2fd744189
No known key found for this signature in database
GPG Key ID: 69D6CE281FCAE663
3 changed files with 64 additions and 2 deletions

View File

@ -1,8 +1,8 @@
import { Codex } from "@codex-storage/sdk-js";
import { WebStorage } from "../utils/web-storage";
let client: Codex;
let url: string;
let client: Codex = new Codex(import.meta.env.VITE_CODEX_API_URL);
let url: string = import.meta.env.VITE_CODEX_API_URL;
export const CodexSdk = {
url() {

3
src/utils/strings.ts Normal file
View File

@ -0,0 +1,3 @@
export const Strings = {
shortId: (id: string) => id.slice(0, 5) + "..." + id.slice(-5),
};

59
src/utils/times.ts Normal file
View File

@ -0,0 +1,59 @@
export type TimesUnit =
| "days"
| "months"
| "years"
| "minutes"
| "hours"
| "seconds";
const plural = (value: number, unit: TimesUnit) =>
value > 1 ? value + ` ${unit}` : value + ` ${unit.slice(0, -1)}`;
export const Times = {
toSeconds(value: number, unit: TimesUnit) {
let seconds = value;
switch (unit) {
case "years":
seconds *= 365;
case "months":
seconds *= 30;
case "days":
seconds *= 24;
case "hours":
seconds *= 60;
case "minutes":
seconds *= 60;
}
return seconds;
},
pretty(value: number) {
let seconds = 365 * 30 * 24 * 60 * 60;
if (value >= seconds) {
return plural(value / seconds, "years");
}
seconds /= 365;
if (value >= seconds) {
return plural(value / seconds, "months");
}
seconds /= 30;
if (value >= seconds) {
return plural(value / seconds, "days");
}
seconds /= 24;
if (value >= seconds) {
return plural(value / seconds, "hours");
}
seconds /= 60;
if (value >= seconds) {
return plural(value / seconds, "minutes");
}
return plural(value, "seconds");
},
};