rqbit desktop configuration before startup works

This commit is contained in:
Igor Katson 2023-12-06 15:29:11 +00:00
parent a3475784e9
commit ee996012af
No known key found for this signature in database
GPG key ID: B4EC22B66D61A3F5
5 changed files with 340 additions and 8 deletions

View file

@ -1,19 +1,40 @@
import { StrictMode } from "react";
import { StrictMode, useState } from "react";
import ReactDOM from 'react-dom/client';
import { APIContext, RqbitWebUI } from "./rqbit-webui-src/rqbit-web";
import { API } from "./api";
import { invoke } from "@tauri-apps/api";
import { RqbitDesktopConfig } from "./configuration";
import { ConfigModal } from "./configure";
let version = invoke<string>("get_version").then((version) => {
async function get_version(): Promise<string> {
return invoke<string>("get_version");
}
async function get_default_config(): Promise<RqbitDesktopConfig> {
return invoke<RqbitDesktopConfig>("config_default");
}
const RqbitDesktop: React.FC<{
version: string,
defaultConfig: RqbitDesktopConfig,
}> = ({ version, defaultConfig }) => {
let [configured, setConfigured] = useState<boolean>(false);
if (configured) {
return <RqbitWebUI title={`Rqbit Desktop v${version}`}></RqbitWebUI>
}
return <ConfigModal handleOk={() => setConfigured(true)} initialConfig={defaultConfig}></ConfigModal>;
}
Promise.all([get_version(), get_default_config()]).then(([version, config]) => {
ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
<StrictMode>
<APIContext.Provider value={API}>
<RqbitWebUI title={`Rqbit Desktop v${version}`} />
<RqbitDesktop version={version} defaultConfig={config} />
</APIContext.Provider>
</StrictMode>
);
});
})