import React from "react" import * as antd from "antd" import { version as linebridgeVersion } from "linebridge/package.json" import { Icons } from "components/Icons" import config from "config" import "./index.less" const connectionsTooltipStrings = { secure: "This connection is secure", insecure: "This connection is insecure, cause it's not using HTTPS protocol and the server cannot be verified on the trusted certificate authority.", warning: "This connection is secure but the server cannot be verified on the trusted certificate authority.", } const latencyToColor = (latency, type) => { switch (type) { case "http": { if (latency < 200) { return "green" } if (latency < 500) { return "orange" } return "red" } case "ws": { if (latency < 80) { return "green" } if (latency < 120) { return "orange" } return "red" } } } export default { id: "about", icon: "Info", label: "About", group: "bottom", render: () => { const isProduction = import.meta.env.PROD const [serverManifest, setServerManifest] = React.useState(null) const [serverOrigin, setServerOrigin] = React.useState(null) const [serverHealth, setServerHealth] = React.useState(null) const [secureConnection, setSecureConnection] = React.useState(false) const [connectionPing, setConnectionPing] = React.useState({}) const [capInfo, setCapInfo] = React.useState(null) const setCapacitorInfo = async () => { if (Capacitor.Plugins.App) { const info = await Capacitor.Plugins.App.getInfo() setCapInfo(info) } } const checkServerVersion = async () => { const serverManifest = await app.cores.api.customRequest() setServerManifest(serverManifest.data) } const checkServerOrigin = async () => { const instance = app.cores.api.instance() if (instance) { setServerOrigin(instance.mainOrigin) if (instance.mainOrigin.startsWith("https")) { setSecureConnection(true) } } } const measurePing = async () => { const result = await app.cores.api.measurePing() console.log(result) setConnectionPing(result) } React.useEffect(() => { checkServerVersion() checkServerOrigin() measurePing() setCapacitorInfo() const measureInterval = setInterval(() => { measurePing() }, 3000) return () => { clearInterval(measureInterval) } }, []) return
Logo

{config.app.siteName}

{config.author} Licensed with {config.package?.license ?? "unlicensed"}
v{window.app.version ?? "experimental"} {isProduction ? : } {String(import.meta.env.MODE)}

Server information

Origin

: } > { secureConnection ? " Secure connection" : "Insecure connection" }
{serverOrigin ?? "Unknown"}

Instance Performance

{connectionPing?.http}ms
{connectionPing?.ws}ms

Version

{serverManifest?.version ?? "Unknown"}

React

{React.version ?? "Unknown"}

Linebridge Engine

{linebridgeVersion ?? globalThis._linebrige_version ?? "Unknown"}

Evite Framework

{app.__eviteVersion ?? "Unknown"}

Comty.JS

{__comty_shared_state.version ?? "Unknown"}

Platform

{Capacitor.platform}
{ capInfo &&

App ID

{capInfo.id}
} { capInfo &&

App Build

{capInfo.build}
} { capInfo &&

App Version

{capInfo.version}
}
} }