diff --git a/src-ui/utils/mixins.scss b/src-ui/utils/mixins.scss
index 3532f992..c1776870 100644
--- a/src-ui/utils/mixins.scss
+++ b/src-ui/utils/mixins.scss
@@ -29,7 +29,6 @@ $default_loader_line_width: 0.2rem !default;
border-left: $loader_line_width solid transparent;
}
- // @keyframes
@keyframes rotate_animation {
0% {
transform: translate($calc_translate, $calc_translate) rotate(0deg);
@@ -60,16 +59,12 @@ $toggle_control_size: $toggle_height - calc($toggle_gutter * 2);
position: relative;
height: 100%;
width: auto;
- padding-left: $toggle_width;
.control {
- position: absolute;
- top: 0;
- left: 0;
+ position: relative;
height: $toggle_height;
width: $toggle_width;
border-radius: $toggle_radius;
background-color: $toggle_background_color_off;
- // transition: background-color $toggle_control_speed $toggle_control_ease;
&:after {
content: "";
position: absolute;
@@ -100,8 +95,4 @@ $toggle_control_size: $toggle_height - calc($toggle_gutter * 2);
}
}
}
-}
-
-.toggle_control {
- @include toggle_control_styles;
}
\ No newline at end of file
diff --git a/src-ui/windows/config_window/setting_section/setting_box/Appearance/Appearance.jsx b/src-ui/windows/config_window/setting_section/setting_box/Appearance/Appearance.jsx
index 83b8840d..465894cc 100644
--- a/src-ui/windows/config_window/setting_section/setting_box/Appearance/Appearance.jsx
+++ b/src-ui/windows/config_window/setting_section/setting_box/Appearance/Appearance.jsx
@@ -7,6 +7,7 @@ export const Appearance = () => {
DropdownMenuContainer,
SliderContainer,
CheckboxContainer,
+ SwitchboxContainer,
} = useSettingBox();
const selectFunction = (selected_data) => {
@@ -27,6 +28,7 @@ export const Appearance = () => {
+
>
);
};
\ No newline at end of file
diff --git a/src-ui/windows/config_window/setting_section/setting_box/appearance/Appearance.jsx b/src-ui/windows/config_window/setting_section/setting_box/appearance/Appearance.jsx
index 83b8840d..465894cc 100644
--- a/src-ui/windows/config_window/setting_section/setting_box/appearance/Appearance.jsx
+++ b/src-ui/windows/config_window/setting_section/setting_box/appearance/Appearance.jsx
@@ -7,6 +7,7 @@ export const Appearance = () => {
DropdownMenuContainer,
SliderContainer,
CheckboxContainer,
+ SwitchboxContainer,
} = useSettingBox();
const selectFunction = (selected_data) => {
@@ -27,6 +28,7 @@ export const Appearance = () => {
+
>
);
};
\ No newline at end of file
diff --git a/src-ui/windows/config_window/setting_section/setting_box/components/switchbox/Switchbox.jsx b/src-ui/windows/config_window/setting_section/setting_box/components/switchbox/Switchbox.jsx
new file mode 100644
index 00000000..f8b16f1e
--- /dev/null
+++ b/src-ui/windows/config_window/setting_section/setting_box/components/switchbox/Switchbox.jsx
@@ -0,0 +1,43 @@
+import clsx from "clsx";
+import { useState } from "react";
+import styles from "./Switchbox.module.scss";
+
+export const Switchbox = (props) => {
+
+ const [is_turned_on, setIsTurnedOn] = useState(false);
+ const [is_hovered, setIsHovered] = useState(false);
+ const [is_mouse_down, setIsMouseDown] = useState(false);
+
+ const getClassNames = (baseClass) => clsx(baseClass, {
+ [styles.is_active]: (is_turned_on === true),
+ // [styles.is_loading]: (currentState.state === "loading"),
+ [styles.is_hovered]: is_hovered,
+ [styles.is_mouse_down]: is_mouse_down,
+ });
+
+ const onMouseEnter = () => setIsHovered(true);
+ const onMouseLeave = () => setIsHovered(false);
+ const onMouseDown = () => setIsMouseDown(true);
+ const onMouseUp = () => setIsMouseDown(false);
+
+ const toggleFunction = () => {
+ setIsTurnedOn(!is_turned_on);
+ };
+
+
+ return (
+
+ );
+};
diff --git a/src-ui/windows/config_window/setting_section/setting_box/components/switchbox/Switchbox.module.scss b/src-ui/windows/config_window/setting_section/setting_box/components/switchbox/Switchbox.module.scss
new file mode 100644
index 00000000..1f7f7c83
--- /dev/null
+++ b/src-ui/windows/config_window/setting_section/setting_box/components/switchbox/Switchbox.module.scss
@@ -0,0 +1,25 @@
+@import "@scss_mixins";
+
+.switchbox_container {
+ width: 100%;
+ display: flex;
+ justify-content: end;
+ align-items: center;
+ height: 2rem;
+}
+
+.switchbox_wrapper {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ padding: 2rem;
+ height: 100%;
+}
+
+.toggle_control {
+ @include toggle_control_styles;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
\ No newline at end of file
diff --git a/src-ui/windows/config_window/setting_section/setting_box/components/useSettingBox.jsx b/src-ui/windows/config_window/setting_section/setting_box/components/useSettingBox.jsx
index 73432ee7..27196c2b 100644
--- a/src-ui/windows/config_window/setting_section/setting_box/components/useSettingBox.jsx
+++ b/src-ui/windows/config_window/setting_section/setting_box/components/useSettingBox.jsx
@@ -3,6 +3,7 @@ import { LabelComponent } from "./label_component/LabelComponent";
import { DropdownMenu } from "./dropdown_menu/DropdownMenu";
import { Slider } from "./slider/Slider";
import { Checkbox } from "./checkbox/Checkbox";
+import { Switchbox } from "./switchbox/Switchbox";
import { useIsOpenedDropdownMenu } from "@store";
export const useSettingBox = () => {
@@ -39,9 +40,19 @@ export const useSettingBox = () => {
);
};
+ const SwitchboxContainer = (props) => {
+ return (
+
+
+
+
+ );
+ };
+
return {
DropdownMenuContainer,
SliderContainer,
CheckboxContainer,
+ SwitchboxContainer,
};
};
\ No newline at end of file
diff --git a/src-ui/windows/main_window/sidebar_section/main_function_switch/MainFunctionSwitch.module.scss b/src-ui/windows/main_window/sidebar_section/main_function_switch/MainFunctionSwitch.module.scss
index 1164c2b1..bcdd30c5 100644
--- a/src-ui/windows/main_window/sidebar_section/main_function_switch/MainFunctionSwitch.module.scss
+++ b/src-ui/windows/main_window/sidebar_section/main_function_switch/MainFunctionSwitch.module.scss
@@ -82,6 +82,10 @@ $loading_label_color: var(--dark_500_color);
.toggle_control {
@include toggle_control_styles;
+ display: flex;
+ justify-content: end;
+ align-items: center;
+ width: 100%;
&.is_compact_mode {
display: none;
}