From a01ef75822680b6540a8de6ef4483258f95454ca Mon Sep 17 00:00:00 2001 From: Aria Moradi Date: Fri, 25 Dec 2020 06:36:34 +0330 Subject: [PATCH] source list UI done --- webUI/react/src/App.tsx | 25 +++++-- webUI/react/src/components/SourceCard.tsx | 75 +++++++++++++++++++ .../react/src/components/TemporaryDrawer.tsx | 9 +++ webUI/react/src/typings.d.ts | 8 ++ 4 files changed, 111 insertions(+), 6 deletions(-) create mode 100644 webUI/react/src/components/SourceCard.tsx diff --git a/webUI/react/src/App.tsx b/webUI/react/src/App.tsx index 760957fb..1680c2d5 100644 --- a/webUI/react/src/App.tsx +++ b/webUI/react/src/App.tsx @@ -7,6 +7,7 @@ import { import Button from '@material-ui/core/Button'; import NavBar from './components/NavBar'; import ExtensionCard from './components/ExtensionCard'; +import SourceCard from './components/SourceCard'; function Extensions() { let mapped; @@ -24,6 +25,22 @@ function Extensions() { return

{mapped}

; } +function Sources() { + let mapped; + const [sources, setSources] = useState([]); + + if (sources.length === 0) { + mapped =

wait

; + fetch('http://127.0.0.1:4567/api/v1/sources') + .then((response) => response.json()) + .then((data) => setSources(data)); + } else { + mapped = sources.map((it) => ); + } + + return

{mapped}

; +} + function Home() { return ( } + + + + + ); +} diff --git a/webUI/react/src/components/TemporaryDrawer.tsx b/webUI/react/src/components/TemporaryDrawer.tsx index 443f69f7..9a1e4d0f 100644 --- a/webUI/react/src/components/TemporaryDrawer.tsx +++ b/webUI/react/src/components/TemporaryDrawer.tsx @@ -16,6 +16,7 @@ const useStyles = makeStyles({ interface IProps { drawerOpen: boolean + setDrawerOpen(state: boolean): void } @@ -39,6 +40,14 @@ export default function TemporaryDrawer({ drawerOpen, setDrawerOpen }: IProps) { + + + + + + + + ); diff --git a/webUI/react/src/typings.d.ts b/webUI/react/src/typings.d.ts index 1a21c32e..9e0b07bc 100644 --- a/webUI/react/src/typings.d.ts +++ b/webUI/react/src/typings.d.ts @@ -6,3 +6,11 @@ interface IExtension { installed: boolean apkName: string } + +interface ISource { + id: number + name: string + lang: string + iconUrl: string + supportsLatest: boolean +}