rqbit desktop configuration before startup works
This commit is contained in:
parent
a3475784e9
commit
ee996012af
5 changed files with 340 additions and 8 deletions
|
|
@ -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>
|
||||
);
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue