Files
VRCT/src-ui/app/App.jsx
Sakamoto Shiina f34eaa6ee2 [Update] Config Page: Device Tab. Add Speaker device selector.
(Now, Devices (Mic host, Mic device, Speaker device) are selectable.)
2024-09-03 11:30:40 +09:00

56 lines
1.9 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,
// getMicDeviceList,
getSelectedMicDevice,
getSelectedSpeakerDevice,
} = useConfig();
useEffect(() => {
main_page.setDecorations(true);
if (!hasRunRef.current) {
asyncStartPython().then((result) => {
getSoftwareVersion();
// getMicHostList();
getSelectedMicHost();
// getMicDeviceList();
getSelectedMicDevice();
getSelectedSpeakerDevice();
}).catch((err) => {
console.error(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>
);
};