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"}

Stream information

Title
Category

Server info

Server Address

{targetServer}

Streaming Key
regenerateStreamingKey()}> Regenerate
Usage Tier
{serverTier}
}