@@ -4,7 +4,8 @@ import * as THREE from "three"
4
4
import InputSystem from "@/systems/input/InputSystem"
5
5
import GizmoSceneObject , { type GizmoMode } from "@/systems/scene/GizmoSceneObject"
6
6
import World from "@/systems/World"
7
- import { Button , ToggleButton , ToggleButtonGroup } from "./StyledComponents"
7
+ import { Button , ToggleButton , ToggleButtonGroup } from "@mui/material"
8
+ import { Tabs , Tab } from "@mui/material"
8
9
import type TransformGizmoControlProps from "./TransformGizmoControlProps"
9
10
10
11
/**
@@ -56,25 +57,10 @@ const TransformGizmoControl: React.FC<TransformGizmoControlProps> = ({
56
57
57
58
const disableOptions = 2 <= ( translateDisabled ? 1 : 0 ) + ( rotateDisabled ? 1 : 0 ) + ( scaleDisabled ? 1 : 0 )
58
59
59
- const buttons = [ ]
60
- if ( ! translateDisabled )
61
- buttons . push (
62
- < ToggleButton key = "translate-button" value = { "translate" } >
63
- Move
64
- </ ToggleButton >
65
- )
66
- if ( ! rotateDisabled )
67
- buttons . push (
68
- < ToggleButton key = "rotate-button" value = { "rotate" } >
69
- Rotate
70
- </ ToggleButton >
71
- )
72
- if ( ! scaleDisabled )
73
- buttons . push (
74
- < ToggleButton key = "scale-button" value = { "scale" } >
75
- Scale
76
- </ ToggleButton >
77
- )
60
+ const tabs : { label : string ; value : GizmoMode } [ ] = [ ]
61
+ if ( ! translateDisabled ) tabs . push ( { label : "Move" , value : "translate" } )
62
+ if ( ! rotateDisabled ) tabs . push ( { label : "Rotate" , value : "rotate" } )
63
+ if ( ! scaleDisabled ) tabs . push ( { label : "Scale" , value : "scale" } )
78
64
79
65
useEffect ( ( ) => {
80
66
const func = ( ) => {
@@ -98,22 +84,20 @@ const TransformGizmoControl: React.FC<TransformGizmoControlProps> = ({
98
84
// If there are no modes enabled, consider the UI pointless.
99
85
return disableOptions ? undefined : (
100
86
< >
101
- < ToggleButtonGroup
102
- value = { mode }
103
- exclusive
104
- onChange = { ( _ , v ) => {
105
- if ( v === undefined ) return
106
-
107
- setMode ( v )
108
- gizmo ?. setMode ( v )
109
- } }
110
- sx = { {
111
- ...( sx ?? { } ) ,
112
- alignSelf : "center" ,
87
+ < Tabs
88
+ value = { tabs . findIndex ( t => t . value === mode ) }
89
+ onChange = { ( _ , idx ) => {
90
+ const next = tabs [ idx ]
91
+ if ( ! next ) return
92
+ setMode ( next . value )
93
+ gizmo ?. setMode ( next . value )
113
94
} }
95
+ sx = { { ...( sx ?? { } ) , alignSelf : "center" } }
114
96
>
115
- { buttons }
116
- </ ToggleButtonGroup >
97
+ { tabs . map ( t => (
98
+ < Tab key = { t . value } label = { t . label } />
99
+ ) ) }
100
+ </ Tabs >
117
101
{ ! rotateDisabled && (
118
102
< Button
119
103
className = "self-center"
0 commit comments