2021-01-26 23:32:12 +03:30
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
|
|
2021-01-22 17:00:33 +03:30
|
|
|
import React, { useContext, useEffect, useState } from 'react';
|
2021-01-19 14:47:07 +03:30
|
|
|
import SourceCard from '../components/SourceCard';
|
2021-01-22 17:00:33 +03:30
|
|
|
import NavBarTitle from '../context/NavbarTitle';
|
2021-03-07 22:25:29 +03:30
|
|
|
import client from '../util/client';
|
2021-01-19 14:47:07 +03:30
|
|
|
|
|
|
|
|
export default function Sources() {
|
2021-01-22 17:00:33 +03:30
|
|
|
const { setTitle } = useContext(NavBarTitle);
|
|
|
|
|
setTitle('Sources');
|
2021-01-19 14:47:07 +03:30
|
|
|
const [sources, setSources] = useState<ISource[]>([]);
|
2021-03-07 16:27:13 +03:30
|
|
|
const [fetched, setFetched] = useState<boolean>(false);
|
2021-01-19 14:47:07 +03:30
|
|
|
|
|
|
|
|
useEffect(() => {
|
2021-03-07 22:25:29 +03:30
|
|
|
client.get('/api/v1/source/list')
|
|
|
|
|
.then((response) => response.data)
|
2021-03-07 16:27:13 +03:30
|
|
|
.then((data) => { setSources(data); setFetched(true); });
|
2021-01-19 14:47:07 +03:30
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
if (sources.length === 0) {
|
2021-03-07 16:27:13 +03:30
|
|
|
if (fetched) return (<h3>No sources found. Install Some Extensions first.</h3>);
|
|
|
|
|
return (<h3>loading...</h3>);
|
2021-01-19 14:47:07 +03:30
|
|
|
}
|
2021-01-23 01:33:12 +03:30
|
|
|
return <>{sources.map((it) => <SourceCard source={it} />)}</>;
|
2021-01-19 14:47:07 +03:30
|
|
|
}
|