[Update] Main Page. Add Language swap button functionally.
This commit is contained in:
@@ -5,10 +5,12 @@ import { useTranslation } from "react-i18next";
|
|||||||
import styles from "./LanguageSwapButton.module.scss";
|
import styles from "./LanguageSwapButton.module.scss";
|
||||||
|
|
||||||
import NarrowArrowDownSvg from "@images/narrow_arrow_down.svg?react";
|
import NarrowArrowDownSvg from "@images/narrow_arrow_down.svg?react";
|
||||||
|
import { useLanguageSettings } from "@logics_main/useLanguageSettings";
|
||||||
|
|
||||||
export const LanguageSwapButton = () => {
|
export const LanguageSwapButton = () => {
|
||||||
const [isHovered, setIsHovered] = useState(false);
|
const [isHovered, setIsHovered] = useState(false);
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
const { runLanguageSwap } = useLanguageSettings();
|
||||||
|
|
||||||
const label = isHovered
|
const label = isHovered
|
||||||
? t("main_page.swap_button_label")
|
? t("main_page.swap_button_label")
|
||||||
@@ -27,6 +29,7 @@ export const LanguageSwapButton = () => {
|
|||||||
className={styles.swap_button_wrapper}
|
className={styles.swap_button_wrapper}
|
||||||
onMouseEnter={handleMouseEnter}
|
onMouseEnter={handleMouseEnter}
|
||||||
onMouseLeave={handleMouseLeave}
|
onMouseLeave={handleMouseLeave}
|
||||||
|
onClick={runLanguageSwap}
|
||||||
>
|
>
|
||||||
<NarrowArrowDownSvg className={clsx(styles.narrow_arrow_down_svg, styles.reverse)} />
|
<NarrowArrowDownSvg className={clsx(styles.narrow_arrow_down_svg, styles.reverse)} />
|
||||||
<p className={labelClassName}>{label}</p>
|
<p className={labelClassName}>{label}</p>
|
||||||
|
|||||||
@@ -104,6 +104,12 @@ export const useLanguageSettings = () => {
|
|||||||
asyncStdoutToPython("/set/selected_translator_engines", send_obj);
|
asyncStdoutToPython("/set/selected_translator_engines", send_obj);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const runLanguageSwap = () => {
|
||||||
|
pendingSelectedYourLanguages();
|
||||||
|
pendingSelectedTargetLanguages();
|
||||||
|
asyncStdoutToPython("/run/swap_your_language_and_target_language");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
currentSelectedPresetTabNumber,
|
currentSelectedPresetTabNumber,
|
||||||
@@ -134,5 +140,7 @@ export const useLanguageSettings = () => {
|
|||||||
getSelectedTranslationEngines,
|
getSelectedTranslationEngines,
|
||||||
updateSelectedTranslationEngines,
|
updateSelectedTranslationEngines,
|
||||||
setSelectedTranslationEngines,
|
setSelectedTranslationEngines,
|
||||||
|
|
||||||
|
runLanguageSwap,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -97,6 +97,11 @@ export const useReceiveRoutes = () => {
|
|||||||
"/get/selected_translator_engines": updateSelectedTranslationEngines,
|
"/get/selected_translator_engines": updateSelectedTranslationEngines,
|
||||||
"/set/selected_translator_engines": updateSelectedTranslationEngines,
|
"/set/selected_translator_engines": updateSelectedTranslationEngines,
|
||||||
|
|
||||||
|
"/run/swap_your_language_and_target_language": (payload) => {
|
||||||
|
updateSelectedYourLanguages(payload.your);
|
||||||
|
updateSelectedTargetLanguages(payload.target);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
// Language Selector
|
// Language Selector
|
||||||
"/get/list_languages": updateSelectableLanguageList,
|
"/get/list_languages": updateSelectableLanguageList,
|
||||||
|
|||||||
Reference in New Issue
Block a user