From 780ad8612750813f694fccc5fd6e12bab8218c2f Mon Sep 17 00:00:00 2001 From: Janne Mareike Koschinski <janne@kuschku.de> Date: Thu, 5 Aug 2021 17:58:20 +0200 Subject: [PATCH] Create simple album list --- ui/src/App.tsx | 11 +++++++++++ ui/src/pages/AlbumListPage.tsx | 31 +++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 ui/src/pages/AlbumListPage.tsx diff --git a/ui/src/App.tsx b/ui/src/App.tsx index 4c75a65..106dcbf 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -5,6 +5,7 @@ import {BrowserRouter, Link, Route} from "react-router-dom"; import {Redirect, Switch} from "react-router"; import {AppBar, Button, Toolbar, Typography} from "@material-ui/core"; import {useErrorDisplay} from "./components/ErrorContext"; +import {AlbumListPage} from "./pages/AlbumListPage"; import {ImageDetailPage} from './pages/ImageDetailPage'; import {ImageListPage} from "./pages/ImageListPage"; import {UploadView} from "./components/UploadView"; @@ -37,6 +38,13 @@ export function App() { > Images </Button> + <Button + color="inherit" + component={Link} + to="/albums" + > + Albums + </Button> </Toolbar> </AppBar> <ErrorDisplay/> @@ -51,6 +59,9 @@ export function App() { <Route path="/i/:imageId"> <ImageDetailPage/> </Route> + <Route path="/albums"> + <AlbumListPage/> + </Route> <Redirect from="/" to="/images"/> </Switch> </ErrorWrapper> diff --git a/ui/src/pages/AlbumListPage.tsx b/ui/src/pages/AlbumListPage.tsx new file mode 100644 index 0000000..5b675fc --- /dev/null +++ b/ui/src/pages/AlbumListPage.tsx @@ -0,0 +1,31 @@ +import {useListAlbums} from "../api/useListAlbums"; +import {Fragment} from "react"; +import {LinearProgress} from "@material-ui/core"; +import {ErrorPortal} from "../components/ErrorContext"; +import {ErrorAlert} from "../components/ErrorAlert"; + +export function AlbumListPage() { + const {data: albums, error, isLoading} = useListAlbums(); + + return ( + <Fragment> + {isLoading && ( + <LinearProgress/> + )} + <ErrorPortal> + <ErrorAlert severity="error" error={error}/> + </ErrorPortal> + <ul> + {albums?.map(album => ( + <li> + <p><a href={`/a/${album.id}`}>{album.id}</a></p> + <p>{album.title}</p> + <p>{album.description}</p> + <p>{album.created_at}</p> + <p>{album.updated_at}</p> + </li> + ))} + </ul> + </Fragment> + ); +} -- GitLab