import { useEffect } from "preact/hooks";
import {
buildInfo as info,
buildInfoError,
loadBuildInfo,
} from "../../lib/buildInfo.js";
import { readLoadedBundleHash } from "../../lib/bundleHash.js";
import { Group, Lede, NavRow, ValueRow } from "./ui.jsx";
export function AboutRow() {
useEffect(() => {
loadBuildInfo();
}, []);
return (
<NavRow
row="about"
to="/settings/about"
label="About"
value={buildInfoError.value ? "⚠" : info.value?.version || "…"}
/>
);
}
export function BuildInfoCard() {
useEffect(() => {
loadBuildInfo();
}, []);
const srv = info.value;
const feHash = readLoadedBundleHash();
return (
<div id="build-info">
<Lede>
The running binary and the bundles it serves. Quote these in a bug
report.
</Lede>
<Group title="Build">
<ValueRow
label="App version"
value={srv?.version || "…"}
valueId="buildVersion"
/>
<ValueRow
label="Terminal bundle hash"
secondary="Renderer bundles embedded in this server"
value={srv?.build_hash || "…"}
valueId="buildServerHash"
/>
<ValueRow
label="App bundle hash"
secondary="SPA bundle loaded in this tab"
value={feHash || "dev"}
valueId="buildFeHash"
/>
</Group>
</div>
);
}