import React from "react"
import * as antd from "antd"
import { Icons } from "components/Icons"
import "./index.less"
const StreamingKeyView = (props) => {
const [streamingKeyVisibility, setStreamingKeyVisibility] = React.useState(false)
const toogleVisibility = (to) => {
setStreamingKeyVisibility(to ?? !streamingKeyVisibility)
}
return
{streamingKeyVisibility ?
<>
toogleVisibility()} />
{props.streamingKey ?? "No streaming key available"}
> :
<>
toogleVisibility()} />
Show key
>
}
}
export default (props) => {
const [isConnected, setIsConnected] = React.useState(false)
const [targetServer, setTargetServer] = React.useState("No available server")
const [streamingKey, setStreamingKey] = React.useState(null)
const [serverTier, setServerTier] = React.useState(null)
const checkStreamingKey = async () => {
const result = await app.api.withEndpoints("main").get.streamingKey().catch((error) => {
console.error(error)
antd.message.error(error.message)
return null
})
if (result) {
setStreamingKey(result.key)
}
}
const checkTagetServer = async () => {
const result = await app.api.withEndpoints("main").get.targetStreamingServer()
if (result) {
const targetServer = `${result.protocol}://${result.address}:${result.port}/${result.space}`
setTargetServer(targetServer)
}
}
const regenerateStreamingKey = async () => {
antd.Modal.confirm({
title: "Regenerate streaming key",
content: "Are you sure you want to regenerate the streaming key? After this, all other generated keys will be deleted.",
onOk: async () => {
const result = await app.api.withEndpoints("main").post.regenerateStreamingKey().catch((error) => {
console.error(error)
antd.message.error(error.message)
return null
})
if (result) {
setStreamingKey(result.key)
}
}
})
}
React.useEffect(() => {
checkStreamingKey()
checkTagetServer()
// TODO: Use UserTier controller to check streaming service tier
// by now, we just use a fixed value
setServerTier("basic")
}, [])
return
Connection Status
:
}
>
{isConnected ? "Connected" : "Disconnected"}
Server info
Server Address
{targetServer}
Streaming Key
regenerateStreamingKey()}>
Regenerate
}