Files
artsite/types.ts
2025-02-07 19:14:38 +01:00

185 lines
4.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
interface WakatimeData {
name: string
percent: number
}
export interface Stats {
coding: {
data: {
grand_total: {
total_seconds_including_other_language: number
}
range: {
start: string
}
}
}
editors: {
data: Array<WakatimeData>
}
os: {
data: Array<WakatimeData>
}
languages: {
data: Array<WakatimeData>
}
}
interface LanyardActivity {
name: string
state: string
details: string
timestamps: {
start: number
}
}
export interface Activity {
data: {
activities: Array<LanyardActivity>
}
}
export const IDEs = [
{ name: 'Visual Studio Code', icon: 'i-logos:visual-studio-code' },
{ name: 'IntelliJ IDEA Ultimate', icon: 'i-logos:intellij-idea' },
{ name: 'WebStorm', icon: 'i-logos:webstorm' },
{ name: 'PyCharm Professional', icon: 'i-logos:pycharm' },
]
export const activityMessages = {
en: {
justNow: 'just now',
past: (n: string) => (n.match(/\d/) ? `${n} ago` : n),
future: (n: string) => (n.match(/\d/) ? `in ${n}` : n),
month: (n: number, past: boolean) =>
n === 1 ? (past ? 'last month' : 'next month') : `${n} month${n > 1 ? 's' : ''}`,
year: (n: number, past: boolean) =>
n === 1 ? (past ? 'last year' : 'next year') : `${n} year${n > 1 ? 's' : ''}`,
day: (n: number, past: boolean) =>
n === 1 ? (past ? 'yesterday' : 'tomorrow') : `${n} day${n > 1 ? 's' : ''}`,
week: (n: number, past: boolean) =>
n === 1 ? (past ? 'last week' : 'next week') : `${n} week${n > 1 ? 's' : ''}`,
hour: (n: number) => `${n} hour${n > 1 ? 's' : ''}`,
minute: (n: number) => `${n} minute${n > 1 ? 's' : ''}`,
second: (n: number) => `${n} second${n > 1 ? 's' : ''}`,
invalid: '',
},
fr: {
justNow: 'à linstant',
past: (n: string) => (n.match(/\d/) ? `il y a ${n}` : n),
future: (n: string) => (n.match(/\d/) ? `dans ${n}` : n),
month: (n: number, past: boolean) =>
n === 1 ? (past ? 'le mois dernier' : 'le mois prochain') : `${n} mois`,
year: (n: number, past: boolean) =>
n === 1 ? (past ? 'lannée dernière' : 'lannée prochaine') : `${n} ans`,
day: (n: number, past: boolean) =>
n === 1 ? (past ? 'hier' : 'demain') : `${n} jours`,
week: (n: number, past: boolean) =>
n === 1 ? (past ? 'la semaine dernière' : 'la semaine prochaine') : `${n} semaines`,
hour: (n: number) => `${n} heure${n > 1 ? 's' : ''}`,
minute: (n: number) => `${n} minute${n > 1 ? 's' : ''}`,
second: (n: number) => `${n} seconde${n > 1 ? 's' : ''}`,
invalid: '',
},
es: {
justNow: 'justo ahora',
past: (n: string) => (n.match(/\d/) ? `hace ${n}` : n),
future: (n: string) => (n.match(/\d/) ? `dentro de ${n}` : n),
month: (n: number, past: boolean) =>
n === 1 ? (past ? 'el mes pasado' : 'el próximo mes') : `${n} meses`,
year: (n: number, past: boolean) =>
n === 1 ? (past ? 'el año pasado' : 'el próximo año') : `${n} años`,
day: (n: number, past: boolean) =>
n === 1 ? (past ? 'ayer' : 'mañana') : `${n} días`,
week: (n: number, past: boolean) =>
n === 1 ? (past ? 'la semana pasada' : 'la próxima semana') : `${n} semanas`,
hour: (n: number) => `${n} hora${n > 1 ? 's' : ''}`,
minute: (n: number) => `${n} minuto${n > 1 ? 's' : ''}`,
second: (n: number) => `${n} segundo${n > 1 ? 's' : ''}`,
invalid: '',
},
}
export interface Tag {
label: string
icon: string
color: string
title?: string
translation: string
}
export const TAGS: Array<Tag> = [
{
label: 'Article',
icon: 'i-ph-pencil-line-duotone',
color: 'red',
translation: 'tags.article',
},
{
label: 'Project',
icon: 'i-ph-briefcase-duotone',
color: 'blue',
translation: 'tags.project',
},
{
label: 'R',
icon: 'i-vscode-icons-file-type-r',
color: 'orange',
translation: 'tags.r',
},
{
label: 'AI',
icon: 'i-ph-brain-duotone',
color: 'green',
translation: 'tags.ai',
},
{
label: 'Data',
icon: 'i-ph-database-duotone',
color: 'purple',
translation: 'tags.data',
},
{
label: 'Web',
icon: 'i-ph-globe-duotone',
color: 'cyan',
translation: 'tags.web',
},
{
label: 'Python',
icon: 'i-vscode-icons-file-type-python',
color: 'amber',
translation: 'tags.python',
},
{
label: 'Maths',
icon: 'i-ph-calculator-duotone',
color: 'pink',
translation: 'tags.maths',
},
]
export const socials = [
{
icon: 'i-ph:x-logo-duotone',
label: 'Twitter',
to: 'https://twitter.com/ArthurDanj',
},
{
icon: 'i-ph:github-logo-duotone',
label: 'GitHub',
to: 'https://github.com/ArthurDanjou',
},
{
icon: 'i-ph:linkedin-logo-duotone',
label: 'LinkedIn',
to: 'https://www.linkedin.com/in/arthurdanjou/',
},
{
icon: 'i-ph:discord-logo-duotone',
label: 'Discord',
to: 'https://discordapp.com/users/179635349100691456',
},
]