Skip to content

Commit 96685e1

Browse files
committed
MInor changes and 🍩
1 parent f9f1b72 commit 96685e1

File tree

6 files changed

+87
-14
lines changed

6 files changed

+87
-14
lines changed

next.config.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
/** @type {import('next').NextConfig} */
2-
const nextConfig = {}
2+
const nextConfig = {
3+
i18n: {
4+
locales: ["en", "es"],
5+
defaultLocale: "en",
6+
localeDetection: false
7+
}
8+
}
39

410
module.exports = nextConfig

src/app/page.tsx

+13-5
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ import { Button } from "@/components/ui/button";
99
import { RESUME_DATA } from "@/data/resume-data";
1010
import { ProjectCard } from "@/components/project-card";
1111

12+
import Donut from "@/components/donut";
13+
1214
export const metadata: Metadata = {
1315
title: `${RESUME_DATA.name} | ${RESUME_DATA.about}`,
14-
description: RESUME_DATA.summary,
16+
description: RESUME_DATA.summary["en"],
1517
};
1618

1719
export default function Page() {
@@ -22,7 +24,7 @@ export default function Page() {
2224
<div className="flex-1 space-y-1.5">
2325
<h1 className="text-2xl font-bold">{RESUME_DATA.name}</h1>
2426
<p className="max-w-md text-pretty font-mono text-sm text-muted-foreground print:text-[12px]">
25-
{RESUME_DATA.about}
27+
{RESUME_DATA.about["en"]}
2628
</p>
2729
<p className="max-w-md items-center text-pretty font-mono text-xs text-muted-foreground">
2830
<a
@@ -95,16 +97,16 @@ export default function Page() {
9597
<Section>
9698
<h2 className="text-xl font-bold">About</h2>
9799
<p className="text-pretty font-mono text-sm text-muted-foreground print:text-[12px]">
98-
{RESUME_DATA.summary}
100+
{RESUME_DATA.summary["en"]}
99101
</p>
100102
</Section>
101103
<Section>
102104
<h2 className="text-xl font-bold">Competitions</h2>
103105
<div className="flex flex-wrap gap-1">
104106
{RESUME_DATA.competitions.map((skill) => {
105107
return (
106-
<Badge className="print:text-[10px]" key={skill}>
107-
{skill}
108+
<Badge className="print:text-[10px]" key={skill["en"]}>
109+
{skill["en"]}
108110
</Badge>
109111
);
110112
})}
@@ -202,6 +204,12 @@ export default function Page() {
202204
})}
203205
</div>
204206
</Section>
207+
<div className="w-full flex items-center justify-center print:hidden">
208+
<Donut
209+
frameInterval={32}
210+
scaleX={2}
211+
/>
212+
</div>
205213
</section>
206214

207215
<CommandMenu

src/components/command-menu.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ export const CommandMenu = ({ links }: Props) => {
3535

3636
return (
3737
<>
38-
<p className="fixed bottom-0 left-0 right-0 hidden border-t border-t-muted bg-white p-1 text-center text-sm text-muted-foreground print:hidden xl:block">
38+
<p className="fixed bottom-0 left-0 right-0 hidden border-t border-t-muted backdrop-blur-3xl bg-black/10 p-1 text-center text-sm text-muted-foreground print:hidden xl:block">
3939
Press{" "}
40-
<kbd className="pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100">
40+
<kbd className="pointer-events-none inline-flex h-7 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100">
4141
<span className="text-xs"></span>J
4242
</kbd>{" "}
4343
to open the command menu

src/components/donut.tsx

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
"use client";
2+
3+
import React, { useState, useEffect } from 'react';
4+
import donutFrames from './donutFrames';
5+
6+
const Donut = ({
7+
scaleX = 1,
8+
scaleY = 1,
9+
color = "#000",
10+
fontSize = 8,
11+
frameInterval = 100
12+
}) => {
13+
const [currentFrame, setCurrentFrame] = useState(0);
14+
useEffect(() => {
15+
const interval = setInterval(() => {
16+
setCurrentFrame((currentFrame + 1) % donutFrames.length);
17+
}, frameInterval);
18+
19+
return () => clearInterval(interval); // Clear interval on unmount
20+
}, [currentFrame]);
21+
22+
const donutStyle = {
23+
transform: `scale(${scaleX}, ${scaleY})`,
24+
color: color,
25+
fontSize: fontSize
26+
};
27+
28+
return (
29+
<div className="donut-container">
30+
<pre className="donut" style={{
31+
fontFamily: "Courier New, Courier, monospace",
32+
whiteSpace: "pre",
33+
...donutStyle
34+
}}>
35+
{donutFrames[currentFrame]}
36+
</pre>
37+
</div>
38+
);
39+
};
40+
41+
export default Donut;

src/components/donutFrames.tsx

+1
Large diffs are not rendered by default.

src/data/resume-data.tsx

+23-6
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,17 @@ const _RESUME_DATA = {
2525
initials: "SL",
2626
location: "San Luis Potosí, México",
2727
locationLink: "https://www.google.com/maps/place/san-luis-potosi",
28-
about:
29-
"Retired competitive programmer. Full Stack Developer. Keen on attention to details.",
30-
summary:
31-
"Experienced in Linux, NextJS (Typescript), Python, C, and I am always eager to learn new skills and explore new domains. I love to solve problems and help others with my coding abilities, which helps me ensure the quality and accuracy of my work. I am looking for opportunities to collaborate with other passionate developers and create innovative and impactful solutions.",
28+
about: {
29+
en: "Retired competitive programmer. Full Stack Developer. Keen on attention to details.",
30+
es: "Programador competitivo retirado. Desarrollador Full Stack. Detallista.",
31+
},
32+
33+
summary: {
34+
en:
35+
"Experienced in Linux, NextJS (Typescript), Python, C, and I am always eager to learn new skills and explore new domains. I love to solve problems and help others with my coding abilities, which helps me ensure the quality and accuracy of my work. I am looking for opportunities to collaborate with other passionate developers and create innovative and impactful solutions.",
36+
es:
37+
"Experiencia en Linux, NextJS (Typescript), Python, C, y siempre estoy ansioso por aprender nuevas habilidades y explorar nuevos dominios. Me encanta resolver problemas y ayudar a otros con mis habilidades de codificación, lo que me ayuda a garantizar la calidad y precisión de mi trabajo. Estoy buscando oportunidades para colaborar con otros desarrolladores apasionados y crear soluciones innovadoras e impactantes.",
38+
},
3239
avatarUrl: "https://avatars.githubusercontent.com/u/42554588?v=4",
3340
personalWebsiteUrl: "https://santiago-lara.dev",
3441
contact: {
@@ -53,8 +60,18 @@ const _RESUME_DATA = {
5360
],
5461
},
5562
competitions: [
56-
"International Olympiad in Informatics",
57-
"Mexican Informatics Olympiad",
63+
{
64+
en:
65+
"International Olympiad in Informatics",
66+
es:
67+
"Olimpiada Internacional de Informática",
68+
},
69+
{
70+
en:
71+
"Mexican Informatics Olympiad",
72+
es:
73+
"Olimpiada Mexicana de Informática",
74+
}
5875
],
5976
education: [
6077
{

0 commit comments

Comments
 (0)