import * as React from "react"; import { createRoot } from "react-dom/client"; import "./css/App.css" import { useMemo, } from "react"; import { useMicrophoneOptions } from "./100_options_microphone"; import { AppStateProvider, useAppState } from "./001_provider/001_AppStateProvider"; import { library } from "@fortawesome/fontawesome-svg-core"; import { fas } from "@fortawesome/free-solid-svg-icons"; import { far } from "@fortawesome/free-regular-svg-icons"; import { fab } from "@fortawesome/free-brands-svg-icons"; import { AppRootProvider, useAppRoot } from "./001_provider/001_AppRootProvider"; library.add(fas, far, fab); const container = document.getElementById("app")!; const root = createRoot(container); const App = () => { const appState = useAppState() const { voiceChangerSetting } = useMicrophoneOptions() const titleRow = useMemo(() => { return (
Voice Changer Setting for v.1.5.x github manual
) }, []) const clearRow = useMemo(() => { const onClearSettingClicked = async () => { await appState.clearSetting() location.reload() } return ( <>
clear setting
) }, []) const mainSetting = useMemo(() => { return ( <>
{titleRow} {clearRow} {voiceChangerSetting}
) }, [voiceChangerSetting]) return ( <> {mainSetting} ) } const AppStateWrapper = () => { const appRoot = useAppRoot() if (!appRoot.audioContextState.audioContext) { return <>please click window } return ( ) } root.render( );