feat(frontend): add footer with version number

This commit is contained in:
Julian Tölle 2021-05-24 18:54:34 +02:00
parent 89faaa508b
commit 2aaf582245
7 changed files with 64 additions and 20 deletions

1
frontend/.env.production Normal file
View file

@ -0,0 +1 @@
REACT_APP_VERSION=$VERSION

View file

@ -1,5 +1,6 @@
import React from "react";
import { Route, Switch } from "react-router-dom";
import { Footer } from "./components/Footer";
import { LoginFailure } from "./components/LoginFailure";
import { LoginSuccess } from "./components/LoginSuccess";
import { NavBar } from "./components/NavBar";
@ -19,20 +20,29 @@ export function App() {
}
return (
<div className="App">
<div className="flex flex-col h-screen justify-between">
<header>
<NavBar />
</header>
<Switch>
<Route path="/" exact />
<Route path="/login/success" exact component={LoginSuccess} />
<Route path="/login/failure" exact component={LoginFailure} />
<Route path="/listens" exact component={RecentListens} />
<Route path="/reports/listens" exact component={ReportListens} />
<Route path="/reports/top-artists" exact component={ReportTopArtists} />
<Route path="/reports/top-albums" exact component={ReportTopAlbums} />
<Route path="/reports/top-tracks" exact component={ReportTopTracks} />
</Switch>
<main className="mb-auto" /* mb-auto is for sticky footer */>
<Switch>
<Route path="/" exact />
<Route path="/login/success" exact component={LoginSuccess} />
<Route path="/login/failure" exact component={LoginFailure} />
<Route path="/listens" exact component={RecentListens} />
<Route path="/reports/listens" exact component={ReportListens} />
<Route
path="/reports/top-artists"
exact
component={ReportTopArtists}
/>
<Route path="/reports/top-albums" exact component={ReportTopAlbums} />
<Route path="/reports/top-tracks" exact component={ReportTopTracks} />
</Switch>
</main>
<footer>
<Footer />
</footer>
</div>
);
}

View file

@ -0,0 +1,33 @@
import React from "react";
const REPO_URL = "https://github.com/apricote/Listory";
const CHANGELOG_URL = `${REPO_URL}/blob/master/CHANGELOG.md`;
const VERSION = process.env.REACT_APP_VERSION || "Unknown";
export const Footer: React.FC = () => {
return (
<div className="flex items-center justify-between flex-wrap bg-green-500 p-4 text-green-200 hover:text-white text-xs">
<div>
<a
href={CHANGELOG_URL}
target="_blank"
rel="noreferrer"
title="Listory Changelog"
>
v{VERSION}
</a>{" "}
</div>
<div>
<a
href={REPO_URL}
target="_blank"
rel="noreferrer"
title="Listory GitHub Repository"
>
Check out on GitHub
</a>
</div>
</div>
);
};

View file

@ -8,11 +8,11 @@ export const NavBar: React.FC = () => {
const { user, loginWithSpotifyProps } = useAuth();
return (
<nav className="flex items-center justify-between flex-wrap bg-green-500 p-6">
<div className="flex items-center justify-between flex-wrap bg-green-500 p-6">
<div className="flex items-center flex-shrink-0 text-white mr-6">
<span className="font-semibold text-xl tracking-tight">Listory</span>
</div>
<div className="w-full block flex-grow lg:flex lg:items-center lg:w-auto ">
<nav className="w-full block flex-grow lg:flex lg:items-center lg:w-auto ">
<div className="text-sm lg:flex-grow">
{user && (
<>
@ -48,8 +48,8 @@ export const NavBar: React.FC = () => {
)}
{user && <NavUserInfo user={user} />}
</div>
</div>
</nav>
</nav>
</div>
);
};

View file

@ -1,5 +0,0 @@
import React from "react";
export const NavItem: React.FC = ({ children }) => {
return <li>{children}</li>;
};