add links page back, update header

This commit is contained in:
2025-02-10 13:58:15 -05:00
parent 7bba0d5ea2
commit 42d85db5e5
7 changed files with 133 additions and 61 deletions
+2 -2
View File
@@ -15,8 +15,8 @@
"devDependencies": { "devDependencies": {
"@eslint/eslintrc": "^3", "@eslint/eslintrc": "^3",
"@types/node": "^20", "@types/node": "^20",
"@types/react": "^19", "@types/react": "^19.0.8",
"@types/react-dom": "^19", "@types/react-dom": "^19.0.3",
"eslint": "^9", "eslint": "^9",
"eslint-config-next": "15.1.6", "eslint-config-next": "15.1.6",
"postcss": "^8", "postcss": "^8",
+8 -8
View File
@@ -9,19 +9,19 @@
"lint": "next lint" "lint": "next lint"
}, },
"dependencies": { "dependencies": {
"next": "15.1.6",
"react": "^19.0.0", "react": "^19.0.0",
"react-dom": "^19.0.0", "react-dom": "^19.0.0"
"next": "15.1.6"
}, },
"devDependencies": { "devDependencies": {
"typescript": "^5", "@eslint/eslintrc": "^3",
"@types/node": "^20", "@types/node": "^20",
"@types/react": "^19", "@types/react": "^19.0.8",
"@types/react-dom": "^19", "@types/react-dom": "^19.0.3",
"postcss": "^8",
"tailwindcss": "^3.4.1",
"eslint": "^9", "eslint": "^9",
"eslint-config-next": "15.1.6", "eslint-config-next": "15.1.6",
"@eslint/eslintrc": "^3" "postcss": "^8",
"tailwindcss": "^3.4.1",
"typescript": "^5"
} }
} }
+4 -4
View File
@@ -27,23 +27,23 @@ export const metadata: Metadata = {
}, },
appleWebApp: { appleWebApp: {
title: "Alex Frantz", title: "Alex Frantz",
startupImage: "https://alexav.gg/apple-touch-icon.png" startupImage: "/apple-touch-icon.png"
}, },
icons: [ icons: [
{ {
rel: "icon", rel: "icon",
type: "image/png", type: "image/png",
sizes: "32x32", sizes: "32x32",
url: "https://alexav.gg/favicon-32x32.png" url: "/favicon-32x32.png"
}, },
{ {
rel: "icon", rel: "icon",
type: "image/png", type: "image/png",
sizes: "16x16", sizes: "16x16",
url: "https://alexav.gg/favicon-16x16.png" url: "/favicon-16x16.png"
} }
], ],
manifest: "https://alexav.gg/site.webmanifest" manifest: "/site.webmanifest"
}; };
export default function RootLayout({ export default function RootLayout({
+42
View File
@@ -0,0 +1,42 @@
import Link from "next/link";
import CustomButton from "@/components/CustomButton";
export default function Links() {
return (
<div className="min-h-screen bg-black flex justify-center items-center text-black">
<div className="bg-white rounded-lg p-4 text-center mb-20">
<Link href="/">
<h1 className="hover:underline font-bold text-2xl text-center">Alex Frantz</h1>
</Link>
<p>QA @ <a href="https://medal.tv" className="hover:underline" target="_blank">Medal.tv</a></p>
<hr className="my-2 mx-auto border-black" />
<div className="space-y-2">
<CustomButton
to="https://medal.tv/users/215577"
label="Medal"
/>
<CustomButton
to="https://twitter.com/carlgrimesdupe"
label="Twitter"
/>
<CustomButton
to="https://bsky.app/profile/alexav.gg"
label="Bluesky"
/>
<CustomButton
to="https://github.com/azpha"
label="GitHub"
/>
<CustomButton
to="https://last.fm/user/lulawex"
label="Last.fm"
/>
<CustomButton
to="https://linkedin.com/in/thatalex"
label="LinkedIn"
/>
</div>
</div>
</div>
)
}
+31 -26
View File
@@ -1,3 +1,4 @@
import Image from 'next/image';
import { Twitter, Bluesky, Medal, GitHub, LinkedIn } from '@/components/Icons' import { Twitter, Bluesky, Medal, GitHub, LinkedIn } from '@/components/Icons'
import ProjectComponent from '@/components/ProjectComponent'; import ProjectComponent from '@/components/ProjectComponent';
import ContactForm from '@/components/ContactForm'; import ContactForm from '@/components/ContactForm';
@@ -13,33 +14,37 @@ export default function Home() {
return ( return (
<div className=""> <div className="">
<section id="about"> <section id="about">
<div className="w-full mx-auto text-center p-10"> <div className="mx-auto text-center p-10">
<div className="my-1"> <div className="mx-auto grid gap-4 grid-cols-1 lg:grid-cols-2 lg:w-1/2">
<h1 className="text-3xl font-bold">Hi, I&apos;m Alex</h1> <div className="flex justify-center">
<p>I&apos;m a junior developer primarily working as QA, but sometimes writing questionable code at <a className="hover:underline text-yellow-400" href="https://medal.tv" target="_blank">Medal.tv</a></p> <Image className="rounded-full" src={"https://storage.alexav.gg/content/picture.jpg"} alt="Profile Picture" width={250} height={250} />
</div>
<div className="text-center lg:text-left lg:my-10 w-full">
<h1 className="text-4xl font-bold">Hi, I&apos;m Alex</h1>
<p>I&apos;m a junior developer primarily working as QA, but sometimes writing questionable code at <a className="hover:underline text-yellow-400" href="https://medal.tv" target="_blank">Medal.tv</a></p>
<div className="block my-2 space-x-2">
<a href="https://twitter.com/carlgrimesdupe" target="_blank">
<Twitter />
</a>
<a href="https://bsky.app/profile/alexav.gg" target="_blank">
<Bluesky />
</a>
<a href="https://medal.tv/users/215577" target="_blank">
<Medal />
</a>
<a href="https://github.com/azpha/website" target="_blank">
<GitHub />
</a>
<a href="https://linkedin.com/in/thatalex" target="_blank">
<LinkedIn />
</a>
<a href="/links" className="opacity-40 text-sm">
<p className="underline">and more..</p>
</a>
</div>
</div>
</div> </div>
<div className="block space-x-2">
{/* socials */}
<a href="https://twitter.com/carlgrimesdupe" target="_blank">
<Twitter />
</a>
<a href="https://bsky.app/profile/alexav.gg" target="_blank">
<Bluesky />
</a>
<a href="https://medal.tv/users/215577" target="_blank">
<Medal />
</a>
<a href="https://github.com/azpha/website" target="_blank">
<GitHub />
</a>
<a href="https://linkedin.com/in/thatalex" target="_blank">
<LinkedIn />
</a>
</div>
<a href="/links" className="opacity-40 text-sm">
<p className="underline">and more..</p>
</a>
</div> </div>
</section> </section>
+24
View File
@@ -0,0 +1,24 @@
import React from "react"
import Link from "next/link"
export default function CustomButton({
to,
label
}: {
to: string,
label: string
}) {
return (
<div>
<Link href={to} target="_blank">
<div className={`bg-black text-white text-lg font-semibold text-left p-2 w-52 rounded-lg`}>
<div className="px-1 space-x-2">
<div className="inline">
{label}
</div>
</div>
</div>
</Link>
</div>
)
}
+22 -21
View File
@@ -1,27 +1,28 @@
"use client"
import { useState, useEffect } from 'react';
import Link from "next/link" import Link from "next/link"
const quoteArray = [ export default function Header() {
"It works on my machine", const quoteArray = [
"Revert 'Revert 'Revert", "It works on my machine",
"'fuck the tests'", "Revert 'Revert 'Revert",
"this is so cooked", "'fuck the tests'",
"Professional Production Tester", "this is so cooked",
"I break hearts to save lives.", "Professional Production Tester",
"go bills", "I break hearts to save lives.",
"josh allen is my goat", "go bills",
"lets go buffalo", "josh allen is my goat",
"oorah", "lets go buffalo",
"how bout them bills??", "oorah",
"where else would you rather be..", "how bout them bills??",
"..than right here, right now?!" "where else would you rather be..",
] "..than right here, right now?!"
]
const [ quote, setQuote ] = useState<string>(quoteArray[0])
async function getQuote(index: number) { useEffect(() => {
return quoteArray[index] setQuote(quoteArray[Math.floor(Math.random() * quoteArray.length)]);
} }, [])
export default async function Header() {
const quote = await getQuote(Math.floor(Math.random() * quoteArray.length))
return ( return (
<div className="bg-zinc-900 p-4 flex justify-between"> <div className="bg-zinc-900 p-4 flex justify-between">