From db605294667e32ef7c1cbf91bb8703ac28ec5420 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:33:20 +0900 Subject: [PATCH] [Update]: Allow inserting custom components into MultiDropdownMenu. - For Device components Auto select device that is SwitchBox component. --- .../dropdown_menu/DropdownMenu.jsx | 13 ++- .../setting_box/_templates/Templates.jsx | 17 ++-- .../setting_box/device/Device.jsx | 72 ++++++++-------- .../transcription/Transcription.module.scss | 83 ------------------- .../setting_box/translation/Translation.jsx | 6 -- .../translation/Translation.module.scss | 58 ------------- 6 files changed, 51 insertions(+), 198 deletions(-) diff --git a/src-ui/views/app/config_page/setting_section/setting_box/_components/dropdown_menu/DropdownMenu.jsx b/src-ui/views/app/config_page/setting_section/setting_box/_components/dropdown_menu/DropdownMenu.jsx index 3de43b00..915502a2 100644 --- a/src-ui/views/app/config_page/setting_section/setting_box/_components/dropdown_menu/DropdownMenu.jsx +++ b/src-ui/views/app/config_page/setting_section/setting_box/_components/dropdown_menu/DropdownMenu.jsx @@ -13,9 +13,16 @@ export const DropdownMenu = (props) => { export const MultiDropdownMenu = (props) => { return (
- {props.dropdown_settings.map((dropdown_props, index) => ( - - ))} + {props.dropdown_settings.map((dropdown_props, index) => { + if (dropdown_props.insert_component) { + const InsertComponent = dropdown_props.insert_component; + return ; + } + return ( + + ); + } + )}
); }; \ No newline at end of file diff --git a/src-ui/views/app/config_page/setting_section/setting_box/_templates/Templates.jsx b/src-ui/views/app/config_page/setting_section/setting_box/_templates/Templates.jsx index fc6960d0..96378587 100644 --- a/src-ui/views/app/config_page/setting_section/setting_box/_templates/Templates.jsx +++ b/src-ui/views/app/config_page/setting_section/setting_box/_templates/Templates.jsx @@ -35,27 +35,23 @@ export const useOnMouseLeaveDropdownMenu = () => { export const DropdownMenuContainer = (props) => { const { onMouseLeaveFunction } = useOnMouseLeaveDropdownMenu(); + return ( -
+ -
+ ); }; export const MultiDropdownMenuContainer = (props) => { const { onMouseLeaveFunction } = useOnMouseLeaveDropdownMenu(); - const { currentIsBreakPoint } = useStore_IsBreakPoint(); - - const container_class = clsx(styles.container, { - [styles.is_break_point]: currentIsBreakPoint.data, - }); return ( -
+ -
+ ); }; @@ -64,6 +60,7 @@ const TemplatesContainerWrapper = ({ add_break_point = true, flex_column = false, remove_border_bottom = false, + onMouseLeaveFunction = null, }) => { const { currentIsBreakPoint } = useStore_IsBreakPoint(); @@ -74,7 +71,7 @@ const TemplatesContainerWrapper = ({ }); return ( -
+
{children}
); diff --git a/src-ui/views/app/config_page/setting_section/setting_box/device/Device.jsx b/src-ui/views/app/config_page/setting_section/setting_box/device/Device.jsx index b9408489..fe468d57 100644 --- a/src-ui/views/app/config_page/setting_section/setting_box/device/Device.jsx +++ b/src-ui/views/app/config_page/setting_section/setting_box/device/Device.jsx @@ -9,6 +9,7 @@ import { import { useOnMouseLeaveDropdownMenu, + MultiDropdownMenuContainer, } from "../_templates/Templates"; import { @@ -71,46 +72,41 @@ const Mic_Container = () => { } }; - const { currentIsBreakPoint } = useStore_IsBreakPoint(); - const device_container_class = clsx(styles.device_container, { - [styles.is_break_point]: currentIsBreakPoint.data, - }); - return (
-
- -
- - -
-
+
diff --git a/src-ui/views/app/config_page/setting_section/setting_box/transcription/Transcription.module.scss b/src-ui/views/app/config_page/setting_section/setting_box/transcription/Transcription.module.scss index be78c8af..1170a41c 100644 --- a/src-ui/views/app/config_page/setting_section/setting_box/transcription/Transcription.module.scss +++ b/src-ui/views/app/config_page/setting_section/setting_box/transcription/Transcription.module.scss @@ -2,87 +2,4 @@ display: flex; flex-direction: column; gap: 6.4rem; -} - - - - - - - - - - -// [Fix me] Need refactor. -.mic_container { - display: flex; - flex-direction: column; - border-bottom: solid 0.1rem var(--dark_800_color); - padding-bottom: 1rem; -} - -.speaker_container { - padding-top: 0rem; -} - -.device_container { - display: flex; - width: 100%; - justify-content: space-between; - align-items: center; - padding: 2rem; - margin-bottom: 0rem; - &.is_break_point { - flex-direction: column; - gap: 2rem; - align-items: start; - & .device_contents { - display: flex; - width: 100%; - justify-content: space-between; - padding-left: 0rem; - } - } -} - -.threshold_container { - padding: 2rem; -} - - - -.threshold_container { - display: flex; - width: 100%; - flex-direction: column; - justify-content: space-between; - align-items: center; - gap: 2rem; -} - -.threshold_switch_section { - display: flex; - width: 100%; - justify-content: space-between; - align-items: center; - flex-shrink: 0; -} - -.threshold_section { - width: 100%; -} - - - - -.device_label { - font-size: 1.8rem; -} - -.device_contents { - display: flex; - width: 100%; - justify-content: end; - padding-left: 2rem; - gap: 2rem; } \ No newline at end of file diff --git a/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.jsx b/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.jsx index a612eaba..cb5ad232 100644 --- a/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.jsx +++ b/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.jsx @@ -91,8 +91,6 @@ const TranslationComputeDevice_Box = () => { currentSelectedTranslationComputeType, setSelectedTranslationComputeType, } = useTranslation(); - const { onMouseLeaveFunction } = useOnMouseLeaveDropdownMenu(); - const { currentIsBreakPoint } = useStore_IsBreakPoint(); const list_for_ui = transformDeviceArray(currentSelectableTranslationComputeDeviceList.data); @@ -174,10 +172,6 @@ const TranslationComputeDevice_Box = () => { setSelectedTranslationComputeType(selected_data.selected_id); }; - const device_container_class = clsx(styles.device_container, { - [styles.is_break_point]: currentIsBreakPoint.data, - }); - const is_disabled_selector = currentSelectedTranslationComputeDevice.state === "pending" || currentSelectedTranslationComputeType.state === "pending"; return ( diff --git a/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.module.scss b/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.module.scss index 993e5256..e69de29b 100644 --- a/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.module.scss +++ b/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.module.scss @@ -1,58 +0,0 @@ -// [Fix me] Need refactor. -.mic_container { - display: flex; - flex-direction: column; - border-bottom: solid 0.1rem var(--dark_800_color); - padding-bottom: 1rem; -} - -.speaker_container { - padding-top: 0rem; -} - -.device_container { - display: flex; - width: 100%; - justify-content: space-between; - align-items: center; - padding: 2rem; - margin-bottom: 0rem; - &.is_break_point { - flex-direction: column; - gap: 2rem; - align-items: start; - & .device_contents { - display: flex; - width: 100%; - justify-content: space-between; - padding-left: 0rem; - } - } -} - -.threshold_container { - padding: 2rem; -} - - - -.threshold_container { - display: flex; - width: 100%; - flex-direction: column; - justify-content: space-between; - align-items: center; - gap: 2rem; -} - -.threshold_switch_section { - display: flex; - width: 100%; - justify-content: space-between; - align-items: center; - flex-shrink: 0; -} - -.threshold_section { - width: 100%; -} \ No newline at end of file