|  |  |  | 
|---|
|  |  |  | import CopyDrawer from './CopyDrawer'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const MapSettings = (props) => { | 
|---|
|  |  |  | const { sprite, setSpriteSettings, onSubmit, width } = props; | 
|---|
|  |  |  | const { sprite, setSpriteSettings, onSubmit, width, lastCopiedSprites, setLastCopiedSprites } = props; | 
|---|
|  |  |  | const translate = useTranslate(); | 
|---|
|  |  |  | const [copyVisible, setCopyVisible] = useState(false); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { control, handleSubmit, reset, watch } = useForm({ | 
|---|
|  |  |  | defaultValues: { | 
|---|
|  |  |  | x: sprite?.position.x || 0, | 
|---|
|  |  |  | y: sprite?.position.y || 0, | 
|---|
|  |  |  | scaleX: sprite?.scale.x || 1, | 
|---|
|  |  |  | scaleY: sprite?.scale.y || 1, | 
|---|
|  |  |  | x: sprite?.position?.x || 0, | 
|---|
|  |  |  | y: sprite?.position?.y || 0, | 
|---|
|  |  |  | scaleX: sprite?.scale?.x || 1, | 
|---|
|  |  |  | scaleY: sprite?.scale?.y || 1, | 
|---|
|  |  |  | rotation: (sprite?.rotation * 180) / Math.PI || 0, | 
|---|
|  |  |  | copyDirection: 'right', | 
|---|
|  |  |  | copyCount: 1, | 
|---|
|  |  |  | 
|---|
|  |  |  | if (sprite) { | 
|---|
|  |  |  | setCopyVisible(false); | 
|---|
|  |  |  | reset({ | 
|---|
|  |  |  | x: sprite.position.x, | 
|---|
|  |  |  | y: sprite.position.y, | 
|---|
|  |  |  | scaleX: sprite.scale.x, | 
|---|
|  |  |  | scaleY: sprite.scale.y, | 
|---|
|  |  |  | rotation: (sprite.rotation * 180) / Math.PI, | 
|---|
|  |  |  | x: sprite?.position.x, | 
|---|
|  |  |  | y: sprite?.position.y, | 
|---|
|  |  |  | scaleX: sprite?.scale.x, | 
|---|
|  |  |  | scaleY: sprite?.scale.y, | 
|---|
|  |  |  | rotation: (sprite?.rotation * 180) / Math.PI, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, [sprite, reset]); | 
|---|
|  |  |  | 
|---|
|  |  |  | }}> | 
|---|
|  |  |  | {translate('page.map.settings.map.copy.execute')} | 
|---|
|  |  |  | </Button> | 
|---|
|  |  |  | <Button variant="text" color="primary"> | 
|---|
|  |  |  | <Button variant="text" color="primary" onClick={() => { | 
|---|
|  |  |  | if (lastCopiedSprites && lastCopiedSprites.length > 0) { | 
|---|
|  |  |  | lastCopiedSprites.forEach(copiedSprite => { | 
|---|
|  |  |  | Tool.getMapContainer().removeChild(copiedSprite); | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | setLastCopiedSprites([]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }}> | 
|---|
|  |  |  | {translate('page.map.settings.map.copy.reverse')} | 
|---|
|  |  |  | </Button> | 
|---|
|  |  |  | </Stack> | 
|---|
|  |  |  | 
|---|
|  |  |  | </Stack> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  | </Box> | 
|---|
|  |  |  | </Box > | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <CopyDrawer | 
|---|
|  |  |  | open={copyVisible} | 
|---|
|  |  |  | 
|---|
|  |  |  | handleOnCopy={() => { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }} | 
|---|
|  |  |  | setLastCopiedSprites={setLastCopiedSprites} | 
|---|
|  |  |  | setSpriteSettings={setSpriteSettings} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </> | 
|---|
|  |  |  | ); | 
|---|