diff --git a/web/README.md b/web/README.md index 13d24a0ab..51b274fe9 100644 --- a/web/README.md +++ b/web/README.md @@ -10,7 +10,7 @@ npm run dev yarn dev ``` -Open [http://localhost:3000/admin](http://localhost:3000/admin) with your browser to see the result. +In production this Admin instance would ideally live on the domain as your Owncast instance, for example: `myowncast-site.com/admin`. So open [http://localhost:3000/admin](http://localhost:3000/admin) with your browser to see the result. You can start editing a page by modifying `pages/something.js`. The page auto-updates as you edit the file. @@ -18,6 +18,15 @@ Add new pages by adding files to the `pages` directory and [routes](https://next Since this project hits API endpoints you should make requests in [`componentDidMount`](https://reactjs.org/docs/react-component.html#componentdidmount), and not in [`getStaticProps`](https://nextjs.org/docs/basic-features/data-fetching), since they're not static and we don't want to fetch them at build time, but instead at runtime. + +A list of API end points can be found here: +https://github.com/owncast/owncast/blob/master/router/router.go + +### Auth-ing for APIs +username: admin +pw: [your stramkey] + + ## Learn More To learn more about Next.js, take a look at the following resources: @@ -26,3 +35,4 @@ To learn more about Next.js, take a look at the following resources: - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + diff --git a/web/pages/index2.tsx b/web/pages/index2.tsx new file mode 100644 index 000000000..bb35f0dc3 --- /dev/null +++ b/web/pages/index2.tsx @@ -0,0 +1,32 @@ +import React, { useState, useEffect } from 'react'; +import { BROADCASTER, fetchData } from './utils/apis'; + +export default function Admin() { + const [broadcasterStatus, setBroadcasterStatus] = useState({}); + let getStatusIntervalId = null; + + + const getBroadcastStatus = async () => { + try { + const result = await fetchData(BROADCASTER); + const active = !!result.broadcaster; + + setBroadcasterStatus({ ...result, active }); + } catch(error) { + setBroadcasterStatus({ ...broadcasterStatus, message: error.message }); + }; + + + }; + + useEffect(() => { getBroadcastStatus(); }, []); + + + console.log("============",broadcasterStatus) + // getStatusIntervalId = setInterval(getBroadcastStatus, 15000); + return ( +