@@ -117,7 +117,7 @@ <h1>Customized UI</h1>
117117 document . getElementById ( 'btn-hide-scanner' ) . addEventListener ( 'click' , async ( ) => {
118118 toggleBtnView ( true ) ;
119119 let scanner = await pScanner ;
120- scanner . hide ( ) ;
120+ scanner && scanner . hide ( ) ;
121121 } ) ;
122122 document . getElementById ( 'toggleSound' ) . addEventListener ( "click" , async ( ) => {
123123 if ( pScanner ) {
@@ -148,46 +148,12 @@ <h1>Customized UI</h1>
148148 document . getElementById ( "cam_selector_switch" ) . addEventListener ( "click" , toggleCamView ) ;
149149 document . getElementById ( "res_selector_switch" ) . addEventListener ( "click" , toggleResView ) ;
150150
151- // update or re-render options
152- async function updateOptions ( ) {
153- let scanner = await pScanner ;
154- const cameras = await scanner . getAllCameras ( ) ;
155- document . getElementById ( "ul_options_camera" ) . innerHTML = "" ;
156- cameras . forEach ( camera => {
157- let li = document . createElement ( "li" ) ;
158- let span = document . createElement ( "span" ) ;
159- span . setAttribute ( "id" , camera . deviceId ) ;
160- span . innerText = camera . label ;
161- li . appendChild ( span ) ;
162- document . getElementById ( "ul_options_camera" ) . appendChild ( li ) ;
163- } ) ;
164- const currentCamera = await scanner . getCurrentCamera ( ) ;
165- let camOption = document . querySelectorAll ( "#ul_options_camera span" ) ;
166- camOption . forEach ( sapn => {
167- sapn . addEventListener ( "click" , camOptionSelected ) ;
168- if ( ! currentCamera || sapn . id === currentCamera . deviceId ) {
169- document . getElementById ( "selector_input_camera" ) . value = sapn . innerText ;
170- sapn . classList . add ( "selected" ) ;
171- }
172- else {
173- sapn . classList . remove ( "selected" ) ;
174- }
175- } )
176- let resOption = document . querySelectorAll ( "#ul_options_resolution span" ) ;
177- for ( let i = 0 ; i < resOption . length ; i ++ ) {
178- resOption [ i ] . addEventListener ( "click" , resOptionSelected ) ;
179- } ;
151+ function toggleBtnView ( boolean ) {
152+ document . getElementById ( 'btn-hide-scanner' ) . hidden = boolean ;
153+ document . getElementById ( 'btn-show-scanner' ) . hidden = ! boolean ;
180154 }
181- async function updateCurrentResolution ( ) {
182- let scanner = await pScanner ;
183- const currentResolution = await scanner . getResolution ( ) ;
184- let gotResolution = document . querySelector ( "#gotResolution span" ) ;
185- gotResolution . innerText = 'got ' + currentResolution [ 0 ] + ' x ' + currentResolution [ 1 ] ;
186- gotResolution . id = currentResolution [ 0 ] + 'x' + currentResolution [ 1 ] ;
187- gotResolution . classList . add ( "selected" ) ;
188- document . getElementById ( "selector_input_resolution" ) . value = gotResolution . innerText ;
189- const checked = document . getElementById ( "toggleScanLight" ) . checked ;
190- setScanLightView ( checked ) ;
155+ function setScanLightView ( boolean ) {
156+ document . querySelector ( '.dce-scanlight' ) . hidden = ! boolean ;
191157 }
192158 // when the selector is clicked
193159 function toggleCamView ( e ) {
@@ -254,12 +220,46 @@ <h1>Customized UI</h1>
254220 await scanner . setResolution ( targetResolution ) ;
255221 updateCurrentResolution ( ) ;
256222 }
257- function toggleBtnView ( boolean ) {
258- document . getElementById ( 'btn-hide-scanner' ) . hidden = boolean ;
259- document . getElementById ( 'btn-show-scanner' ) . hidden = ! boolean ;
223+ // update or re-render options
224+ async function updateOptions ( ) {
225+ let scanner = await pScanner ;
226+ const cameras = await scanner . getAllCameras ( ) ;
227+ document . getElementById ( "ul_options_camera" ) . innerHTML = "" ;
228+ cameras . forEach ( camera => {
229+ let li = document . createElement ( "li" ) ;
230+ let span = document . createElement ( "span" ) ;
231+ span . setAttribute ( "id" , camera . deviceId ) ;
232+ span . innerText = camera . label ;
233+ li . appendChild ( span ) ;
234+ document . getElementById ( "ul_options_camera" ) . appendChild ( li ) ;
235+ } ) ;
236+ const currentCamera = await scanner . getCurrentCamera ( ) ;
237+ let camOption = document . querySelectorAll ( "#ul_options_camera span" ) ;
238+ camOption . forEach ( sapn => {
239+ sapn . addEventListener ( "click" , camOptionSelected ) ;
240+ if ( ! currentCamera || sapn . id === currentCamera . deviceId ) {
241+ document . getElementById ( "selector_input_camera" ) . value = sapn . innerText ;
242+ sapn . classList . add ( "selected" ) ;
243+ }
244+ else {
245+ sapn . classList . remove ( "selected" ) ;
246+ }
247+ } )
248+ let resOption = document . querySelectorAll ( "#ul_options_resolution span" ) ;
249+ for ( let i = 0 ; i < resOption . length ; i ++ ) {
250+ resOption [ i ] . addEventListener ( "click" , resOptionSelected ) ;
251+ } ;
260252 }
261- function setScanLightView ( boolean ) {
262- document . querySelector ( '.dce-scanlight' ) . hidden = ! boolean ;
253+ async function updateCurrentResolution ( ) {
254+ let scanner = await pScanner ;
255+ const currentResolution = await scanner . getResolution ( ) ;
256+ let gotResolution = document . querySelector ( "#gotResolution span" ) ;
257+ gotResolution . innerText = 'got ' + currentResolution [ 0 ] + ' x ' + currentResolution [ 1 ] ;
258+ gotResolution . id = currentResolution [ 0 ] + 'x' + currentResolution [ 1 ] ;
259+ gotResolution . classList . add ( "selected" ) ;
260+ document . getElementById ( "selector_input_resolution" ) . value = gotResolution . innerText ;
261+ const checked = document . getElementById ( "toggleScanLight" ) . checked ;
262+ setScanLightView ( checked ) ;
263263 }
264264 function clickToHidden ( e ) {
265265 const camViewable = camOptions . classList . value . search ( "unshow" ) ;
0 commit comments