import React from 'react'; import { ProjectionOrientationEnum } from 'src/types'; import { Box, TextField, ToggleButton, ToggleButtonGroup, Slider, IconButton as MUIIconButton } from '@mui/material'; import { TextRotationNone as TextRotationNoneIcon, Close as CloseIcon } from '@mui/icons-material'; import { useTextBox } from 'src/hooks/useTextBox'; import { useUiStateStore } from 'src/stores/uiStateStore'; import { getIsoProjectionCss } from 'src/utils'; import { useScene } from 'src/hooks/useScene'; import { ControlsContainer } from '../components/ControlsContainer'; import { Section } from '../components/Section'; import { DeleteButton } from '../components/DeleteButton'; interface Props { id: string; } export const TextBoxControls = ({ id }: Props) => { const uiStateActions = useUiStateStore((state) => { return state.actions; }); const textBox = useTextBox(id); const { updateTextBox, deleteTextBox } = useScene(); // If textBox doesn't exist, return null if (!textBox) { return null; } return ( {/* Close button */} uiStateActions.setItemControls(null)} sx={{ position: 'absolute', top: 8, right: 8, zIndex: 2, }} size="small" >
{ updateTextBox(textBox.id, { content: e.target.value as string }); }} />
{ updateTextBox(textBox.id, { fontSize: newSize as number }); }} />
{ if (textBox.orientation === orientation || orientation === null) return; updateTextBox(textBox.id, { orientation }); }} >
{ uiStateActions.setItemControls(null); deleteTextBox(textBox.id); }} />
); };