Implement ToolbarSwitchSelect
This commit is contained in:
parent
20603afd40
commit
ff0f8d557b
7 changed files with 137 additions and 31 deletions
|
@ -2,13 +2,16 @@ import type {VFC} from 'react'
|
|||
import React from 'react'
|
||||
import {useEditorStore} from '../../store'
|
||||
import shallow from 'zustand/shallow'
|
||||
import {GiPocketBow, IoCameraOutline} from 'react-icons/all'
|
||||
import {GiPocketBow, IoCameraOutline, RiFocus3Line} from 'react-icons/all'
|
||||
import {Vector3} from 'three'
|
||||
import type {$FixMe} from '@theatre/shared/utils/types'
|
||||
import studio, {ToolbarIconButton} from '@theatre/studio'
|
||||
import {getSelected} from '../useSelected'
|
||||
import {usePrism, useVal} from '@theatre/dataverse-react'
|
||||
import styled from 'styled-components'
|
||||
import TransformControlsModeSelect from './TransformControlsModeSelect'
|
||||
import ViewportShadingSelect from './ViewportShadingSelect'
|
||||
import TransformControlsSpaceSelect from './TransformControlsSpaceSelect'
|
||||
|
||||
const ToolGroup = styled.div`
|
||||
pointer-events: auto;
|
||||
|
@ -44,7 +47,7 @@ const Toolbar: VFC = () => {
|
|||
label="Create snapshot"
|
||||
/>
|
||||
</ToolGroup>
|
||||
{/* <ToolGroup>
|
||||
<ToolGroup>
|
||||
<TransformControlsModeSelect
|
||||
value={transformControlsMode}
|
||||
onChange={(value) =>
|
||||
|
@ -75,7 +78,7 @@ const Toolbar: VFC = () => {
|
|||
/>
|
||||
</ToolGroup>
|
||||
<ToolGroup>
|
||||
<IconButton
|
||||
<ToolbarIconButton
|
||||
label="Focus on selected"
|
||||
icon={<RiFocus3Line />}
|
||||
onClick={() => {
|
||||
|
@ -99,7 +102,7 @@ const Toolbar: VFC = () => {
|
|||
}
|
||||
}}
|
||||
/>
|
||||
</ToolGroup> */}
|
||||
</ToolGroup>
|
||||
<ToolGroup>
|
||||
<ToolbarIconButton
|
||||
label="Align object to view"
|
||||
|
|
|
@ -1,39 +1,41 @@
|
|||
import {ToolbarSwitchSelect} from '@theatre/studio'
|
||||
import type {VFC} from 'react'
|
||||
import React from 'react'
|
||||
import {GiClockwiseRotation, GiMove, GiResize} from 'react-icons/all'
|
||||
import type {TransformControlsMode} from '../../store'
|
||||
import CompactModeSelect from './utils/CompactModeSelect'
|
||||
|
||||
export interface TransformControlsModeSelectProps {
|
||||
value: TransformControlsMode
|
||||
onChange: (value: TransformControlsMode) => void
|
||||
onChange: (value: string) => void
|
||||
}
|
||||
|
||||
const TransformControlsModeSelect: VFC<TransformControlsModeSelectProps> = ({
|
||||
value,
|
||||
onChange,
|
||||
}) => (
|
||||
<CompactModeSelect
|
||||
value={value}
|
||||
onChange={onChange}
|
||||
options={[
|
||||
{
|
||||
option: 'translate',
|
||||
label: 'Tool: Translate',
|
||||
icon: <GiMove />,
|
||||
},
|
||||
{
|
||||
option: 'rotate',
|
||||
label: 'Tool: Rotate',
|
||||
icon: <GiClockwiseRotation />,
|
||||
},
|
||||
{
|
||||
option: 'scale',
|
||||
label: 'Tool: Scale',
|
||||
icon: <GiResize />,
|
||||
},
|
||||
]}
|
||||
/>
|
||||
)
|
||||
}) => {
|
||||
return (
|
||||
<ToolbarSwitchSelect
|
||||
value={value}
|
||||
onChange={onChange}
|
||||
options={[
|
||||
{
|
||||
value: 'translate',
|
||||
label: 'Tool: Translate',
|
||||
icon: <GiMove />,
|
||||
},
|
||||
{
|
||||
value: 'rotate',
|
||||
label: 'Tool: Rotate',
|
||||
icon: <GiClockwiseRotation />,
|
||||
},
|
||||
{
|
||||
value: 'scale',
|
||||
label: 'Tool: Scale',
|
||||
icon: <GiResize />,
|
||||
},
|
||||
]}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
export default TransformControlsModeSelect
|
||||
|
|
|
@ -55,6 +55,8 @@ function OptionButton<Option>({
|
|||
icon,
|
||||
onClick,
|
||||
}: OptionButtonProps<Option>) {
|
||||
console.log('deprecate CompactModeSelect')
|
||||
|
||||
const tooltip = useTooltipState()
|
||||
return (
|
||||
<>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue