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"; import TitleBar from "@/components/header";
export default function Home() { export default function Home() {
return ( 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> <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"> {/*<div className="z-10 w-full max-w-5xl items-center justify-between font-mono text-sm lg:flex">*/}
Get started by editing&nbsp; {/* <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">*/}
<code className="font-mono font-bold">app/page.tsx</code> {/* Get started by editing&nbsp;*/}
</p> {/* <code className="font-mono font-bold">app/page.tsx</code>*/}
<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"> {/* </p>*/}
<a {/* <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">*/}
className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0" {/* <a*/}
href="https://vercel.com?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app" {/* className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0"*/}
target="_blank" {/* href="https://vercel.com?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"*/}
rel="noopener noreferrer" {/* target="_blank"*/}
> {/* rel="noopener noreferrer"*/}
By{' '} {/* >*/}
<Image {/* By{' '}*/}
src="/vercel.svg" {/* <Image*/}
alt="Vercel Logo" {/* src="/vercel.svg"*/}
className="dark:invert" {/* alt="Vercel Logo"*/}
width={100} {/* className="dark:invert"*/}
height={24} {/* width={100}*/}
priority {/* height={24}*/}
/> {/* priority*/}
</a> {/* />*/}
</div> {/* </a>*/}
</div> {/* </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]"> <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 <Image

View File

@@ -2,7 +2,7 @@
import React, {useEffect, useState} from 'react'; import React, {useEffect, useState} from 'react';
import {fetchStartDate} from "@/services/mta-api/mta-server"; import {fetchStartDate} from "@/services/mta-api/mta-server";
import {MtaStartTime} from "@/services/mta-api/types"; import {MtaStartTime} from "@/services/mta-api/types";
import Image from 'next/image';
const TitleBar = () => { const TitleBar = () => {
const [data, setData] = useState<MtaStartTime | null>(null); const [data, setData] = useState<MtaStartTime | null>(null);
@@ -23,12 +23,32 @@ const TitleBar = () => {
}, []); }, []);
return ( return (
<div> <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 ? ( {data ? (
<pre>{JSON.stringify(data, null, 2)}</pre> <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> <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> </div>
); );
}; };

View File

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