adding reworked header bar to nextjs frontend UI

This commit is contained in:
lucas.oskorep
2023-07-11 16:28:53 -04:00
parent d24a340c15
commit add28cafc6
3 changed files with 56 additions and 35 deletions

View File

@@ -2,32 +2,33 @@ import Image from 'next/image'
import TitleBar from "@/components/header";
export default function Home() {
return (
<main className="flex min-h-screen flex-col items-center justify-between p-24">
<main className="flex min-h-screen flex-col items-center justify-between">
<TitleBar></TitleBar>
<div className="z-10 w-full max-w-5xl items-center justify-between font-mono text-sm lg:flex">
<p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">
Get started by editing&nbsp;
<code className="font-mono font-bold">app/page.tsx</code>
</p>
<div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">
<a
className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0"
href="https://vercel.com?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
By{' '}
<Image
src="/vercel.svg"
alt="Vercel Logo"
className="dark:invert"
width={100}
height={24}
priority
/>
</a>
</div>
</div>
{/*<div className="z-10 w-full max-w-5xl items-center justify-between font-mono text-sm lg:flex">*/}
{/* <p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">*/}
{/* Get started by editing&nbsp;*/}
{/* <code className="font-mono font-bold">app/page.tsx</code>*/}
{/* </p>*/}
{/* <div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">*/}
{/* <a*/}
{/* className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0"*/}
{/* href="https://vercel.com?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"*/}
{/* target="_blank"*/}
{/* rel="noopener noreferrer"*/}
{/* >*/}
{/* By{' '}*/}
{/* <Image*/}
{/* src="/vercel.svg"*/}
{/* alt="Vercel Logo"*/}
{/* className="dark:invert"*/}
{/* width={100}*/}
{/* height={24}*/}
{/* priority*/}
{/* />*/}
{/* </a>*/}
{/* </div>*/}
{/*</div>*/}
<div className="relative flex place-items-center before:absolute before:h-[300px] before:w-[480px] before:-translate-x-1/2 before:rounded-full before:bg-gradient-radial before:from-white before:to-transparent before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-[240px] after:translate-x-1/3 after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700 before:dark:opacity-10 after:dark:from-sky-900 after:dark:via-[#0141ff] after:dark:opacity-40 before:lg:h-[360px]">
<Image

View File

@@ -2,17 +2,17 @@
import React, {useEffect, useState} from 'react';
import {fetchStartDate} from "@/services/mta-api/mta-server";
import {MtaStartTime} from "@/services/mta-api/types";
import Image from 'next/image';
const TitleBar = () => {
const [data, setData] = useState<MtaStartTime|null>(null);
const [data, setData] = useState<MtaStartTime | null>(null);
useEffect(() => {
const fetchData = async () => {
try {
console.log("CALLING API")
const mtaData = await fetchStartDate([""])
setData( mtaData)
setData(mtaData)
} catch (error) {
console.error('Error fetching data:', error);
@@ -23,12 +23,32 @@ const TitleBar = () => {
}, []);
return (
<div>
{data ? (
<pre>{JSON.stringify(data, null, 2)}</pre>
) : (
<p>Loading data...</p>
)}
<div className="align-middle lg:flex w-full">
<div className="flex align-middle justify-center lg:justify-normal">
<div className="align-middle p-0.5">
<div style={{width: '100%', aspectRatio: '16/9'}} className="h-5 lg:h-6">
<Image src="/images/RPI-LOGO.png" alt="rpi-logo" width="160" height="90" className="w-11"/>
</div>
</div>
<h1 className="lg:text-left text-center mb-4 text-5xl font-extrabold leading-none tracking-tight text-gray-900 lg:text-6xl dark:text-white ">
Pi MTA Display!
</h1>
</div>
<div className="lg:flex-grow"></div>
<div className="lg:text-right text-center lg:p-2">
{data ? (
<h2 className="text-lg lg:text-xl font-bold dark:text-white">Started
At: <span>{data.startTime.toLocaleString("en-US")}</span></h2>
) : (
<p>Loading data...</p>
)}
<h2 className="text-lg lg:text-xl font-bold dark:text-white">Updated
At: <span>{new Date().toLocaleString("en-US")}</span></h2>
</div>
</div>
);
};

View File

@@ -1,6 +1,6 @@
export interface MtaData {
mtaData: any;
};
}
export interface MtaStartTime {
startTime: Date