@@ -76,7 +76,8 @@ <h1>Remote control demo</h1>
7676 // Expose for Playwright (`page.evaluate(() => window.__client.…)`).
7777 window . __client = client ;
7878
79- let lastId = null ;
79+ let lastSignalId = null ;
80+ let lastImageId = null ;
8081
8182 const buttons = {
8283 version : document . getElementById ( "btn-version" ) ,
@@ -111,29 +112,35 @@ <h1>Remote control demo</h1>
111112 const N = 256 ;
112113 const xs = Array . from ( { length : N } , ( _ , i ) => i / N ) ;
113114 const ys = xs . map ( ( x ) => Math . sin ( 2 * Math . PI * 5 * x ) ) ;
114- lastId = await wrap ( "add_signal" , ( ) => client . addSignal ( "Sine 5 Hz" , xs , ys ) ) ;
115+ lastSignalId = await wrap ( "add_signal" , ( ) => client . addSignal ( "Sine 5 Hz" , xs , ys ) ) ;
115116 } ;
116117 buttons . addImage . onclick = async ( ) => {
117118 const N = 32 ;
118119 const data = Array . from ( { length : N } , ( _ , i ) =>
119120 Array . from ( { length : N } , ( _ , j ) => i + j ) ,
120121 ) ;
121- lastId = await wrap ( "add_image" , ( ) => client . addImage ( "Gradient" , data ) ) ;
122+ lastImageId = await wrap ( "add_image" , ( ) => client . addImage ( "Gradient" , data ) ) ;
122123 } ;
123124 buttons . fft . onclick = ( ) => {
124- if ( ! lastId ) return logLine ( "!" , "no lastId — add a signal first" ) ;
125- return wrap ( "calc(fft)" , ( ) => client . calc ( "fft" , null , [ lastId ] ) ) ;
125+ if ( ! lastSignalId ) return logLine ( "!" , "no signal yet — add a signal first" ) ;
126+ return wrap ( "calc(fft)" , ( ) => client . calc ( "fft" , null , [ lastSignalId ] ) ) ;
126127 } ;
127128 buttons . get . onclick = ( ) => {
128- if ( ! lastId ) return logLine ( "!" , "no lastId " ) ;
129- return wrap ( "get_signal_xy" , ( ) => client . getSignalXY ( lastId ) ) ;
129+ if ( ! lastSignalId ) return logLine ( "!" , "no signal yet " ) ;
130+ return wrap ( "get_signal_xy" , ( ) => client . getSignalXY ( lastSignalId ) ) ;
130131 } ;
131132 buttons . remove . onclick = async ( ) => {
132- if ( ! lastId ) return logLine ( "!" , "no lastId" ) ;
133- await wrap ( "delete_object" , ( ) => client . deleteObject ( lastId ) ) ;
134- lastId = null ;
133+ const id = lastSignalId ?? lastImageId ;
134+ if ( ! id ) return logLine ( "!" , "no object to delete" ) ;
135+ await wrap ( "delete_object" , ( ) => client . deleteObject ( id ) ) ;
136+ if ( id === lastSignalId ) lastSignalId = null ;
137+ else lastImageId = null ;
138+ } ;
139+ buttons . reset . onclick = async ( ) => {
140+ await wrap ( "reset_all" , ( ) => client . resetAll ( ) ) ;
141+ lastSignalId = null ;
142+ lastImageId = null ;
135143 } ;
136- buttons . reset . onclick = ( ) => wrap ( "reset_all" , ( ) => client . resetAll ( ) ) ;
137144
138145 ( async ( ) => {
139146 try {
0 commit comments