From a7d094bbcb176d96f8dbb24f529c26ba0f16cd08 Mon Sep 17 00:00:00 2001
From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com>
Date: Thu, 12 Dec 2024 16:16:40 +0900
Subject: [PATCH] [Update] Main Page: Add UI, multi language.
---
.../main_page/main_section/MainSection.jsx | 43 ++++++++++++--
.../language_selector/LanguageSelector.jsx | 23 +++-----
.../LanguageSelectorTopBar.jsx | 1 +
.../language_settings/LanguageSettings.jsx | 54 +++---------------
.../LanguageSettings.module.scss | 8 +++
.../AddRemoveTargetLanguageButtons.jsx | 34 +++++++++++
...AddRemoveTargetLanguageButtons.module.scss | 32 +++++++++++
.../LanguageSelectorOpenButton.jsx | 57 ++++++++++++++++---
src-ui/assets/add.svg | 1 +
src-ui/assets/remove.svg | 1 +
src-ui/logics/main/useLanguageSettings.js | 33 +++++++++--
src-ui/store.js | 4 +-
12 files changed, 210 insertions(+), 81 deletions(-)
create mode 100644 src-ui/app/main_page/sidebar_section/language_settings/add_remove_target_language_buttons/AddRemoveTargetLanguageButtons.jsx
create mode 100644 src-ui/app/main_page/sidebar_section/language_settings/add_remove_target_language_buttons/AddRemoveTargetLanguageButtons.module.scss
create mode 100644 src-ui/assets/add.svg
create mode 100644 src-ui/assets/remove.svg
diff --git a/src-ui/app/main_page/main_section/MainSection.jsx b/src-ui/app/main_page/main_section/MainSection.jsx
index a61df63d..faf910bd 100644
--- a/src-ui/app/main_page/main_section/MainSection.jsx
+++ b/src-ui/app/main_page/main_section/MainSection.jsx
@@ -1,3 +1,4 @@
+import { useTranslation } from "react-i18next";
import styles from "./MainSection.module.scss";
import { TopBar } from "./top_bar/TopBar";
@@ -6,6 +7,7 @@ import { LanguageSelector } from "./language_selector/LanguageSelector";
import { useStore_IsOpenedLanguageSelector } from "@store";
import { useLanguageSettings } from "@logics_main";
+import { useEffect } from "react";
export const MainSection = () => {
@@ -20,33 +22,62 @@ export const MainSection = () => {
const HandleLanguageSelector = () => {
+ const { t } = useTranslation();
const { currentIsOpenedLanguageSelector, updateIsOpenedLanguageSelector } = useStore_IsOpenedLanguageSelector();
const {
+ currentSelectedPresetTabNumber,
currentSelectedYourLanguages,
setSelectedYourLanguages,
currentSelectedTargetLanguages,
setSelectedTargetLanguages,
} = useLanguageSettings();
+ useEffect(() => {
+ updateIsOpenedLanguageSelector({
+ your_language: false,
+ target_language: false,
+ target_key: "1"
+ });
+
+ }, [currentSelectedPresetTabNumber.data, currentSelectedYourLanguages.data, currentSelectedTargetLanguages.data]);
+
+ const getTitle = (target_selector_key) => {
+ if (target_selector_key === "your_language") return t("main_page.language_selector.title_your_language");
+ if (target_selector_key === "target_language") {
+ if (currentSelectedTargetLanguages.data[currentSelectedPresetTabNumber.data]["2"].enable === false) return t("main_page.language_selector.title_target_language");
+ return `${t("main_page.language_selector.title_target_language")} (${currentIsOpenedLanguageSelector.data.target_key})`;
+ }
+ };
+
+
+
if (currentIsOpenedLanguageSelector.data.your_language === true) {
const onclickFunction_YourLanguage = (payload) => {
- updateIsOpenedLanguageSelector({ your_language: false, target_language: false });
- setSelectedYourLanguages(payload);
+ updateIsOpenedLanguageSelector({ your_language: false, target_language: false, target_key: currentIsOpenedLanguageSelector.data.target_key });
+ setSelectedYourLanguages({
+ ...payload,
+ target_key: currentIsOpenedLanguageSelector.data.target_key,
+ });
};
+ const title = getTitle("your_language");
return (
{letter}
- {languages.map((languageData, index) => ( -{languageData.language} ({languageData.country})
+{language_data.language} ({language_data.country})
{title}
{languageText}
-({countryText})
+{language_text}
+({country_text})