Set title and convert all class component to functional #4

Merged
torjus merged 6 commits from feature/set-title into master 2023-12-05 02:22:23 +00:00
2 changed files with 28 additions and 4 deletions
Showing only changes of commit 2a5f0ea601 - Show all commits

View File

@ -61,9 +61,9 @@ export class MinistreamApiClient {
}
async siteInfo(): Promise<SiteInfo> {
var url = "/api/info"
var url = "/api/siteinfo"
if (this.ENV !== "production") {
url = "http://localhost:8080/api/info"
url = "http://localhost:8080/api/siteinfo"
}
const resp = await fetch(url,

View File

@ -32,13 +32,37 @@ export function App({ api }: AppProps) {
})
}
const updateTitle = () => {
const titleKey = "ministream.title"
var title = localStorage.getItem(titleKey)
const setTitle = (title: string) => {
const el = document.querySelector('title')
if (el) {
el.textContent = title
}
}
if (title) {
setTitle(title)
}
api.siteInfo().then((info) => {
if (info.siteName != title) {
setTitle(info.siteName)
localStorage.setItem(titleKey, info.siteName)
}
})
return
}
setInterval(() => {
updateStreamList()
}, 10000)
useEffect(() => {
updateStreamList()
},[])
}, [])
useEffect(() => {
updateTitle()
}, [])
return (
@ -57,5 +81,5 @@ const rootElement = document.getElementById("app");
if (rootElement) {
const root = createRoot(rootElement);
const api = new MinistreamApiClient()
root.render(<App api={api}/>)
root.render(<App api={api} />)
}