@@ -18,6 +18,43 @@ const Main = () => {
1818 const [ pageNum , setPageNum ] = useState ( 0 ) ;
1919 const [ printing , setPrinting ] = useState ( false ) ;
2020
21+ const setFrameCoordValue = ( label : string , value : number ) => {
22+ if ( frameCoord ) {
23+ switch ( label ) {
24+ case 'x0' :
25+ setFrameCoord ( { ...frameCoord , x0 : value } ) ;
26+ break ;
27+ case 'x1' :
28+ setFrameCoord ( { ...frameCoord , x1 : value } ) ;
29+ break ;
30+ case 'y0' :
31+ frameCoord . y0 = value ;
32+ setFrameCoord ( { ...frameCoord , y0 : value } ) ;
33+ break ;
34+ case 'y1' :
35+ setFrameCoord ( { ...frameCoord , y1 : value } ) ;
36+ break ;
37+ default :
38+ break ;
39+ }
40+ }
41+ } ;
42+
43+ const setNextCoordValue = ( label : string , value : number ) => {
44+ if ( nextCoord ) {
45+ switch ( label ) {
46+ case 'x' :
47+ setNextCoord ( { ...nextCoord , x0 : value , x1 : value } ) ;
48+ break ;
49+ case 'y' :
50+ setNextCoord ( { ...nextCoord , y0 : value , y1 : value } ) ;
51+ break ;
52+ default :
53+ break ;
54+ }
55+ }
56+ } ;
57+
2158 const handleCloseScreen = ( c : Coord ) => {
2259 if ( c . select === 'frame' ) {
2360 setFrameCoord ( { ...c } ) ;
@@ -80,8 +117,39 @@ const Main = () => {
80117 { frameCoord ? (
81118 < span className = "flex items-center justify-center space-x-2 opacity-70" >
82119 < p >
83- Rectangle: ({ frameCoord . x0 } , { frameCoord . y0 } ) ({ frameCoord . x1 } ,{ ' ' }
84- { frameCoord . y1 } )
120+ Rectangle: [
121+ < input
122+ className = "w-16"
123+ value = { frameCoord . x0 }
124+ onChange = { ( e ) =>
125+ setFrameCoordValue ( 'x0' , parseInt ( e . target . value , 10 ) )
126+ }
127+ />
128+ ,{ ' ' }
129+ < input
130+ className = "w-16"
131+ value = { frameCoord . y0 }
132+ onChange = { ( e ) =>
133+ setFrameCoordValue ( 'y0' , parseInt ( e . target . value , 10 ) )
134+ }
135+ />
136+ ] [
137+ < input
138+ className = "w-16"
139+ value = { frameCoord . x1 }
140+ onChange = { ( e ) =>
141+ setFrameCoordValue ( 'x1' , parseInt ( e . target . value , 10 ) )
142+ }
143+ />
144+ ,{ ' ' }
145+ < input
146+ className = "w-16"
147+ value = { frameCoord . y1 }
148+ onChange = { ( e ) =>
149+ setFrameCoordValue ( 'y1' , parseInt ( e . target . value , 10 ) )
150+ }
151+ />
152+ ]
85153 </ p >
86154 < FaTimesCircle
87155 onClick = { ( ) => setFrameCoord ( undefined ) }
@@ -105,8 +173,23 @@ const Main = () => {
105173 { nextCoord ? (
106174 < span className = "flex items-center justify-center space-x-2 opacity-70" >
107175 < p >
108- Point: ({ ( nextCoord . x0 + nextCoord . x1 ) / 2 } ,{ ' ' }
109- { ( nextCoord . y0 + nextCoord . y1 ) / 2 } )
176+ Point: [
177+ < input
178+ className = "w-16"
179+ value = { ( nextCoord . x0 + nextCoord . x1 ) / 2 }
180+ onChange = { ( e ) =>
181+ setNextCoordValue ( 'x' , parseInt ( e . target . value , 10 ) )
182+ }
183+ />
184+ ,{ ' ' }
185+ < input
186+ className = "w-16"
187+ value = { ( nextCoord . y0 + nextCoord . y1 ) / 2 }
188+ onChange = { ( e ) =>
189+ setNextCoordValue ( 'y' , parseInt ( e . target . value , 10 ) )
190+ }
191+ />
192+ ]
110193 </ p >
111194 < FaTimesCircle
112195 onClick = { ( ) => setNextCoord ( undefined ) }
0 commit comments