client/about dialog: show the dialog only after the required information is ready

This commit is contained in:
Adorian Doran
2026-03-22 18:53:23 +02:00
parent 1b9124422a
commit 555d997e34

View File

@@ -14,14 +14,21 @@ import { Trans } from "react-i18next";
import type React from "react";
import icon from "../../assets/icon.svg";
import iconAlt from "../../assets/icon-alt.svg";
import { useEffect } from "react";
import { useCallback, useEffect } from "react";
export default function AboutDialog() {
const [appInfo, setAppInfo] = useState<AppInfo | null>(null);
const [shown, setShown] = useState(false);
const [isNightly, setNightly] = useState(false);
useTriliumEvent("openAboutDialog", () => setShown(true));
const onLoad = useCallback(async () => {
if (!appInfo) {
setAppInfo(await server.get<AppInfo>("app-info"));
}
setShown(true);
}, []);
useTriliumEvent("openAboutDialog", onLoad);
useEffect(() => {
setNightly(!!appInfo?.appVersion.includes("test"));
@@ -31,10 +38,6 @@ export default function AboutDialog() {
<Modal className="about-dialog"
size="md"
show={shown}
onShown={async () => {
const appInfo = await server.get<AppInfo>("app-info");
setAppInfo(appInfo);
}}
onHidden={() => setShown(false)}
>
<div className="about-dialog-content">