@@ -3,7 +3,7 @@ import { environment } from '#store/environment';
33import { observer } from 'mobx-react' ;
44import { exportSprite } from '#formats/image' ;
55import rotSprite , { Pixels , addMarginToImageData , getRotateDiagonal } from '#util/rotsprite' ;
6- import { Input , Slider , Item , SelectBase , Button } from '#ui' ;
6+ import { Input , Slider , Item , SelectBase , Button , Modal } from '#ui' ;
77import { mappingState } from './state' ;
88
99export const Rotate = observer ( ( ) => {
@@ -12,6 +12,7 @@ export const Rotate = observer(() => {
1212 const [ value , setValue ] = useState ( 0 ) ;
1313
1414 useEffect ( ( ) => {
15+ if ( ! canvasRef . current ) return ;
1516 const spriteCanv = exportSprite ( environment . currentSprite ) ;
1617 const spriteCtx = spriteCanv . getContext ( '2d' ) ;
1718
@@ -71,14 +72,20 @@ export const Rotate = observer(() => {
7172 } ;
7273
7374 return (
74- < div className = "rotsprite" >
75- < Item > Rotate Sprite</ Item >
76- < canvas ref = { canvasRef } />
75+ < >
76+ { String ( ! ! value ) }
7777 < SelectBase
78- options = { [ ...Array ( 7 ) . keys ( ) ] . map ( d => String ( d * 90 ) ) }
78+ options = { [ ...Array ( 2 ) . keys ( ) ] . map ( d => String ( d ) ) }
7979 value = { value }
80- onChange = { e => setValue ( e . value ) }
80+ onChange = { e => setValue ( e . value === '1' ) }
8181 />
82+
83+ < Modal className = "rotsprite" spring = { ( {
84+ top : value ? - 150 : 50 ,
85+ opacity : value ? 1 : 0.5 ,
86+ } ) } >
87+ < Item > Rotate Sprite</ Item >
88+ < canvas ref = { canvasRef } />
8289 < Input
8390 store = { mappingState }
8491 assert = { assertInput }
@@ -94,6 +101,7 @@ export const Rotate = observer(() => {
94101 />
95102 < Button color = "red" > Reimport</ Button >
96103 < Button color = "magenta" > close</ Button >
97- </ div >
104+ </ Modal >
105+ </ >
98106 ) ;
99107} ) ;
0 commit comments