[Refactor] store.js, etc..: Rename variables and functions.
suffix '_Status' is for async. It has 'loading' state, for now.
This commit is contained in:
5
data.js
5
data.js
@@ -9,6 +9,11 @@ export const translator_list = [
|
||||
{ translator_key: "CTranslate2", translator_name: `Internal\n(Default)`, is_available: true },
|
||||
];
|
||||
|
||||
export const test_device_list = {
|
||||
a: "Device A",
|
||||
"device b": "Device B",
|
||||
};
|
||||
|
||||
|
||||
export const generateTestData = (num) => {
|
||||
const testDataArray = [];
|
||||
|
||||
@@ -4,7 +4,7 @@ import {
|
||||
useSetAtom
|
||||
} from "jotai";
|
||||
|
||||
import { translator_list, generateTestData } from "@data";
|
||||
import { translator_list, test_device_list, generateTestData } from "@data";
|
||||
|
||||
export const store = {
|
||||
backend_subprocess: null,
|
||||
@@ -90,33 +90,31 @@ const createAsyncAtomWithHook = (initialValue, base_ame) => {
|
||||
return { atomInstance, useHook };
|
||||
};
|
||||
|
||||
export const { atomInstance: uiLanguage, useHook: useUiLanguage } = createAtomWithHook("en", "UiLanguage");
|
||||
export const { atomInstance: State_Translation, useHook: useState_Translation } = createAsyncAtomWithHook(false, "State_Translation");
|
||||
export const { atomInstance: State_TranscriptionSend, useHook: useState_TranscriptionSend } = createAsyncAtomWithHook(false, "State_TranscriptionSend");
|
||||
export const { atomInstance: State_TranscriptionReceive, useHook: useState_TranscriptionReceive } = createAsyncAtomWithHook(false, "State_TranscriptionReceive");
|
||||
export const { atomInstance: State_Foreground, useHook: useState_Foreground } = createAsyncAtomWithHook(false, "State_Foreground");
|
||||
export const { atomInstance: Atom_UiLanguageStatus, useHook: useUiLanguageStatus } = createAtomWithHook("en", "UiLanguageStatus");
|
||||
export const { atomInstance: Atom_TranslationStatus, useHook: useTranslationStatus } = createAsyncAtomWithHook(false, "TranslationStatus");
|
||||
export const { atomInstance: Atom_TranscriptionSendStatus, useHook: useTranscriptionSendStatus } = createAsyncAtomWithHook(false, "TranscriptionSendStatus");
|
||||
export const { atomInstance: Atom_TranscriptionReceiveStatus, useHook: useTranscriptionReceiveStatus } = createAsyncAtomWithHook(false, "TranscriptionReceiveStatus");
|
||||
export const { atomInstance: Atom_ForegroundStatus, useHook: useForegroundStatus } = createAsyncAtomWithHook(false, "ForegroundStatus");
|
||||
|
||||
export const { atomInstance: messageLogs, useHook: useMessageLogs } = createAtomWithHook(generateTestData(20), "MessageLogs");
|
||||
export const { atomInstance: isCompactMode, useHook: useIsCompactMode } = createAtomWithHook(false, "IsCompactMode");
|
||||
export const { atomInstance: isOpenedLanguageSelector, useHook: useIsOpenedLanguageSelector } = createAtomWithHook(
|
||||
export const { atomInstance: Atom_MessageLogsStatus, useHook: useMessageLogsStatus } = createAtomWithHook(generateTestData(20), "MessageLogsStatus");
|
||||
export const { atomInstance: Atom_MainWindowCompactModeStatus, useHook: useMainWindowCompactModeStatus } = createAtomWithHook(false, "MainWindowCompactModeStatus");
|
||||
export const { atomInstance: Atom_IsOpenedLanguageSelector, useHook: useIsOpenedLanguageSelector } = createAtomWithHook(
|
||||
{ your_language: false, target_language: false },
|
||||
"IsOpenedLanguageSelector"
|
||||
);
|
||||
|
||||
export const { atomInstance: selectedTab, useHook: useSelectedTab } = createAtomWithHook(1, "SelectedTab");
|
||||
export const { atomInstance: isOpenedConfigWindow, useHook: useIsOpenedConfigWindow } = createAtomWithHook(false, "IsOpenedConfigWindow");
|
||||
export const { atomInstance: selectedConfigTab, useHook: useSelectedConfigTab } = createAtomWithHook("appearance", "SelectedConfigTab");
|
||||
export const { atomInstance: openedDropdownMenu, useHook: useOpenedDropdownMenu } = createAtomWithHook("", "OpenedDropdownMenu");
|
||||
export const { atomInstance: selectedMicDevice, useHook: useSelectedMicDevice } = createAsyncAtomWithHook("device b", "SelectedMicDevice");
|
||||
export const { atomInstance: Atom_SelectedPresetTabStatus, useHook: useSelectedPresetTabStatus } = createAtomWithHook(1, "SelectedPresetTabStatus");
|
||||
export const { atomInstance: Atom_IsOpenedConfigWindow, useHook: useIsOpenedConfigWindow } = createAtomWithHook(false, "IsOpenedConfigWindow");
|
||||
export const { atomInstance: Atom_SelectedConfigTabId, useHook: useSelectedConfigTabId } = createAtomWithHook("appearance", "SelectedConfigTabId");
|
||||
export const { atomInstance: Atom_IsOpenedDropdownMenu, useHook: useIsOpenedDropdownMenu } = createAtomWithHook("", "IsOpenedDropdownMenu");
|
||||
|
||||
const test_list = {
|
||||
a: "Device A",
|
||||
"device b": "Device B",
|
||||
};
|
||||
export const { atomInstance: Atom_SelectedMicDeviceStatus, useHook: useSelectedMicDeviceStatus } = createAsyncAtomWithHook("device b", "SelectedMicDeviceStatus");
|
||||
|
||||
export const { atomInstance: micDeviceList, useHook: useMicDeviceList } = createAtomWithHook(test_list, "MicDeviceList");
|
||||
export const { atomInstance: translatorList, useHook: useTranslatorList } = createAtomWithHook(translator_list, "TranslatorList");
|
||||
export const { atomInstance: selectedTranslator, useHook: useSelectedTranslator } = createAtomWithHook("CTranslate2", "SelectedTranslator");
|
||||
export const { atomInstance: openedTranslatorSelector, useHook: useOpenedTranslatorSelector } = createAtomWithHook(false, "OpenedTranslatorSelector");
|
||||
export const { atomInstance: vrctPosterIndex, useHook: useVrctPosterIndex } = createAtomWithHook(0, "VrctPosterIndex");
|
||||
export const { atomInstance: posterShowcaseWorldPageIndex, useHook: usePosterShowcaseWorldPageIndex } = createAtomWithHook(0, "PosterShowcaseWorldPageIndex");
|
||||
export const { atomInstance: Atom_MicDeviceListStatus, useHook: useMicDeviceListStatus } = createAtomWithHook(test_device_list, "MicDeviceListStatus");
|
||||
|
||||
export const { atomInstance: Atom_TranslatorListStatus, useHook: useTranslatorListStatus } = createAtomWithHook(translator_list, "TranslatorListStatus");
|
||||
export const { atomInstance: Atom_SelectedTranslatorIdStatus, useHook: useSelectedTranslatorIdStatus } = createAtomWithHook("CTranslate2", "SelectedTranslatorIdStatus");
|
||||
export const { atomInstance: Atom_IsOpenedTranslatorSelector, useHook: useIsOpenedTranslatorSelector } = createAtomWithHook(false, "IsOpenedTranslatorSelector");
|
||||
|
||||
export const { atomInstance: Atom_VrctPosterIndex, useHook: useVrctPosterIndex } = createAtomWithHook(0, "VrctPosterIndex");
|
||||
export const { atomInstance: Atom_PosterShowcaseWorldPageIndex, useHook: usePosterShowcaseWorldPageIndex } = createAtomWithHook(0, "PosterShowcaseWorldPageIndex");
|
||||
@@ -1,74 +1,74 @@
|
||||
import { getCurrent } from "@tauri-apps/api/window";
|
||||
|
||||
import {
|
||||
useState_Translation,
|
||||
useState_TranscriptionSend,
|
||||
useState_TranscriptionReceive,
|
||||
useState_Foreground,
|
||||
useTranslationStatus,
|
||||
useTranscriptionSendStatus,
|
||||
useTranscriptionReceiveStatus,
|
||||
useForegroundStatus,
|
||||
} from "@store";
|
||||
|
||||
import { useStdoutToPython } from "./useStdoutToPython";
|
||||
|
||||
export const useMainFunction = () => {
|
||||
const {
|
||||
currentState_Translation,
|
||||
updateState_Translation,
|
||||
asyncUpdateState_Translation,
|
||||
} = useState_Translation();
|
||||
currentTranslationStatus,
|
||||
updateTranslationStatus,
|
||||
asyncUpdateTranslationStatus,
|
||||
} = useTranslationStatus();
|
||||
const {
|
||||
currentState_TranscriptionSend,
|
||||
updateState_TranscriptionSend,
|
||||
asyncUpdateState_TranscriptionSend,
|
||||
} = useState_TranscriptionSend();
|
||||
currentTranscriptionSendStatus,
|
||||
updateTranscriptionSendStatus,
|
||||
asyncUpdateTranscriptionSendStatus,
|
||||
} = useTranscriptionSendStatus();
|
||||
const {
|
||||
currentState_TranscriptionReceive,
|
||||
updateState_TranscriptionReceive,
|
||||
asyncUpdateState_TranscriptionReceive,
|
||||
} = useState_TranscriptionReceive();
|
||||
currentTranscriptionReceiveStatus,
|
||||
updateTranscriptionReceiveStatus,
|
||||
asyncUpdateTranscriptionReceiveStatus,
|
||||
} = useTranscriptionReceiveStatus();
|
||||
const {
|
||||
currentState_Foreground,
|
||||
updateState_Foreground,
|
||||
} = useState_Foreground();
|
||||
currentForegroundStatus,
|
||||
updateForegroundStatus,
|
||||
} = useForegroundStatus();
|
||||
|
||||
const { asyncStdoutToPython } = useStdoutToPython();
|
||||
|
||||
const asyncPending = () => new Promise(() => {});
|
||||
return {
|
||||
toggleTranslation: () => {
|
||||
asyncStdoutToPython({id: "/controller/callback_toggle_translation", data: !currentState_Translation.data});
|
||||
asyncUpdateState_Translation(asyncPending);
|
||||
asyncStdoutToPython({id: "/controller/callback_toggle_translation", data: !currentTranslationStatus.data});
|
||||
asyncUpdateTranslationStatus(asyncPending);
|
||||
},
|
||||
currentState_Translation: currentState_Translation,
|
||||
updateState_Translation: (payload) => {
|
||||
updateState_Translation(payload.data);
|
||||
currentTranslationStatus: currentTranslationStatus,
|
||||
updateTranslationStatus: (payload) => {
|
||||
updateTranslationStatus(payload.data);
|
||||
},
|
||||
|
||||
toggleTranscriptionSend: () => {
|
||||
asyncStdoutToPython({id: "/controller/callback_toggle_transcription_send", data: !currentState_TranscriptionSend.data});
|
||||
asyncUpdateState_TranscriptionSend(asyncPending);
|
||||
asyncStdoutToPython({id: "/controller/callback_toggle_transcription_send", data: !currentTranscriptionSendStatus.data});
|
||||
asyncUpdateTranscriptionSendStatus(asyncPending);
|
||||
},
|
||||
currentState_TranscriptionSend: currentState_TranscriptionSend,
|
||||
updateState_TranscriptionSend: (payload) => {
|
||||
updateState_TranscriptionSend(payload.data);
|
||||
currentTranscriptionSendStatus: currentTranscriptionSendStatus,
|
||||
updateTranscriptionSendStatus: (payload) => {
|
||||
updateTranscriptionSendStatus(payload.data);
|
||||
},
|
||||
|
||||
toggleTranscriptionReceive: () => {
|
||||
asyncStdoutToPython({id: "/controller/callback_toggle_transcription_receive", data: !currentState_TranscriptionReceive.data});
|
||||
asyncUpdateState_TranscriptionReceive(asyncPending);
|
||||
asyncStdoutToPython({id: "/controller/callback_toggle_transcription_receive", data: !currentTranscriptionReceiveStatus.data});
|
||||
asyncUpdateTranscriptionReceiveStatus(asyncPending);
|
||||
},
|
||||
currentState_TranscriptionReceive: currentState_TranscriptionReceive,
|
||||
updateState_TranscriptionReceive: (payload) => {
|
||||
updateState_TranscriptionReceive(payload.data);
|
||||
currentTranscriptionReceiveStatus: currentTranscriptionReceiveStatus,
|
||||
updateTranscriptionReceiveStatus: (payload) => {
|
||||
updateTranscriptionReceiveStatus(payload.data);
|
||||
},
|
||||
|
||||
toggleForeground: () => {
|
||||
const main_window = getCurrent();
|
||||
const is_foreground_enabled = !currentState_Foreground.data;
|
||||
const is_foreground_enabled = !currentForegroundStatus.data;
|
||||
main_window.setAlwaysOnTop(is_foreground_enabled);
|
||||
updateState_Foreground(is_foreground_enabled);
|
||||
updateForegroundStatus(is_foreground_enabled);
|
||||
|
||||
},
|
||||
currentState_Foreground: currentState_Foreground,
|
||||
currentForegroundStatus: currentForegroundStatus,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import {
|
||||
useMessageLogs,
|
||||
useMessageLogsStatus,
|
||||
} from "@store";
|
||||
|
||||
import { useStdoutToPython } from "./useStdoutToPython";
|
||||
|
||||
export const useMessage = () => {
|
||||
const { currentMessageLogs, addMessageLogs, updateMessageLogs } = useMessageLogs();
|
||||
const { currentMessageLogsStatus, addMessageLogsStatus, updateMessageLogsStatus } = useMessageLogsStatus();
|
||||
const { asyncStdoutToPython } = useStdoutToPython();
|
||||
|
||||
return {
|
||||
@@ -17,7 +17,7 @@ export const useMessage = () => {
|
||||
{hour12: false, hour: "2-digit", minute:"2-digit"},
|
||||
);
|
||||
|
||||
addMessageLogs({
|
||||
addMessageLogsStatus({
|
||||
id: uuid,
|
||||
category: "sent",
|
||||
status: "pending",
|
||||
@@ -39,10 +39,10 @@ export const useMessage = () => {
|
||||
return item;
|
||||
});
|
||||
};
|
||||
updateMessageLogs(updateItemById(uuid));
|
||||
updateMessageLogsStatus(updateItemById(uuid));
|
||||
}, 3000);
|
||||
},
|
||||
currentMessageLogs: currentMessageLogs,
|
||||
currentMessageLogsStatus: currentMessageLogsStatus,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -5,15 +5,15 @@ import { useMainFunction } from "./useMainFunction";
|
||||
|
||||
export const useStartPython = () => {
|
||||
const {
|
||||
updateState_Translation,
|
||||
updateState_TranscriptionSend,
|
||||
updateState_TranscriptionReceive,
|
||||
updateTranslationStatus,
|
||||
updateTranscriptionSendStatus,
|
||||
updateTranscriptionReceiveStatus,
|
||||
} = useMainFunction();
|
||||
|
||||
const routes = {
|
||||
"/controller/callback_toggle_translation": updateState_Translation,
|
||||
"/controller/callback_toggle_transcription_send": updateState_TranscriptionSend,
|
||||
"/controller/callback_toggle_transcription_receive": updateState_TranscriptionReceive,
|
||||
"/controller/callback_toggle_translation": updateTranslationStatus,
|
||||
"/controller/callback_toggle_transcription_send": updateTranscriptionSendStatus,
|
||||
"/controller/callback_toggle_transcription_receive": updateTranscriptionReceiveStatus,
|
||||
};
|
||||
|
||||
const receiveRoutes = (parsed_data) => {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { useSettingBox } from "../useSettingBox";
|
||||
import { useSelectedMicDevice, useMicDeviceList } from "@store";
|
||||
import { useSelectedMicDeviceStatus, useMicDeviceListStatus } from "@store";
|
||||
export const Appearance = () => {
|
||||
const { currentSelectedMicDevice, updateSelectedMicDevice } = useSelectedMicDevice();
|
||||
const { currentMicDeviceList } = useMicDeviceList();
|
||||
const { currentSelectedMicDeviceStatus, updateSelectedMicDeviceStatus } = useSelectedMicDeviceStatus();
|
||||
const { currentMicDeviceListStatus } = useMicDeviceListStatus();
|
||||
const { DropdownMenuContainer } = useSettingBox();
|
||||
|
||||
const selectFunction = (selected_data) => {
|
||||
@@ -13,13 +13,13 @@ export const Appearance = () => {
|
||||
}, 3000);
|
||||
});
|
||||
};
|
||||
updateSelectedMicDevice(asyncFunction);
|
||||
updateSelectedMicDeviceStatus(asyncFunction);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<DropdownMenuContainer dropdown_id="mic_host" label="Mic Host/Driver" desc="description" selected_id="b" list={{a: "A", b: "B", c: "C"}} />
|
||||
<DropdownMenuContainer dropdown_id="mic_device" label="Mic Device" desc="description" selected_id={currentSelectedMicDevice.data} list={currentMicDeviceList} selectFunction={selectFunction} state={currentSelectedMicDevice.state} />
|
||||
<DropdownMenuContainer dropdown_id="mic_device" label="Mic Device" desc="description" selected_id={currentSelectedMicDeviceStatus.data} list={currentMicDeviceListStatus} selectFunction={selectFunction} state={currentSelectedMicDeviceStatus.state} />
|
||||
</>
|
||||
);
|
||||
};
|
||||
@@ -1,12 +1,12 @@
|
||||
import styles from "./SettingBox.module.scss";
|
||||
import { useSelectedConfigTab } from "@store";
|
||||
import { useSelectedConfigTabId } from "@store";
|
||||
|
||||
import { Appearance } from "./appearance/Appearance";
|
||||
import { AboutVrct } from "./about_vrct/AboutVrct";
|
||||
|
||||
export const SettingBox = () => {
|
||||
const { currentSelectedConfigTab } = useSelectedConfigTab();
|
||||
switch (currentSelectedConfigTab) {
|
||||
const { currentSelectedConfigTabId } = useSelectedConfigTabId();
|
||||
switch (currentSelectedConfigTabId) {
|
||||
case "appearance":
|
||||
return <Appearance />;
|
||||
case "about_vrct":
|
||||
|
||||
@@ -19,12 +19,12 @@ import vrchat_disclaimer from "@images/about_vrct/vrchat_disclaimer.png";
|
||||
|
||||
import clsx from "clsx";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useUiLanguage } from "@store";
|
||||
import { useUiLanguageStatus } from "@store";
|
||||
import { PosterShowcaseContents } from "./poster_showcase_contents/PosterShowcaseContents";
|
||||
|
||||
export const AboutVrct = () => {
|
||||
const { t } = useTranslation();
|
||||
const { currentUiLanguage } = useUiLanguage();
|
||||
const { currentUiLanguageStatus } = useUiLanguageStatus();
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<div className={styles.dev_section}>
|
||||
@@ -74,7 +74,7 @@ export const AboutVrct = () => {
|
||||
<img src={special_thanks_section_title} className={clsx(styles.section_title, styles.special_thanks)} />
|
||||
<img src={special_thanks_members} className={styles.special_thanks_members_img} />
|
||||
{
|
||||
currentUiLanguage === "ja"
|
||||
currentUiLanguageStatus === "ja"
|
||||
? <img src={special_thanks_message_ja} className={styles.special_thanks_message_img} />
|
||||
: <img src={special_thanks_message_en} className={styles.special_thanks_message_img} />
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import clsx from "clsx";
|
||||
import styles from "./PostersContents.module.scss";
|
||||
import { useUiLanguage } from "@store";
|
||||
import { useUiLanguageStatus } from "@store";
|
||||
|
||||
import { useVrctPosterIndex } from "@store";
|
||||
import ArrowLeftSvg from "@images/arrow_left.svg?react";
|
||||
@@ -30,7 +30,7 @@ import poster_images_authors_m_en from "@images/about_vrct/vrct_posters/authors/
|
||||
|
||||
export const PostersContents = () => {
|
||||
const { currentVrctPosterIndex, updateVrctPosterIndex } = useVrctPosterIndex();
|
||||
const { currentUiLanguage } = useUiLanguage();
|
||||
const { currentUiLanguageStatus } = useUiLanguageStatus();
|
||||
|
||||
|
||||
const updateIndex = (delta) => {
|
||||
@@ -60,7 +60,7 @@ export const PostersContents = () => {
|
||||
</button>
|
||||
</div>
|
||||
{
|
||||
currentUiLanguage === "ja"
|
||||
currentUiLanguageStatus === "ja"
|
||||
? <img src={current_poster_authors_img_ja} className={styles.poster_authors_img} />
|
||||
: <img src={current_poster_authors_img_en} className={styles.poster_authors_img} />
|
||||
}
|
||||
|
||||
@@ -2,17 +2,17 @@ import styles from "./DropdownMenu.module.scss";
|
||||
|
||||
import clsx from "clsx";
|
||||
|
||||
import { useOpenedDropdownMenu } from "@store";
|
||||
import { useIsOpenedDropdownMenu } from "@store";
|
||||
|
||||
export const DropdownMenu = (props) => {
|
||||
|
||||
const { updateOpenedDropdownMenu, currentOpenedDropdownMenu } = useOpenedDropdownMenu();
|
||||
const { updateIsOpenedDropdownMenu, currentIsOpenedDropdownMenu } = useIsOpenedDropdownMenu();
|
||||
const openDropdownMenu = () => {
|
||||
updateOpenedDropdownMenu(props.dropdown_id);
|
||||
updateIsOpenedDropdownMenu(props.dropdown_id);
|
||||
};
|
||||
|
||||
const selectValue = (key) => {
|
||||
updateOpenedDropdownMenu("");
|
||||
updateIsOpenedDropdownMenu("");
|
||||
props.selectFunction({
|
||||
dropdown_id: props.dropdown_id,
|
||||
selected_id: key,
|
||||
@@ -20,7 +20,7 @@ export const DropdownMenu = (props) => {
|
||||
};
|
||||
|
||||
const dropdown_content_wrapper_class_name = clsx(styles["dropdown_content_wrapper"], {
|
||||
[styles["is_opened"]]: (currentOpenedDropdownMenu === props.dropdown_id) ? true : false
|
||||
[styles["is_opened"]]: (currentIsOpenedDropdownMenu === props.dropdown_id) ? true : false
|
||||
});
|
||||
|
||||
const dropdown_toggle_button_class_name = clsx(styles["dropdown_toggle_button"], {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import styles from "./useSettingBox.module.scss";
|
||||
import { LabelComponent } from "./components/label_component/LabelComponent";
|
||||
import { DropdownMenu } from "./components/dropdown_menu/DropdownMenu";
|
||||
import { useOpenedDropdownMenu } from "@store";
|
||||
import { useIsOpenedDropdownMenu } from "@store";
|
||||
|
||||
export const useSettingBox = () => {
|
||||
const { updateOpenedDropdownMenu } = useOpenedDropdownMenu();
|
||||
const { updateIsOpenedDropdownMenu } = useIsOpenedDropdownMenu();
|
||||
|
||||
const DropdownMenuContainer = (props) => {
|
||||
const onMouseLeaveFunction = () => {
|
||||
updateOpenedDropdownMenu("");
|
||||
updateIsOpenedDropdownMenu("");
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -21,20 +21,20 @@ export const SidebarSection = () => {
|
||||
|
||||
import clsx from "clsx";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useSelectedConfigTab } from "@store";
|
||||
import { useSelectedConfigTabId } from "@store";
|
||||
|
||||
const Tab = (props) => {
|
||||
const { t } = useTranslation();
|
||||
const { updateSelectedConfigTab, currentSelectedConfigTab } = useSelectedConfigTab();
|
||||
const { updateSelectedConfigTabId, currentSelectedConfigTabId } = useSelectedConfigTabId();
|
||||
const onclickFunction = () => {
|
||||
updateSelectedConfigTab(props.tab_id);
|
||||
updateSelectedConfigTabId(props.tab_id);
|
||||
};
|
||||
|
||||
const tab_container_class_names = clsx(styles["tab_container"], {
|
||||
[styles["is_selected"]]: (currentSelectedConfigTab === props.tab_id) ? true : false
|
||||
[styles["is_selected"]]: (currentSelectedConfigTabId === props.tab_id) ? true : false
|
||||
});
|
||||
const switch_indicator_class_names = clsx(styles["switch_indicator"], {
|
||||
[styles["is_selected"]]: (currentSelectedConfigTab === props.tab_id) ? true : false
|
||||
[styles["is_selected"]]: (currentSelectedConfigTabId === props.tab_id) ? true : false
|
||||
});
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { useTranslation } from "react-i18next";
|
||||
import styles from "./SectionTitleBox.module.scss";
|
||||
import { useSelectedConfigTab } from "@store";
|
||||
import { useSelectedConfigTabId } from "@store";
|
||||
|
||||
export const SectionTitleBox = () => {
|
||||
const { t } = useTranslation();
|
||||
const { currentSelectedConfigTab } = useSelectedConfigTab();
|
||||
const { currentSelectedConfigTabId } = useSelectedConfigTabId();
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<p className={styles.title}>{t(`config_window.side_menu_labels.${currentSelectedConfigTab}`)}</p>
|
||||
<p className={styles.title}>{t(`config_window.side_menu_labels.${currentSelectedConfigTabId}`)}</p>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -1,11 +1,11 @@
|
||||
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
||||
import styles from "./LogBox.module.scss";
|
||||
import { useMessageLogs, store } from "@store";
|
||||
import { useMessageLogsStatus, store } from "@store";
|
||||
import { MessageContainer } from "./message_container/MessageContainer";
|
||||
import { scrollToBottom } from "@logics/scrollToBottom";
|
||||
|
||||
export const LogBox = () => {
|
||||
const { currentMessageLogs } = useMessageLogs();
|
||||
const { currentMessageLogsStatus } = useMessageLogsStatus();
|
||||
const log_container_ref = useRef(null);
|
||||
const [is_scrolling, setIsScrolling] = useState(false);
|
||||
|
||||
@@ -14,7 +14,7 @@ export const LogBox = () => {
|
||||
if (!is_scrolling) {
|
||||
scrollToBottom(store.log_box_ref, true);
|
||||
}
|
||||
}, [currentMessageLogs]);
|
||||
}, [currentMessageLogsStatus]);
|
||||
|
||||
useEffect(() => {
|
||||
const handleScroll = () => {
|
||||
@@ -39,7 +39,7 @@ export const LogBox = () => {
|
||||
|
||||
return (
|
||||
<div id="log_container" className={styles.container} ref={log_container_ref}>
|
||||
{currentMessageLogs.map(message_data => (
|
||||
{currentMessageLogsStatus.map(message_data => (
|
||||
<MessageContainer key={message_data.id} {...message_data} />
|
||||
))}
|
||||
</div>
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
import clsx from "clsx";
|
||||
import styles from "./SidebarCompactModeButton.module.scss";
|
||||
|
||||
import { useIsCompactMode } from "@store";
|
||||
import { useMainWindowCompactModeStatus } from "@store";
|
||||
import ArrowLeftSvg from "@images/arrow_left.svg?react";
|
||||
|
||||
export const SidebarCompactModeButton = () => {
|
||||
const { updateIsCompactMode, currentIsCompactMode } = useIsCompactMode();
|
||||
const { updateMainWindowCompactModeStatus, currentMainWindowCompactModeStatus } = useMainWindowCompactModeStatus();
|
||||
|
||||
const toggleCompactMode = () => {
|
||||
updateIsCompactMode(!currentIsCompactMode);
|
||||
updateMainWindowCompactModeStatus(!currentMainWindowCompactModeStatus);
|
||||
};
|
||||
|
||||
const class_names = clsx(styles["arrow_left_svg"], {
|
||||
[styles["reverse"]]: currentIsCompactMode
|
||||
[styles["reverse"]]: currentMainWindowCompactModeStatus
|
||||
});
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import clsx from "clsx";
|
||||
|
||||
import styles from "./SidebarSection.module.scss";
|
||||
import { useIsCompactMode } from "@store";
|
||||
import { useMainWindowCompactModeStatus } from "@store";
|
||||
|
||||
import { Logo } from "./logo/Logo";
|
||||
import { MainFunctionSwitch } from "./main_function_switch/MainFunctionSwitch";
|
||||
@@ -9,16 +9,16 @@ import { LanguageSettings } from "./language_settings/LanguageSettings";
|
||||
import { OpenSettings } from "./open_settings/OpenSettings";
|
||||
|
||||
export const SidebarSection = () => {
|
||||
const { currentIsCompactMode } = useIsCompactMode();
|
||||
const { currentMainWindowCompactModeStatus } = useMainWindowCompactModeStatus();
|
||||
const container_class_name = clsx(styles["container"], {
|
||||
[styles["is_compact_mode"]]: currentIsCompactMode
|
||||
[styles["is_compact_mode"]]: currentMainWindowCompactModeStatus
|
||||
});
|
||||
|
||||
return (
|
||||
<div className={container_class_name}>
|
||||
<Logo />
|
||||
<MainFunctionSwitch />
|
||||
{!currentIsCompactMode && <LanguageSettings />}
|
||||
{!currentMainWindowCompactModeStatus && <LanguageSettings />}
|
||||
<OpenSettings />
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -2,20 +2,20 @@ import { useTranslation } from "react-i18next";
|
||||
|
||||
import styles from "./LanguageSettings.module.scss";
|
||||
|
||||
import { PresetSelectTabs } from "./preset_select_tabs/PresetSelectTabs";
|
||||
import { PresetTabSelector } from "./preset_tab_selector/PresetTabSelector";
|
||||
import { LanguageSelectorOpenButton } from "./language_selector_open_button/LanguageSelectorOpenButton";
|
||||
import { LanguageSwapButton } from "./language_swap_button/LanguageSwapButton";
|
||||
import { TranslatorSelectorOpenButton } from "./translator_selector_open_button/TranslatorSelectorOpenButton";
|
||||
import { useOpenedTranslatorSelector } from "@store";
|
||||
import { useIsOpenedTranslatorSelector } from "@store";
|
||||
|
||||
export const LanguageSettings = () => {
|
||||
const { updateOpenedTranslatorSelector} = useOpenedTranslatorSelector();
|
||||
const closeTranslatorSelector = () => updateOpenedTranslatorSelector(false);
|
||||
const { updateIsOpenedTranslatorSelector} = useIsOpenedTranslatorSelector();
|
||||
const closeTranslatorSelector = () => updateIsOpenedTranslatorSelector(false);
|
||||
|
||||
return (
|
||||
<div className={styles.container} onMouseLeave={closeTranslatorSelector} >
|
||||
<p className={styles.title}>Language Settings</p>
|
||||
<PresetSelectTabs />
|
||||
<PresetTabSelector />
|
||||
<PresetContainer />
|
||||
</div>
|
||||
);
|
||||
@@ -32,8 +32,8 @@ const PresetContainer = () => {
|
||||
const { updateIsOpenedLanguageSelector, currentIsOpenedLanguageSelector } = useIsOpenedLanguageSelector();
|
||||
|
||||
const {
|
||||
currentState_TranscriptionSend,
|
||||
currentState_TranscriptionReceive,
|
||||
currentTranscriptionSendStatus,
|
||||
currentTranscriptionReceiveStatus,
|
||||
} = useMainFunction();
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ const PresetContainer = () => {
|
||||
is_opened: currentIsOpenedLanguageSelector.your_language,
|
||||
onClickFunction: () => handleLanguageSelectorClick("your_language"),
|
||||
TurnedOnSvgComponent: <MicSvg />,
|
||||
is_turned_on: currentState_TranscriptionSend.data,
|
||||
is_turned_on: currentTranscriptionSendStatus.data,
|
||||
};
|
||||
|
||||
const target_language_settings = {
|
||||
@@ -87,7 +87,7 @@ const PresetContainer = () => {
|
||||
is_opened: currentIsOpenedLanguageSelector.target_language,
|
||||
onClickFunction: () => handleLanguageSelectorClick("target_language"),
|
||||
TurnedOnSvgComponent: <HeadphonesSvg />,
|
||||
is_turned_on: currentState_TranscriptionReceive.data,
|
||||
is_turned_on: currentTranscriptionReceiveStatus.data,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import styles from "./PresetSelectTabs.module.scss";
|
||||
import styles from "./PresetTabSelector.module.scss";
|
||||
|
||||
export const PresetSelectTabs = () => {
|
||||
export const PresetTabSelector = () => {
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<Tab preset_number={1} />
|
||||
@@ -12,16 +12,16 @@ export const PresetSelectTabs = () => {
|
||||
|
||||
import clsx from "clsx";
|
||||
|
||||
import { useSelectedTab } from "@store";
|
||||
import { useSelectedPresetTabStatus } from "@store";
|
||||
|
||||
const Tab = (props) => {
|
||||
const { updateSelectedTab, currentSelectedTab } = useSelectedTab();
|
||||
const { updateSelectedPresetTabStatus, currentSelectedPresetTabStatus } = useSelectedPresetTabStatus();
|
||||
const onclickFunction = () => {
|
||||
updateSelectedTab(props.preset_number);
|
||||
updateSelectedPresetTabStatus(props.preset_number);
|
||||
};
|
||||
|
||||
const class_names = clsx(styles["tab_container"], {
|
||||
[styles["is_selected"]]: (currentSelectedTab === props.preset_number) ? true : false
|
||||
[styles["is_selected"]]: (currentSelectedPresetTabStatus === props.preset_number) ? true : false
|
||||
});
|
||||
|
||||
return (
|
||||
@@ -2,19 +2,19 @@ import { useTranslation } from "react-i18next";
|
||||
|
||||
import styles from "./TranslatorSelectorOpenButton.module.scss";
|
||||
import { TranslatorSelector } from "./translator_selector/TranslatorSelector";
|
||||
import { useTranslatorList, useSelectedTranslator, useOpenedTranslatorSelector } from "@store";
|
||||
import { useTranslatorListStatus, useSelectedTranslatorIdStatus, useIsOpenedTranslatorSelector } from "@store";
|
||||
|
||||
export const TranslatorSelectorOpenButton = () => {
|
||||
const { t } = useTranslation();
|
||||
const { currentSelectedTranslator } = useSelectedTranslator();
|
||||
const { currentTranslatorList } = useTranslatorList();
|
||||
const currentTranslator = currentTranslatorList.find(
|
||||
translator_data => translator_data.translator_key === currentSelectedTranslator
|
||||
const { currentSelectedTranslatorIdStatus } = useSelectedTranslatorIdStatus();
|
||||
const { currentTranslatorListStatus } = useTranslatorListStatus();
|
||||
const currentTranslator = currentTranslatorListStatus.find(
|
||||
translator_data => translator_data.translator_key === currentSelectedTranslatorIdStatus
|
||||
);
|
||||
|
||||
const { currentOpenedTranslatorSelector, updateOpenedTranslatorSelector} = useOpenedTranslatorSelector();
|
||||
const { currentIsOpenedTranslatorSelector, updateIsOpenedTranslatorSelector} = useIsOpenedTranslatorSelector();
|
||||
|
||||
const openTranslatorSelector = () => updateOpenedTranslatorSelector(!currentOpenedTranslatorSelector);
|
||||
const openTranslatorSelector = () => updateIsOpenedTranslatorSelector(!currentIsOpenedTranslatorSelector);
|
||||
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
@@ -22,7 +22,7 @@ export const TranslatorSelectorOpenButton = () => {
|
||||
<p className={styles.label}>{t("main_window.translator")}</p>
|
||||
<p className={styles.label}>{currentTranslator?.translator_name}</p>
|
||||
</div>
|
||||
{currentOpenedTranslatorSelector && <TranslatorSelector />}
|
||||
{currentIsOpenedTranslatorSelector && <TranslatorSelector />}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -1,10 +1,10 @@
|
||||
import styles from "./TranslatorSelector.module.scss";
|
||||
import { chunkArray } from "@utils/chunkArray";
|
||||
|
||||
import { useTranslatorList, useSelectedTranslator, useOpenedTranslatorSelector } from "@store";
|
||||
import { useTranslatorListStatus, useSelectedTranslatorIdStatus, useIsOpenedTranslatorSelector } from "@store";
|
||||
export const TranslatorSelector = () => {
|
||||
const { currentTranslatorList } = useTranslatorList();
|
||||
const columns = chunkArray(currentTranslatorList, 2);
|
||||
const { currentTranslatorListStatus } = useTranslatorListStatus();
|
||||
const columns = chunkArray(currentTranslatorListStatus, 2);
|
||||
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
@@ -28,18 +28,18 @@ export const TranslatorSelector = () => {
|
||||
|
||||
import clsx from "clsx";
|
||||
const TranslatorBox = (props) => {
|
||||
const { currentSelectedTranslator, updateSelectedTranslator} = useSelectedTranslator();
|
||||
const { updateOpenedTranslatorSelector} = useOpenedTranslatorSelector();
|
||||
const { currentSelectedTranslatorIdStatus, updateSelectedTranslatorIdStatus} = useSelectedTranslatorIdStatus();
|
||||
const { updateIsOpenedTranslatorSelector} = useIsOpenedTranslatorSelector();
|
||||
|
||||
const box_class_name = clsx(
|
||||
styles.box,
|
||||
{ [styles["is_selected"]]: (currentSelectedTranslator === props.translator_id) ? true : false },
|
||||
{ [styles["is_selected"]]: (currentSelectedTranslatorIdStatus === props.translator_id) ? true : false },
|
||||
{ [styles["is_available"]]: (props.is_available === true) ? true : false }
|
||||
);
|
||||
|
||||
const selectTranslator = () => {
|
||||
updateSelectedTranslator(props.translator_id);
|
||||
updateOpenedTranslatorSelector(false);
|
||||
updateSelectedTranslatorIdStatus(props.translator_id);
|
||||
updateIsOpenedTranslatorSelector(false);
|
||||
};
|
||||
return (
|
||||
<div className={box_class_name} onClick={selectTranslator}>
|
||||
|
||||
@@ -11,11 +11,11 @@ export const Logo = () => {
|
||||
|
||||
import vrct_logo from "@images/vrct_logo_for_dark_mode.png";
|
||||
import chato_img from "@images/chato_white.png";
|
||||
import { useIsCompactMode } from "@store";
|
||||
import { useMainWindowCompactModeStatus } from "@store";
|
||||
|
||||
export const LogoBox = () => {
|
||||
const { currentIsCompactMode } = useIsCompactMode();
|
||||
if (currentIsCompactMode === true) {
|
||||
const { currentMainWindowCompactModeStatus } = useMainWindowCompactModeStatus();
|
||||
if (currentMainWindowCompactModeStatus === true) {
|
||||
return <img src={chato_img} className={styles.logo_chato} alt="VRCT logo chato" />;
|
||||
} else {
|
||||
return <img src={vrct_logo} className={styles.logo} alt="VRCT logo" />;
|
||||
|
||||
@@ -5,7 +5,7 @@ import TranslationSvg from "@images/translation.svg?react";
|
||||
import MicSvg from "@images/mic.svg?react";
|
||||
import HeadphonesSvg from "@images/headphones.svg?react";
|
||||
import ForegroundSvg from "@images/foreground.svg?react";
|
||||
import { useIsCompactMode } from "@store";
|
||||
import { useMainWindowCompactModeStatus } from "@store";
|
||||
|
||||
import { useMainFunction } from "@logics/useMainFunction";
|
||||
|
||||
@@ -13,10 +13,10 @@ export const MainFunctionSwitch = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const {
|
||||
toggleTranslation, currentState_Translation,
|
||||
toggleTranscriptionSend, currentState_TranscriptionSend,
|
||||
toggleTranscriptionReceive, currentState_TranscriptionReceive,
|
||||
toggleForeground, currentState_Foreground,
|
||||
toggleTranslation, currentTranslationStatus,
|
||||
toggleTranscriptionSend, currentTranscriptionSendStatus,
|
||||
toggleTranscriptionReceive, currentTranscriptionReceiveStatus,
|
||||
toggleForeground, currentForegroundStatus,
|
||||
} = useMainFunction();
|
||||
|
||||
|
||||
@@ -25,28 +25,28 @@ export const MainFunctionSwitch = () => {
|
||||
switch_id: "translation",
|
||||
label: t("main_window.translation"),
|
||||
SvgComponent: TranslationSvg,
|
||||
currentState: currentState_Translation,
|
||||
currentState: currentTranslationStatus,
|
||||
toggleFunction: toggleTranslation,
|
||||
},
|
||||
{
|
||||
switch_id: "transcription_send",
|
||||
label: t("main_window.transcription_send"),
|
||||
SvgComponent: MicSvg,
|
||||
currentState: currentState_TranscriptionSend,
|
||||
currentState: currentTranscriptionSendStatus,
|
||||
toggleFunction: toggleTranscriptionSend,
|
||||
},
|
||||
{
|
||||
switch_id: "transcription_receive",
|
||||
label: t("main_window.transcription_receive"),
|
||||
SvgComponent: HeadphonesSvg,
|
||||
currentState: currentState_TranscriptionReceive,
|
||||
currentState: currentTranscriptionReceiveStatus,
|
||||
toggleFunction: toggleTranscriptionReceive,
|
||||
},
|
||||
{
|
||||
switch_id: "foreground",
|
||||
label: t("main_window.foreground"),
|
||||
SvgComponent: ForegroundSvg,
|
||||
currentState: currentState_Foreground,
|
||||
currentState: currentForegroundStatus,
|
||||
toggleFunction: toggleForeground,
|
||||
},
|
||||
];
|
||||
@@ -74,10 +74,10 @@ export const SwitchContainer = ({ switchLabel, switch_id, children, currentState
|
||||
const [is_hovered, setIsHovered] = useState(false);
|
||||
const [is_mouse_down, setIsMouseDown] = useState(false);
|
||||
|
||||
const { currentIsCompactMode } = useIsCompactMode();
|
||||
const { currentMainWindowCompactModeStatus } = useMainWindowCompactModeStatus();
|
||||
|
||||
const getClassNames = (baseClass) => clsx(baseClass, {
|
||||
[styles.is_compact_mode]: currentIsCompactMode,
|
||||
[styles.is_compact_mode]: currentMainWindowCompactModeStatus,
|
||||
[styles.is_active]: (currentState.data === true),
|
||||
[styles.is_loading]: (currentState.state === "loading"),
|
||||
[styles.is_hovered]: is_hovered,
|
||||
|
||||
Reference in New Issue
Block a user