Files
VRCT/src-ui/app/App.jsx

50 lines
1.6 KiB
JavaScript

import { useIsOpenedConfigPage } from "@store";
import { getCurrent } from "@tauri-apps/api/window";
import { useEffect, useRef } from "react";
import { useStartPython } from "@logics/useStartPython";
import { useConfig } from "@logics/useConfig";
import { MainPage } from "./main_page/MainPage";
import { ConfigPage } from "./config_page/ConfigPage";
import styles from "./App.module.scss";
import clsx from "clsx";
export const App = () => {
const { asyncStartPython } = useStartPython();
const hasRunRef = useRef(false);
const main_page = getCurrent();
const { currentIsOpenedConfigPage } = useIsOpenedConfigPage();
const {
getSoftwareVersion,
getMicHostList,
getSelectedMicHost,
} = useConfig();
useEffect(() => {
main_page.setDecorations(true);
if (!hasRunRef.current) {
asyncStartPython().then((result) => {
getSoftwareVersion();
getMicHostList();
getSelectedMicHost();
}).catch((err) => {
});
}
return () => hasRunRef.current = true;
}, []);
return (
<div className={styles.container}>
<div className={clsx(styles.page, styles.config_page)}>
<ConfigPage />
</div>
<div className={clsx(styles.page, styles.main_page, {
[styles.show_config]: currentIsOpenedConfigPage,
[styles.show_main]: !currentIsOpenedConfigPage
})}>
<MainPage />
</div>
</div>
);
};