add links page back, update header
This commit is contained in:
Generated
+2
-2
@@ -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
@@ -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
@@ -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({
|
||||||
|
|||||||
@@ -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>
|
||||||
|
)
|
||||||
|
}
|
||||||
+12
-7
@@ -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,14 +14,16 @@ 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'm Alex</h1>
|
<div className="flex justify-center">
|
||||||
<p>I'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>
|
||||||
|
<div className="text-center lg:text-left lg:my-10 w-full">
|
||||||
|
<h1 className="text-4xl font-bold">Hi, I'm Alex</h1>
|
||||||
|
<p>I'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 space-x-2">
|
<div className="block my-2 space-x-2">
|
||||||
{/* socials */}
|
|
||||||
<a href="https://twitter.com/carlgrimesdupe" target="_blank">
|
<a href="https://twitter.com/carlgrimesdupe" target="_blank">
|
||||||
<Twitter />
|
<Twitter />
|
||||||
</a>
|
</a>
|
||||||
@@ -36,11 +39,13 @@ export default function Home() {
|
|||||||
<a href="https://linkedin.com/in/thatalex" target="_blank">
|
<a href="https://linkedin.com/in/thatalex" target="_blank">
|
||||||
<LinkedIn />
|
<LinkedIn />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
|
||||||
<a href="/links" className="opacity-40 text-sm">
|
<a href="/links" className="opacity-40 text-sm">
|
||||||
<p className="underline">and more..</p>
|
<p className="underline">and more..</p>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id="projects">
|
<section id="projects">
|
||||||
|
|||||||
@@ -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>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
|
"use client"
|
||||||
|
import { useState, useEffect } from 'react';
|
||||||
import Link from "next/link"
|
import Link from "next/link"
|
||||||
|
|
||||||
const quoteArray = [
|
export default function Header() {
|
||||||
|
const quoteArray = [
|
||||||
"It works on my machine",
|
"It works on my machine",
|
||||||
"Revert 'Revert 'Revert",
|
"Revert 'Revert 'Revert",
|
||||||
"'fuck the tests'",
|
"'fuck the tests'",
|
||||||
@@ -14,14 +17,12 @@ const quoteArray = [
|
|||||||
"how bout them bills??",
|
"how bout them bills??",
|
||||||
"where else would you rather be..",
|
"where else would you rather be..",
|
||||||
"..than right here, right now?!"
|
"..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">
|
||||||
|
|||||||
Reference in New Issue
Block a user