How to use isRunning method in Playwright Internal

Best JavaScript code snippet using playwright-internal

menu.js

Source:menu.js Github

copy

Full Screen

...93 click: () => win.setFullScreen(!win.isFullScreen()) },94 { label: 'Minimize', accelerator: 'CmdOrCtrl+M', role: 'minimize' },95 { type: 'separator' },96 { label: 'Screen Scale', submenu: [97 { label: 'Original', type: 'checkbox', enabled: !box.isRunning(),98 checked: !scale, click: () => changeScale('none') },99 { type: 'separator' },100 { label: '2x Scale', type: 'checkbox', enabled: !box.isRunning(),101 checked: scale === '2x', click: () => changeScale('2x') },102 { label: '3x Scale', type: 'checkbox', enabled: !box.isRunning(),103 checked: scale === '3x', click: () => changeScale('3x') }]104 },105 { label: 'Rendering Style', submenu: [106 { label: 'None', type: 'checkbox', enabled: !box.isRunning(),107 checked: !!scaler.match(/none|normal/),108 click: () => changeStyle(!scale ? 'none' : 'normal') },109 { type: 'separator' },110 { label: 'Fast Smoothing', type: 'checkbox', enabled: !!scale && !box.isRunning(),111 checked: scaler === 'advmame', click: () => changeStyle('advmame') },112 { label: 'Adv. Smoothing', type: 'checkbox', enabled: !!scale && !box.isRunning(),113 checked: scaler === 'advinterp',114 click: () => changeStyle('advinterp') },115 { label: 'Fancy Smoothing', type: 'checkbox', enabled: !!scale && !box.isRunning(),116 checked: scaler === 'hq', click: () => changeStyle('hq') },117 { type: 'separator' },118 { label: 'Super Smoothing', type: 'checkbox', enabled: scale === '2x' && !box.isRunning(),119 checked: scaler === 'super2xsai', click: () => changeStyle('super2xsai') },120 { label: 'Soft Smoothing', type: 'checkbox', enabled: scale === '2x' && !box.isRunning(),121 checked: scaler === '2xsai', click: () => changeStyle('2xsai') },122 { label: 'Super Eagle', type: 'checkbox', enabled: scale === '2x' && !box.isRunning(),123 checked: scaler === 'supereagle', click: () => changeStyle('supereagle') },124 { type: 'separator' },125 { label: 'RGB Phosphors', type: 'checkbox', enabled: !!scale && !box.isRunning(),126 checked: scaler === 'rgb', click: () => changeStyle('rgb') },127 { label: 'TV Scanlines', type: 'checkbox', enabled: !!scale && !box.isRunning(),128 checked: scaler === 'tv', click: () => changeStyle('tv') },129 { label: 'Scanlines', type: 'checkbox', enabled: !!scale && !box.isRunning(),130 checked: scaler === 'scan', click: () => changeStyle('scan2x') }131 ]},132 { label: 'Use 4:3 Aspect Ratio', accelerator: 'CmdOrCtrl+Shift+A',133 type: 'checkbox', checked: box.isAspectRatio, click: () => box.toggleAspectRatio() },134 { type: 'separator' },135 { label: 'Show Developer Tools', accelerator: isDarwin ? 'Alt+Command+I' : 'Ctrl+Shift+I',136 type: 'checkbox', checked: win.isDevToolsOpened(),137 click: () => win.toggleDevTools() }138 ]139 },140 {141 label: 'Game',142 submenu: [143 { label: 'Save Status', accelerator: 'CmdOrCtrl+S', enabled: box.isRunning(),144 click: () => box.saveStatus() },145 { label: 'Load Status', accelerator: 'CmdOrCtrl+L', enabled: box.isRunning(),146 click: () => box.loadStatus() },147 { type: 'separator' },148 { label: 'Pause', accelerator: 'CmdOrCtrl+F', enabled: box.isRunning(),149 type: 'checkbox', checked: box.isPaused(), click: () => box.togglePause() },150 { label: 'Mouse Lock', accelerator: 'CmdOrCtrl+P',151 type: 'checkbox', checked: box.isMouseLocked, click: () => box.toggleMouseLock() },152 { label: 'Mute Sound', accelerator: 'CmdOrCtrl+M', enabled: box.isRunning(),153 type: 'checkbox', checked: box.isMuted(), click: () => box.muteSound() },154 { label: 'Send Key', submenu: [] },155 { type: 'separator' },156 { label: 'Exit Game', accelerator: 'CmdOrCtrl+W', enabled: box.isRunning(),157 click: () => box.exitGame() }158 ]159 },160 {161 label: 'Emulation',162 submenu: [163 { label: 'CPU Type', submenu: [164 { label: 'Auto', type: 'checkbox', enabled: !box.isRunning(),165 checked: cpuType === 'auto',166 click: () => app.saveConf('cpu', 'cputype', 'auto') },167 { type: 'separator' },168 { label: '386', type: 'checkbox', enabled: !box.isRunning(),169 checked: cpuType === '386',170 click: () => app.saveConf('cpu', 'cputype', '386') },171 { label: '386 Slow', type: 'checkbox', enabled: !box.isRunning(),172 checked: cpuType === '386_slow',173 click: () => app.saveConf('cpu', 'cputype', '386_slow') },174 { label: '386 Prefetch', type: 'checkbox', enabled: !box.isRunning(),175 checked: cpuType === '386_prefetch',176 click: () => app.saveConf('cpu', 'cputype', '386_prefetch') },177 { label: '486 Slow', type: 'checkbox', enabled: !box.isRunning(),178 checked: cpuType === '486_slow',179 click: () => app.saveConf('cpu', 'cputype', '486_slow') },180 { label: 'Pentium Slow', type: 'checkbox', enabled: !box.isRunning(),181 checked: cpuType === 'pentium_slow',182 click: () => app.saveConf('cpu', 'cputype', 'pentium_slow') }183 ] },184 { label: 'CPU Core', submenu: [185 { label: 'Auto', type: 'checkbox', enabled: !box.isRunning(),186 checked: cpuCore === 'auto',187 click: () => app.saveConf('cpu', 'core', 'auto') },188 { type: 'separator' },189 { label: 'Dynamic', type: 'checkbox', enabled: !box.isRunning(),190 checked: cpuCore === 'dynamic',191 click: () => app.saveConf('cpu', 'core', 'dynamic') },192 { label: 'Normal', type: 'checkbox', enabled: !box.isRunning(),193 checked: cpuCore === 'normal',194 click: () => app.saveConf('cpu', 'core', 'normal') },195 { label: 'Simple', type: 'checkbox', enabled: !box.isRunning(),196 checked: cpuCore === 'simple',197 click: () => app.saveConf('cpu', 'core', 'simple') }198 ] },199 { type: 'separator' },200 { label: 'CPU Cycles Auto', type: 'checkbox', enabled: !box.isRunning(),201 checked: cpuCycles === 'auto',202 click: () => app.saveConf('cpu', 'cycles', 'auto') },203 { label: 'CPU Cycles Max', type: 'checkbox', enabled: !box.isRunning(),204 checked: cpuCycles === 'max',205 click: () => app.saveConf('cpu', 'cycles', 'max') },206 { label: 'Fixed 200000(Pentium II)', type: 'checkbox', enabled: !box.isRunning(),207 checked: cpuCycles === 'fixed 200000',208 click: () => app.saveConf('cpu', 'cycles', 'fixed 200000') },209 { label: 'Fixed 77000(Pentium)', type: 'checkbox', enabled: !box.isRunning(),210 checked: cpuCycles === 'fixed 77000',211 click: () => app.saveConf('cpu', 'cycles', 'fixed 77000') },212 { label: 'Fixed 26800(486)', type: 'checkbox', enabled: !box.isRunning(),213 checked: cpuCycles === 'fixed 26800',214 click: () => app.saveConf('cpu', 'cycles', 'fixed 26800') },215 { label: 'Fixed 7800(386)', type: 'checkbox', enabled: !box.isRunning(),216 checked: cpuCycles === 'fixed 7800',217 click: () => app.saveConf('cpu', 'cycles', 'fixed 7800') },218 { label: 'Fixed 2750(AT)', type: 'checkbox', enabled: !box.isRunning(),219 checked: cpuCycles === 'fixed 2750',220 click: () => app.saveConf('cpu', 'cycles', 'fixed 2750') },221 { label: 'Fixed 315(XT)', type: 'checkbox', enabled: !box.isRunning(),222 checked: cpuCycles === 'fixed 315',223 click: () => app.saveConf('cpu', 'cycles', 'fixed 315') },224 { type: 'separator' },225 {226 label: 'Memory Size', submenu: [227 { label: '32 MB', type: 'checkbox', enabled: !box.isRunning(),228 checked: memSize === '31',229 click: () => app.saveConf('dosbox', 'memsize', '31') },230 { type: 'separator' },231 { label: '64 MB', type: 'checkbox', enabled: !box.isRunning(),232 checked: memSize === '63',233 click: () => app.saveConf('dosbox', 'memsize', '63') },234 { label: '16 MB', type: 'checkbox', enabled: !box.isRunning(),235 checked: memSize === '16',236 click: () => app.saveConf('dosbox', 'memsize', '16') }237 ]238 },239 { type: 'separator' },240 { label: 'Extended Memory(XMS)', type: 'checkbox', enabled: !box.isRunning(),241 checked: memXMS, click: () => app.saveConf('dos', 'xms', memXMS = !memXMS) },242 { label: 'Expanded Memory(EMS)', type: 'checkbox', enabled: !box.isRunning(),243 checked: memEMS, click: () => app.saveConf('dos', 'ems', memEMS = !memEMS) },244 { label: 'Upper Memory Block(UMB)', type: 'checkbox', enabled: !box.isRunning(),245 checked: memUMB, click: () => app.saveConf('dos', 'umb', memUMB = !memUMB) },246 { type: 'separator' },247 { label: 'Graphic', submenu: [248 { label: 'SVGA', type: 'checkbox', enabled: !box.isRunning(),249 checked: machine === 'svga_s3',250 click: () => app.saveConf('dosbox', 'machine', 'svga_s3') },251 { type: 'separator' },252 { label: 'VESA(1.3)', type: 'checkbox', enabled: !box.isRunning(),253 checked: machine === 'vesa_oldvbe',254 click: () => app.saveConf('dosbox', 'machine', 'vesa_oldvbe') },255 { label: 'VESA(NO-LFB)', type: 'checkbox', enabled: !box.isRunning(),256 checked: machine === 'vesa_nolfb',257 click: () => app.saveConf('dosbox', 'machine', 'vesa_nolfb') },258 { label: 'SVGA Paradise', type: 'checkbox', enabled: !box.isRunning(),259 checked: machine === 'svga_paradise',260 click: () => app.saveConf('dosbox', 'machine', 'svga_paradise') },261 { label: 'SVGA ET4000', type: 'checkbox', enabled: !box.isRunning(),262 checked: machine === 'svga_et4000',263 click: () => app.saveConf('dosbox', 'machine', 'svga_et4000') },264 { label: 'SVGA ET3000', type: 'checkbox', enabled: !box.isRunning(),265 checked: machine === 'svga_et3000',266 click: () => app.saveConf('dosbox', 'machine', 'svga_et3000') },267 { type: 'separator' },268 { label: 'VGA(256 Colors)', type: 'checkbox', enabled: !box.isRunning(),269 checked: machine === 'vgaonly',270 click: () => app.saveConf('dosbox', 'machine', 'vgaonly') },271 { label: 'EGA(16 Colors)', type: 'checkbox', enabled: !box.isRunning(),272 checked: machine === 'ega',273 click: () => app.saveConf('dosbox', 'machine', 'ega') },274 { label: 'PCjr(16 Colors)', type: 'checkbox', enabled: !box.isRunning(),275 checked: machine === 'pcjr',276 click: () => app.saveConf('dosbox', 'machine', 'pcjr') },277 { label: 'Tandy(16 Colors)', type: 'checkbox', enabled: !box.isRunning(),278 checked: machine === 'tandy',279 click: () => app.saveConf('dosbox', 'machine', 'tandy') },280 { label: 'CGA(4 Colors)', type: 'checkbox', enabled: !box.isRunning(),281 checked: machine === 'cga',282 click: () => app.saveConf('dosbox', 'machine', 'cga') },283 { label: 'Hercules(2 Colors)', type: 'checkbox', enabled: !box.isRunning(),284 checked: machine === 'hercules',285 click: () => app.saveConf('dosbox', 'machine', 'hercules') }286 ] },287 { type: 'separator' },288 { label: 'Sound', submenu: [289 { label: 'MIDI', submenu: [290 { label: 'MPU-401', submenu: [291 { label: 'Intelligent', type: 'checkbox', enabled: !box.isRunning(),292 checked: mpu401 === 'intelligent',293 click: () => updateMenu('midi', 'mpu401', 'intelligent') },294 { type: 'separator' },295 { label: 'UART', type: 'checkbox', enabled: !box.isRunning(),296 checked: mpu401 === 'uart',297 click: () => updateMenu('midi', 'mpu401', 'uart') },298 { label: 'None', type: 'checkbox', enabled: !box.isRunning(),299 checked: mpu401 === 'none',300 click: () => updateMenu('midi', 'mpu401', 'none') }301 ] },302 { type: 'separator' },303 { label: 'Default System MIDI', type: 'checkbox', enabled: !box.isRunning(),304 checked: mididevice === 'default',305 click: () => updateMenu('midi', 'device', 'default') },306 { label: 'Win32 MIDI Playback', type: 'checkbox', enabled: !box.isRunning(),307 checked: mididevice === 'win32',308 click: () => updateMenu('midi', 'device', 'win32') },309 { label: 'Advanced Linux Sound', type: 'checkbox', enabled: !box.isRunning(),310 checked: mididevice === 'alsa',311 click: () => updateMenu('midi', 'device', 'alsa') },312 { label: 'Open Sound System', type: 'checkbox', enabled: !box.isRunning(),313 checked: mididevice === 'oss',314 click: () => updateMenu('midi', 'device', 'oss') },315 { label: 'OS X Synthesizer', type: 'checkbox', enabled: !box.isRunning(),316 checked: mididevice === 'coreaudio',317 click: () => updateMenu('midi', 'device', 'coreaudio') },318 { label: 'OS X Audio MIDI', type: 'checkbox', enabled: !box.isRunning(),319 checked: mididevice === 'coremidi',320 click: () => updateMenu('midi', 'device', 'coremidi') },321 { label: 'None', type: 'checkbox', enabled: !box.isRunning(),322 checked: mididevice === 'none',323 click: () => updateMenu('midi', 'device', 'none') }324 ] },325 { label: 'Sound Blaster', submenu: [326 { label: 'Type', submenu: [327 { label: 'Sound Blaster 16', type: 'checkbox', enabled: !box.isRunning(),328 checked: sbtype === 'sb16',329 click: () => updateMenu('sblaster', 'sbtype', 'sb16') },330 { type: 'separator' },331 { label: 'Sound Blaster Pro 2', type: 'checkbox', enabled: !box.isRunning(),332 checked: sbtype === 'sbpro2',333 click: () => updateMenu('sblaster', 'sbtype', 'sbpro2') },334 { label: 'Sound Blaster Pro 1', type: 'checkbox', enabled: !box.isRunning(),335 checked: sbtype === 'sbpro1',336 click: () => updateMenu('sblaster', 'sbtype', 'sbpro1') },337 { label: 'Sound Blaster 2', type: 'checkbox', enabled: !box.isRunning(),338 checked: sbtype === 'sb2',339 click: () => updateMenu('sblaster', 'sbtype', 'sb2') },340 { label: 'Sound Blaster 1', type: 'checkbox', enabled: !box.isRunning(),341 checked: sbtype === 'sb1',342 click: () => updateMenu('sblaster', 'sbtype', 'sb1') },343 { label: 'None', type: 'checkbox', enabled: !box.isRunning(),344 checked: sbtype === 'none',345 click: () => updateMenu('sblaster', 'sbtype', 'none') }346 ] },347 { type: 'separator' },348 { label: `Base [${sbbase}]`, submenu: [349 { label: '220', type: 'checkbox', enabled: !box.isRunning(),350 checked: sbbase === '220',351 click: () => updateMenu('sblaster', 'sbbase', '220') },352 { type: 'separator' },353 { label: '240', type: 'checkbox', enabled: !box.isRunning(),354 checked: sbbase === '240',355 click: () => updateMenu('sblaster', 'sbbase', '240') },356 { label: '260', type: 'checkbox', enabled: !box.isRunning(),357 checked: sbbase === '260',358 click: () => updateMenu('sblaster', 'sbbase', '260') },359 { label: '280', type: 'checkbox', enabled: !box.isRunning(),360 checked: sbbase === '280',361 click: () => updateMenu('sblaster', 'sbbase', '280') },362 { label: '2a0', type: 'checkbox', enabled: !box.isRunning(),363 checked: sbbase === '2a0',364 click: () => updateMenu('sblaster', 'sbbase', '2a0') },365 { label: '2c0', type: 'checkbox', enabled: !box.isRunning(),366 checked: sbbase === '2c0',367 click: () => updateMenu('sblaster', 'sbbase', '2c0') },368 { label: '2e0', type: 'checkbox', enabled: !box.isRunning(),369 checked: sbbase === '2e0',370 click: () => updateMenu('sblaster', 'sbbase', '2e0') },371 { label: '300', type: 'checkbox', enabled: !box.isRunning(),372 checked: sbbase === '300',373 click: () => updateMenu('sblaster', 'sbbase', '300') }374 ] },375 { label: `IRQ [${sbirq}]`, submenu: [376 { label: '7', type: 'checkbox', enabled: !box.isRunning(),377 checked: sbirq === '7',378 click: () => updateMenu('sblaster', 'irq', '7') },379 { type: 'separator' },380 { label: '5', type: 'checkbox', enabled: !box.isRunning(),381 checked: sbirq === '5',382 click: () => updateMenu('sblaster', 'irq', '5') },383 { label: '3', type: 'checkbox', enabled: !box.isRunning(),384 checked: sbirq === '3',385 click: () => updateMenu('sblaster', 'irq', '3') },386 { label: '9', type: 'checkbox', enabled: !box.isRunning(),387 checked: sbirq === '9',388 click: () => updateMenu('sblaster', 'irq', '9') },389 { label: '10', type: 'checkbox', enabled: !box.isRunning(),390 checked: sbirq === '10',391 click: () => updateMenu('sblaster', 'irq', '10') },392 { label: '11', type: 'checkbox', enabled: !box.isRunning(),393 checked: sbirq === '11',394 click: () => updateMenu('sblaster', 'irq', '11') },395 { label: '12', type: 'checkbox', enabled: !box.isRunning(),396 checked: sbirq === '12',397 click: () => updateMenu('sblaster', 'irq', '12') }398 ] },399 { label: `DMB [${sbdma}]`, submenu: [400 { label: '1', type: 'checkbox', enabled: !box.isRunning(),401 checked: sbdma === '1',402 click: () => updateMenu('sblaster', 'dma', '1') },403 { type: 'separator' },404 { label: '5', type: 'checkbox', enabled: !box.isRunning(),405 checked: sbdma === '5',406 click: () => updateMenu('sblaster', 'dma', '5') },407 { label: '0', type: 'checkbox', enabled: !box.isRunning(),408 checked: sbdma === '0',409 click: () => updateMenu('sblaster', 'dma', '0') },410 { label: '3', type: 'checkbox', enabled: !box.isRunning(),411 checked: sbdma === '3',412 click: () => updateMenu('sblaster', 'dma', '3') },413 { label: '6', type: 'checkbox', enabled: !box.isRunning(),414 checked: sbdma === '6',415 click: () => updateMenu('sblaster', 'dma', '6') },416 { label: '7', type: 'checkbox', enabled: !box.isRunning(),417 checked: sbdma === '7',418 click: () => updateMenu('sblaster', 'dma', '7') }419 ] },420 { label: `HDMA [${sbhdma}]`, submenu: [421 { label: '1', type: 'checkbox', enabled: !box.isRunning(),422 checked: sbhdma === '1',423 click: () => updateMenu('sblaster', 'hdma', '1') },424 { type: 'separator' },425 { label: '5', type: 'checkbox', enabled: !box.isRunning(),426 checked: sbhdma === '5',427 click: () => updateMenu('sblaster', 'hdma', '5') },428 { label: '0', type: 'checkbox', enabled: !box.isRunning(),429 checked: sbhdma === '0',430 click: () => updateMenu('sblaster', 'hdma', '0') },431 { label: '3', type: 'checkbox', enabled: !box.isRunning(),432 checked: sbhdma === '3',433 click: () => updateMenu('sblaster', 'hdma', '3') },434 { label: '6', type: 'checkbox', enabled: !box.isRunning(),435 checked: sbhdma === '6',436 click: () => updateMenu('sblaster', 'hdma', '6') },437 { label: '7', type: 'checkbox', enabled: !box.isRunning(),438 checked: sbhdma === '7',439 click: () => updateMenu('sblaster', 'hdma', '7') }440 ] },441 { type: 'separator' },442 { label: `OPL Mode`, submenu: [443 { label: 'auto', type: 'checkbox', enabled: !box.isRunning(),444 checked: sboplmode === 'auto',445 click: () => updateMenu('sblaster', 'oplmode', 'auto') },446 { type: 'separator' },447 { label: 'CMS', type: 'checkbox', enabled: !box.isRunning(),448 checked: sboplmode === 'cms',449 click: () => updateMenu('sblaster', 'oplmode', 'cms') },450 { label: 'OPL-2', type: 'checkbox', enabled: !box.isRunning(),451 checked: sboplmode === 'opl2',452 click: () => updateMenu('sblaster', 'oplmode', 'opl2') },453 { label: 'Dule OPL-2', type: 'checkbox', enabled: !box.isRunning(),454 checked: sboplmode === 'dualopl2',455 click: () => updateMenu('sblaster', 'oplmode', 'dualopl2') },456 { label: 'OPL-3', type: 'checkbox', enabled: !box.isRunning(),457 checked: sboplmode === 'opl3',458 click: () => updateMenu('sblaster', 'oplmode', 'opl3') },459 { label: 'None', type: 'checkbox', enabled: !box.isRunning(),460 checked: sboplmode === 'none',461 click: () => updateMenu('sblaster', 'oplmode', 'none') }462 ] },463 { label: `OPL Emulation`, submenu: [464 { label: 'default', type: 'checkbox', enabled: !box.isRunning(),465 checked: sboplemu === 'default',466 click: () => updateMenu('sblaster', 'oplemu', 'default') },467 { type: 'separator' },468 { label: 'Compat', type: 'checkbox', enabled: !box.isRunning(),469 checked: sboplemu === 'compat',470 click: () => updateMenu('sblaster', 'oplemu', 'compat') },471 { label: 'Fast', type: 'checkbox', enabled: !box.isRunning(),472 checked: sboplemu === 'fast',473 click: () => updateMenu('sblaster', 'oplemu', 'fast') },474 { label: 'Old', type: 'checkbox', enabled: !box.isRunning(),475 checked: sboplemu === 'old',476 click: () => updateMenu('sblaster', 'oplemu', 'old') }477 ] },478 { type: 'separator' },479 { label: 'Use Mixer', type: 'checkbox', enabled: !box.isRunning(),480 checked: sbmixer,481 click: () => app.saveConf('sblaster', 'mixer', sbmixer = !sbmixer) }482 ] },483 { label: 'Gravis Ultra Sound', submenu: [484 { label: 'Enabled', type: 'checkbox', enabled: !box.isRunning(),485 checked: gus,486 click: () => app.saveConf('gus', 'gus', gus = !gus) },487 { type: 'separator' },488 { label: `Base [${gusbase}]`, submenu: [489 { label: '220', type: 'checkbox', enabled: !box.isRunning(),490 checked: gusbase === '220',491 click: () => updateMenu('gus', 'gusbase', '220') },492 { type: 'separator' },493 { label: '240', type: 'checkbox', enabled: !box.isRunning(),494 checked: gusbase === '240',495 click: () => updateMenu('gus', 'gusbase', '240') },496 { label: '260', type: 'checkbox', enabled: !box.isRunning(),497 checked: gusbase === '260',498 click: () => updateMenu('gus', 'gusbase', '260') },499 { label: '280', type: 'checkbox', enabled: !box.isRunning(),500 checked: gusbase === '280',501 click: () => updateMenu('gus', 'gusbase', '280') },502 { label: '2a0', type: 'checkbox', enabled: !box.isRunning(),503 checked: gusbase === '2a0',504 click: () => updateMenu('gus', 'gusbase', '2a0') },505 { label: '2c0', type: 'checkbox', enabled: !box.isRunning(),506 checked: gusbase === '2c0',507 click: () => updateMenu('gus', 'gusbase', '2c0') },508 { label: '2e0', type: 'checkbox', enabled: !box.isRunning(),509 checked: gusbase === '2e0',510 click: () => updateMenu('gus', 'gusbase', '2e0') },511 { label: '300', type: 'checkbox', enabled: !box.isRunning(),512 checked: gusbase === '300',513 click: () => updateMenu('gus', 'gusbase', '300') }514 ] },515 { label: `IRQ [${gusirq}]`, submenu: [516 { label: '5', type: 'checkbox', enabled: !box.isRunning(),517 checked: gusirq === '5',518 click: () => updateMenu('gus', 'irq2', '5') },519 { type: 'separator' },520 { label: '3', type: 'checkbox', enabled: !box.isRunning(),521 checked: gusirq === '3',522 click: () => updateMenu('gus', 'irq2', '3') },523 { label: '7', type: 'checkbox', enabled: !box.isRunning(),524 checked: gusirq === '7',525 click: () => updateMenu('gus', 'irq2', '7') },526 { label: '9', type: 'checkbox', enabled: !box.isRunning(),527 checked: gusirq === '9',528 click: () => updateMenu('gus', 'irq2', '9') },529 { label: '10', type: 'checkbox', enabled: !box.isRunning(),530 checked: gusirq === '10',531 click: () => updateMenu('gus', 'irq2', '10') },532 { label: '11', type: 'checkbox', enabled: !box.isRunning(),533 checked: gusirq === '11',534 click: () => updateMenu('gus', 'irq2', '11') },535 { label: '12', type: 'checkbox', enabled: !box.isRunning(),536 checked: gusirq === '12',537 click: () => updateMenu('gus', 'irq2', '12') }538 ] },539 { label: `DMA [${gusdma}]`, submenu: [540 { label: '3', type: 'checkbox', enabled: !box.isRunning(),541 checked: gusdma === '3',542 click: () => updateMenu('gus', 'dma2', '3') },543 { type: 'separator' },544 { label: '0', type: 'checkbox', enabled: !box.isRunning(),545 checked: gusdma === '0',546 click: () => updateMenu('gus', 'dma2', '0') },547 { label: '1', type: 'checkbox', enabled: !box.isRunning(),548 checked: gusdma === '1',549 click: () => updateMenu('gus', 'dma2', '1') },550 { label: '5', type: 'checkbox', enabled: !box.isRunning(),551 checked: gusdma === '5',552 click: () => updateMenu('gus', 'dma2', '5') },553 { label: '6', type: 'checkbox', enabled: !box.isRunning(),554 checked: gusdma === '6',555 click: () => updateMenu('gus', 'dma2', '6') },556 { label: '7', type: 'checkbox', enabled: !box.isRunning(),557 checked: gusdma === '7',558 click: () => updateMenu('gus', 'dma2', '7') }559 ] }560 ] },561 { label: 'PC Speaker', submenu: [562 { label: 'Enabled', type: 'checkbox', enabled: !box.isRunning(),563 checked: pcspeaker,564 click: () => app.saveConf('speaker', 'pcspeaker', pcspeaker = !pcspeaker) },565 { type: 'separator' },566 { label: 'Tandy Sound', submenu: [567 { label: 'Auto', type: 'checkbox', enabled: !box.isRunning(),568 checked: tandy === 'auto',569 click: () => updateMenu('speaker', 'tandy', 'auto') },570 { type: 'separator' },571 { label: 'On', type: 'checkbox', enabled: !box.isRunning(),572 checked: tandy === 'on',573 click: () => updateMenu('speaker', 'tandy', 'on') },574 { label: 'Off', type: 'checkbox', enabled: !box.isRunning(),575 checked: tandy === 'off',576 click: () => updateMenu('speaker', 'tandy', 'off') }577 ] },578 { label: 'Disney Sound', type: 'checkbox', enabled: !box.isRunning(),579 checked: disney,580 click: () => app.saveConf('speaker', 'memsize', disney = !disney) }581 ] },582 { type: 'separator' },583 { label: 'Sample Rate 49.7 KHz', type: 'checkbox', enabled: !box.isRunning(),584 checked: sndRate === '49716', click: () => changeSempleRate('49716') },585 { label: 'Sample Rate 48 KHz', type: 'checkbox', enabled: !box.isRunning(),586 checked: sndRate === '48000', click: () => changeSempleRate('48000') },587 { label: 'Sample Rate 44.1 KHz', type: 'checkbox', enabled: !box.isRunning(),588 checked: sndRate === '44100', click: () => changeSempleRate('44100') },589 { label: 'Sample Rate 32 KHz', type: 'checkbox', enabled: !box.isRunning(),590 checked: sndRate === '32000', click: () => changeSempleRate('32000') },591 { label: 'Sample Rate 22 KHz', type: 'checkbox', enabled: !box.isRunning(),592 checked: sndRate === '22050', click: () => changeSempleRate('22050') },593 { label: 'Sample Rate 16 KHz', type: 'checkbox', enabled: !box.isRunning(),594 checked: sndRate === '16000', click: () => changeSempleRate('16000') },595 { label: 'Sample Rate 11 KHz', type: 'checkbox', enabled: !box.isRunning(),596 checked: sndRate === '11025', click: () => changeSempleRate('11025') },597 { label: 'Sample Rate 8 KHz', type: 'checkbox', enabled: !box.isRunning(),598 checked: sndRate === '8000', click: () => changeSempleRate('8000') }599 ] },600 { type: 'separator' },601 { label: 'Joystick', submenu: [602 { label: 'Type', submenu: [603 { label: 'Auto', type: 'checkbox', enabled: !box.isRunning(),604 checked: joysticktype === 'auto',605 click: () => updateMenu('joystick', 'joysticktype', 'auto') },606 { type: 'separator' },607 { label: '2 Axis', type: 'checkbox', enabled: !box.isRunning(),608 checked: joysticktype === '2axis',609 click: () => updateMenu('joystick', 'joysticktype', '2axis') },610 { label: 'First 4 Axis', type: 'checkbox', enabled: !box.isRunning(),611 checked: joysticktype === '4axis',612 click: () => updateMenu('joystick', 'joysticktype', '4axis') },613 { label: 'Second 4 Axis', type: 'checkbox', enabled: !box.isRunning(),614 checked: joysticktype === '4axis_2',615 click: () => updateMenu('joystick', 'joysticktype', '4axis_2') },616 { label: 'Flight Stick', type: 'checkbox', enabled: !box.isRunning(),617 checked: joysticktype === 'fcs',618 click: () => updateMenu('joystick', 'joysticktype', 'fcs') },619 { label: 'None', type: 'checkbox', enabled: !box.isRunning(),620 checked: joysticktype === 'none',621 click: () => updateMenu('joystick', 'joysticktype', 'none') }622 ] },623 { type: 'separator' },624 { label: 'Timed Interval', type: 'checkbox', enabled: !box.isRunning(),625 checked: joytimed,626 click: () => app.saveConf('joystick', 'timed', joytimed = !joytimed) },627 { label: 'Auto Fire', type: 'checkbox', enabled: !box.isRunning(),628 checked: joyautofire,629 click: () => app.saveConf('joystick', 'autofire', joyautofire = !joyautofire) },630 { label: 'Swap 3rd 4th Axis', type: 'checkbox', enabled: !box.isRunning(),631 checked: joyswap34,632 click: () => app.saveConf('joystick', 'swap34', joyswap34 = !joyswap34) },633 { label: 'Button Wrapping', type: 'checkbox', enabled: !box.isRunning(),634 checked: joybuttonwrap,635 click: () => app.saveConf('joystick', 'buttonwrap', joybuttonwrap = !joybuttonwrap) }636 ] }637 ]638 },639 {640 label: 'Help', role: 'help', submenu: [641 { label: 'Homepage', click: () => shell.openExternal(app, pack.homepage) },642 { label: 'Documentation', click: () => shell.openExternal(pack.bugs.url) },643 { label: 'Bug Report', click: () => shell.openExternal(pack.repository.url) }644 ]645 }646 ];647 if (isDarwin) {...

Full Screen

Full Screen

networktester_test.js

Source:networktester_test.js Github

copy

Full Screen

...27function testSuccess() {28 // set up the tster29 var handler = new Handler();30 var tester = new goog.net.NetworkTester(handler.callback, handler);31 assertFalse(tester.isRunning());32 tester.start();33 assertTrue(handler.isEmpty());34 assertTrue(tester.isRunning());35 // simulate the image load and verify36 var image = tester.image_;37 assertEquals(String(tester.getUri()), image.src);38 assertTrue(handler.isEmpty());39 image.onload.call(null);40 assertTrue(handler.dequeue());41 assertFalse(tester.isRunning());42}43function testFailure() {44 // set up the tester45 var handler = new Handler();46 var tester = new goog.net.NetworkTester(handler.callback, handler);47 assertFalse(tester.isRunning());48 tester.start();49 assertTrue(handler.isEmpty());50 assertTrue(tester.isRunning());51 // simulate the image failure and verify52 var image = tester.image_;53 assertEquals(String(tester.getUri()), image.src);54 assertTrue(handler.isEmpty());55 image.onerror.call(null);56 assertFalse(handler.dequeue());57 assertFalse(tester.isRunning());58}59function testAbort() {60 // set up the tester61 var handler = new Handler();62 var tester = new goog.net.NetworkTester(handler.callback, handler);63 assertFalse(tester.isRunning());64 tester.start();65 assertTrue(handler.isEmpty());66 assertTrue(tester.isRunning());67 // simulate the image abort and verify68 var image = tester.image_;69 assertEquals(String(tester.getUri()), image.src);70 assertTrue(handler.isEmpty());71 image.onabort.call(null);72 assertFalse(handler.dequeue());73 assertFalse(tester.isRunning());74}75function testTimeout() {76 // set up the tester77 var handler = new Handler();78 var tester = new goog.net.NetworkTester(handler.callback, handler);79 assertFalse(tester.isRunning());80 tester.start();81 assertTrue(handler.isEmpty());82 assertTrue(tester.isRunning());83 // simulate the image timeout and verify84 var image = tester.image_;85 assertEquals(String(tester.getUri()), image.src);86 assertTrue(handler.isEmpty());87 clock.tick(10000);88 assertFalse(handler.dequeue());89 assertFalse(tester.isRunning());90}91function testRetries() {92 // set up the tester93 var handler = new Handler();94 var tester = new goog.net.NetworkTester(handler.callback, handler);95 tester.setNumRetries(1);96 assertEquals(tester.getAttemptCount(), 0);97 assertFalse(tester.isRunning());98 tester.start();99 assertTrue(handler.isEmpty());100 assertTrue(tester.isRunning());101 assertEquals(tester.getAttemptCount(), 1);102 // try number 1 fails103 var image = tester.image_;104 assertEquals(String(tester.getUri()), image.src);105 assertTrue(handler.isEmpty());106 image.onerror.call(null);107 assertTrue(handler.isEmpty());108 assertTrue(tester.isRunning());109 assertEquals(tester.getAttemptCount(), 2);110 // try number 2 succeeds111 image = tester.image_;112 assertEquals(String(tester.getUri()), image.src);113 assertTrue(handler.isEmpty());114 image.onload.call(null);115 assertTrue(handler.dequeue());116 assertFalse(tester.isRunning());117 assertEquals(tester.getAttemptCount(), 2);118}119function testPauseBetweenRetries() {120 // set up the tester121 var handler = new Handler();122 var tester = new goog.net.NetworkTester(handler.callback, handler);123 tester.setNumRetries(1);124 tester.setPauseBetweenRetries(1000);125 assertFalse(tester.isRunning());126 tester.start();127 assertTrue(handler.isEmpty());128 assertTrue(tester.isRunning());129 // try number 1 fails130 var image = tester.image_;131 assertEquals(String(tester.getUri()), image.src);132 assertTrue(handler.isEmpty());133 image.onerror.call(null);134 assertTrue(handler.isEmpty());135 assertTrue(tester.isRunning());136 // need to pause 1000 ms for the second attempt137 assertNull(tester.image_);138 clock.tick(1000);139 // try number 2 succeeds140 image = tester.image_;141 assertEquals(String(tester.getUri()), image.src);142 assertTrue(handler.isEmpty());143 image.onload.call(null);144 assertTrue(handler.dequeue());145 assertFalse(tester.isRunning());146}147function testNonDefaultUri() {148 var handler = new Handler();149 var newUri = new goog.Uri('//www.google.com/images/cleardot2.gif');150 var tester = new goog.net.NetworkTester(handler.callback, handler, newUri);151 var testerUri = tester.getUri();152 assertTrue(testerUri.toString().indexOf('cleardot2') > -1);153}154function testOffline() {155 // set up the tester156 var handler = new Handler();157 var tester = new goog.net.NetworkTester(handler.callback, handler);158 var orgGetNavigatorOffline = goog.net.NetworkTester.getNavigatorOffline_;159 goog.net.NetworkTester.getNavigatorOffline_ = function() {160 return true;161 };162 try {163 assertFalse(tester.isRunning());164 tester.start();165 assertTrue(handler.isEmpty());166 assertTrue(tester.isRunning());167 // the call is done async168 clock.tick(1);169 assertFalse(handler.dequeue());170 assertFalse(tester.isRunning());171 } finally {172 // Clean up!173 goog.net.NetworkTester.getNavigatorOffline_ = orgGetNavigatorOffline;174 }175}176// Handler object for verifying callback177function Handler() {178 this.events_ = [];179}180function testGetAttemptCount() {181 // set up the tester182 var handler = new Handler();183 var tester = new goog.net.NetworkTester(handler.callback, handler);184 assertEquals(tester.getAttemptCount(), 0);185 assertTrue(tester.attempt_ === tester.getAttemptCount());186 assertFalse(tester.isRunning());187 tester.start();188 assertTrue(tester.isRunning());189 assertTrue(tester.attempt_ === tester.getAttemptCount());190}191Handler.prototype.callback = function(result) {192 this.events_.push(result);193};194Handler.prototype.isEmpty = function() {195 return this.events_.length == 0;196};197Handler.prototype.dequeue = function() {198 if (this.isEmpty()) {199 throw Error('Handler is empty');200 }201 return this.events_.shift();202};...

Full Screen

Full Screen

Stopwatch.js

Source:Stopwatch.js Github

copy

Full Screen

1// Lesson 12/*3import React, { Component } from 'react';4class Stopwatch extends Component {5 render() {6 return (7 <div className='stopwatch'>8 <h2>Stopwatch</h2>9 <span className='stopwatch-time'>0</span>10 <button>Start</button>11 <button>Reset</button>12 </div>13 );14 }15}16export default Stopwatch;17// Lesson 218import React, { Component } from 'react';19class Stopwatch extends Component {20 state = {21 isRunning: false,22 };23 handleStopwatch = () => {24 this.setState({25 isRunning: !this.state.isRunning,26 });27 };28 render() {29 return (30 <div className='stopwatch'>31 <h2>Stopwatch</h2>32 <span className='stopwatch-time'>0</span>33 <button onClick={this.handleStopwatch}>34 {this.state.isRunning ? 'Stop' : 'Start'}35 </button>36 <button>Reset</button>37 </div>38 );39 }40}41export default Stopwatch;42// Lesson 343import React, { Component } from 'react';44class Stopwatch extends Component {45 state = {46 isRunning: false,47 elapsedTime: 0,48 previousTime: 0,49 };50 componentDidMount() {51 this.intervalID = setInterval(() => this.tick(), 100);52 }53 tick = () => {54 if (this.state.isRunning) {55 const now = Date.now();56 this.setState((prevState) => ({57 previousTime: now,58 elapsedTime: prevState.elapsedTime + (now - this.state.previousTime),59 }));60 }61 };62 handleStopwatch = () => {63 this.setState((prevState) => ({64 isRunning: !prevState.isRunning,65 }));66 if (!this.state.isRunning) {67 this.setState({ previousTime: Date.now() });68 }69 };70 render() {71 return (72 <div className='stopwatch'>73 <h2>Stopwatch</h2>74 <span className='stopwatch-time'>0</span>75 <button onClick={this.handleStopwatch}>76 {this.state.isRunning ? 'Stop' : 'Start'}77 </button>78 <button>Reset</button>79 </div>80 );81 }82}83export default Stopwatch;84// Lesson 485import React, { Component } from 'react';86class Stopwatch extends Component {87 state = {88 isRunning: false,89 elapsedTime: 0,90 previousTime: 0,91 };92 componentDidMount() {93 this.intervalID = setInterval(() => this.tick(), 100);94 }95 tick = () => {96 if (this.state.isRunning) {97 const now = Date.now();98 this.setState((prevState) => ({99 previousTime: now,100 elapsedTime: prevState.elapsedTime + (now - this.state.previousTime),101 }));102 }103 };104 handleStopwatch = () => {105 this.setState((prevState) => ({106 isRunning: !prevState.isRunning,107 }));108 if (!this.state.isRunning) {109 this.setState({ previousTime: Date.now() });110 }111 };112 handleReset = () => {113 this.setState({ elapsedTime: 0 });114 };115 render() {116 // floor is an interga117 const seconds = Math.floor(this.state.elapsedTime / 1000);118 return (119 <div className='stopwatch'>120 <h2>Stopwatch</h2>121 <span className='stopwatch-time'>{seconds}</span>122 <button onClick={this.handleStopwatch}>123 {this.state.isRunning ? 'Stop' : 'Start'}124 </button>125 <button onClick={this.handleReset}>Reset</button>126 </div>127 );128 }129}130export default Stopwatch;131*/132// Lesson 5133import React, { Component } from 'react';134class Stopwatch extends Component {135 state = {136 isRunning: false,137 elapsedTime: 0,138 previousTime: 0,139 };140 componentDidMount() {141 this.intervalID = setInterval(() => this.tick(), 100);142 }143 componentWillUnmount() {144 clearInterval(this.intervalID);145 }146 tick = () => {147 if (this.state.isRunning) {148 const now = Date.now();149 this.setState((prevState) => ({150 previousTime: now,151 elapsedTime: prevState.elapsedTime + (now - this.state.previousTime),152 }));153 }154 };155 handleStopwatch = () => {156 this.setState((prevState) => ({157 isRunning: !prevState.isRunning,158 }));159 if (!this.state.isRunning) {160 this.setState({ previousTime: Date.now() });161 }162 };163 handleReset = () => {164 this.setState({ elapsedTime: 0 });165 };166 render() {167 const seconds = Math.floor(this.state.elapsedTime / 1000);168 return (169 <div className='stopwatch'>170 <h2>Stopwatch</h2>171 <span className='stopwatch-time'>{seconds}</span>172 <button onClick={this.handleStopwatch}>173 {this.state.isRunning ? 'Stop' : 'Start'}174 </button>175 <button onClick={this.handleReset}>Reset</button>176 </div>177 );178 }179}...

Full Screen

Full Screen

PomodoroTimer.js

Source:PomodoroTimer.js Github

copy

Full Screen

1import React from 'react';2import { Button, StyleSheet, Text, View } from 'react-native';3import {4 Countdown,5 TimeInput,6 Timer,7 TimerToggleButton,8 vibrate,9} from './components';10//import {Timer, vibrate} from './utils'11const DEFAULT_WORK_MINS = 25;12const DEFAULT_BREAK_MINS = 5;13const minToSec = mins => mins * 60;14const nextTimer = { work: 'break', break: 'work' };15export default class App extends React.Component {16 state = {17 // in seconds18 workTime: minToSec(DEFAULT_WORK_MINS),19 breakTime: minToSec(DEFAULT_BREAK_MINS),20 // in ms21 timeRemaining: minToSec(DEFAULT_WORK_MINS) * 1000,22 isRunning: false,23 activeTimer: 'work',24 };25 componentDidMount() {26 this.timer = new Timer(27 this.state.timeRemaining,28 this.updateTimeRemaining,29 this.handleTimerEnd30 );31 this.isRunning = this.timer.isRunning;32 //this.setState({isRunning: this.timer.isRunning})33 }34 componentWillUnmount() {35 if (this.timer) this.timer.stop();36 }37 updateTime = target => (time, shouldStartTimer) => {38 if (this.state.activeTimer === target) {39 if (this.timer) this.timer.stop();40 const timeRemaining = +time * 1000;41 this.timer = new Timer(42 timeRemaining,43 this.updateTimeRemaining,44 this.handleTimerEnd45 );46 if (!shouldStartTimer) this.timer.stop();47 this.setState({48 [`${target}Time`]: time,49 timeRemaining,50 isRunning: this.timer.isRunning,51 });52 } else {53 this.setState({54 [`${target}Time`]: time,55 isRunning: this.timer.isRunning,56 });57 }58 };59 // hack: if an event is passed (ie is button press), stop timer60 resetTimer = shouldStopTimer => {61 const { activeTimer } = this.state;62 this.updateTime(activeTimer)(63 this.state[`${activeTimer}Time`],64 !shouldStopTimer65 );66 };67 updateTimeRemaining = timeRemaining => {68 this.setState({ timeRemaining });69 };70 toggleTimer = () => {71 if (!this.timer) return;72 if (this.timer.isRunning) this.timer.stop();73 else this.timer.start();74 this.setState({ isRunning: this.timer.isRunning });75 };76 handleTimerEnd = () => {77 vibrate();78 this.setState(79 prevState => ({ activeTimer: nextTimer[prevState.activeTimer] }),80 this.resetTimer81 );82 };83 render() {84 return (85 <View style={styles.container}>86 <Text style={[styles.title, styles.center]}>87 {this.state.activeTimer.toUpperCase()} TIMER88 </Text>89 <Countdown90 style={styles.center}91 timeRemaining={this.state.timeRemaining}92 onToggleTimer={this.toggleTimer}93 />94 <View style={[styles.buttonGroup, styles.center]}>95 <TimerToggleButton96 onToggle={this.toggleTimer}97 isRunning={this.state.isRunning}98 />99 <Button title="Reset" onPress={this.resetTimer} />100 </View>101 <TimeInput102 title="Work Time:"103 onChange={this.updateTime('work')}104 value={this.state.workTime}105 />106 <TimeInput107 title="Break Time:"108 onChange={this.updateTime('break')}109 value={this.state.breakTime}110 />111 </View>112 );113 }114}115const styles = StyleSheet.create({116 container: {117 flex: 1,118 paddingTop: 150,119 backgroundColor: '#fff',120 alignItems: 'stretch',121 },122 center: {123 alignSelf: 'center',124 },125 buttonGroup: {126 flexDirection: 'row',127 },128 title: {129 fontWeight: 'bold',130 fontSize: 48,131 textTransform: 'capitalize',132 },...

Full Screen

Full Screen

TimerService.js

Source:TimerService.js Github

copy

Full Screen

1angular2 .module('choregg')3 .factory('TimerService', ['$rootScope', '$q', function($rootScope, $q) {4 var timeRemaining = 10;5 var isRunning = null;6 var isPaused = null;7 return {8 getTimeRemaining: function() {9 // THIS IS ONLY USED IN TEST10 return timeRemaining;11 },12 getIsRunning: function() {13 // THIS IS ONLY USED IN TEST14 return isRunning;15 },16 getIsPaused: function() {17 // THIS IS ONLY USED IN TEST18 return isPaused;19 },20 pause: function() {21 $rootScope.$broadcast('timer-stop');22 isPaused = true;23 isRunning = false;24 $rootScope.$broadcast('isPausedChanged', {isPaused: isPaused});25 $rootScope.$broadcast('isRunningChanged', {isRunning: isRunning});26 },27 resume: function() {28 $rootScope.$broadcast('timer-start');29 isRunning = true;30 isPaused = false;31 $rootScope.$broadcast('isPausedChanged', {isPaused: isPaused});32 $rootScope.$broadcast('isRunningChanged', {isRunning: isRunning});33 },34 startTimer: function() {35 isRunning = true;36 isPaused = false;37 $rootScope.$broadcast('timer-start');38 $rootScope.$broadcast('isPausedChanged', {isPaused: isPaused});39 $rootScope.$broadcast('isRunningChanged', {isRunning: isRunning});40 },41 tickDown: function() {42 if (isRunning && !isPaused) {43 timeRemaining -= 1;44 $rootScope.$broadcast('timeRemainingChanged', {timeRemaining: timeRemaining});45 }46 },47 stopTimer: function () {48 $rootScope.$broadcast('timer-stop');49 isRunning = false;50 isPaused = false;51 $rootScope.$broadcast('isPausedChanged', {isPaused: isPaused});52 $rootScope.$broadcast('isRunningChanged', {isRunning: isRunning});53 },54 restartTimer: function() {55 $rootScope.$broadcast('timer-stop');56 $rootScope.$broadcast('timer-start');57 $rootScope.$broadcast('timer-set-countdown', 10);58 timeRemaining = 10;59 $rootScope.$broadcast('timeRemainingChanged', {timeRemaining: timeRemaining});60 isRunning = true;61 isPaused = false;62 $rootScope.$broadcast('isPausedChanged', {isPaused: isPaused});63 $rootScope.$broadcast('isRunningChanged', {isRunning: isRunning});64 }65 }...

Full Screen

Full Screen

Controls.js

Source:Controls.js Github

copy

Full Screen

1import React from "react";2import { useSelector, useDispatch } from "react-redux";3import { moveDown, moveLeft, moveRight, rotate } from "../actions";4export default function Controls(props) {5 const dispatch = useDispatch();6 const { isRunning, gameOver } = useSelector((state) => state.game);7 return (8 <div className={`controls`}>9 {/* left */}10 <button11 disabled={!isRunning || gameOver}12 className="control-button"13 onClick={(e) => {14 if (!isRunning || gameOver) {15 return;16 }17 dispatch(moveLeft());18 }}19 >Left</button>20 {/* right */}21 <button22 disabled={!isRunning || gameOver}23 className="control-button"24 onClick={(e) => {25 if (!isRunning || gameOver) {26 return;27 }28 dispatch(moveRight());29 }}30 >Right</button>31 {/* rotate */}32 <button33 disabled={!isRunning || gameOver}34 className="control-button"35 onClick={(e) => {36 if (!isRunning || gameOver) {37 return;38 }39 dispatch(rotate());40 }}41 >Rotate</button>42 {/* down */}43 <button44 disabled={!isRunning || gameOver}45 className="control-button"46 onClick={(e) => {47 if (!isRunning || gameOver) {48 return;49 }50 dispatch(moveDown());51 }}52 >Down</button>53 </div>54 );...

Full Screen

Full Screen

app.js

Source:app.js Github

copy

Full Screen

...3const app2 = sexpress({ name: 'new', run: true })4const app3 = sexpress()5const app4 = sexpress({ name: 'never' })6console.log('NONE:', {7 app1: app.isRunning(),8 ap2: app2.isRunning(),9 app3: app3.isRunning(),10 app4: app4.isRunning(),11})12app.run().then(async () => {13 console.log('TWO:', {14 app1: app.isRunning(),15 app2: app2.isRunning(),16 app3: app3.isRunning(),17 app4: app4.isRunning(),18 })19 await app3.run().then(() => {20 console.log('FOUR:', {21 app1: app.isRunning(),22 app2: app2.isRunning(),23 app3: app3.isRunning(),24 app4: app4.isRunning(),25 })26 })27 console.log('THREE:', {28 app1: app.isRunning(),29 app2: app2.isRunning(),30 app3: app3.isRunning(),31 app4: app4.isRunning(),32 })33})34console.log('ONE:', {35 app1: app.isRunning(),36 app2: app2.isRunning(),37 app3: app3.isRunning(),38 app4: app4.isRunning(),...

Full Screen

Full Screen

background.js

Source:background.js Github

copy

Full Screen

1chrome.alarms.create("hourglassTimer", {2 periodInMinutes: 1 / 60,3});4chrome.alarms.onAlarm.addListener((alarm) => {5 if (alarm.name === "hourglassTimer") {6 chrome.storage.local.get(["timer", "isRunning", "timeOption"], (res) => {7 if (res.isRunning) {8 let timer = res.timer + 1;9 let isRunning = true;10 if (timer === 60 * res.timeOption) {11 this.registration.showNotification("Hourglass", {12 body: `${res.timeOption} minutes is passed!`,13 icon: "image/hourglass.png",14 });15 timer = 0;16 isRunning = false;17 }18 chrome.storage.local.set({19 timer,20 isRunning,21 });22 }23 });24 }25});26chrome.storage.local.get(["timer", "isRunning", "timeOption"], (res) => {27 chrome.storage.local.set({28 timer: "timer" in res ? res.timer : 0,29 timeOption: "timerOption" in res ? res.timeOption : 25,30 isRunning: "isRunning" in res ? res.isRunning : false,31 });...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch();4 const page = await browser.newPage();5 await page.screenshot({ path: 'playwright.png' });6 await browser.close();7})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const isRunning = require('playwright/lib/server/browserServer').isRunning;2const { chromium } = require('playwright');3(async () => {4 const browserServer = await chromium.launchServer();5 console.log(isRunning(browserServer));6 await browserServer.close();7 console.log(isRunning(browserServer));8})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { isRunning } = require('playwright/lib/utils/utils');2console.log(isRunning());3const { isRunning } = require('playwright/lib/utils/utils');4console.log(isRunning());5const { isRunning } = require('playwright/lib/utils/utils');6console.log(isRunning());7const { isRunning } = require('playwright/lib/utils/utils');8console.log(isRunning());9const { isRunning } = require('playwright/lib/utils/utils');10console.log(isRunning());11const { isRunning } = require('playwright/lib/utils/utils');12console.log(isRunning());13const { isRunning } = require('playwright/lib/utils/utils');14console.log(isRunning());15const { isRunning } = require('playwright/lib/utils/utils');16console.log(isRunning());17const { isRunning } = require('playwright/lib/utils/utils');18console.log(isRunning());19const { isRunning } = require('playwright/lib/utils/utils');20console.log(isRunning());21const { isRunning } = require('playwright/lib/utils/utils');22console.log(isRunning());23const { isRunning } = require('playwright/lib/utils/utils');24console.log(isRunning());25const { isRunning } = require('playwright/lib/utils/utils');26console.log(isRunning());27const { is

Full Screen

Using AI Code Generation

copy

Full Screen

1const { isRunning } = require('playwright-core/lib/utils/utils');2console.log(isRunning);3const { isRunning } = require('playwright/lib/utils/utils');4console.log(isRunning);5const { isRunning } = require('playwright-chromium/lib/utils/utils');6console.log(isRunning);7const { isRunning } = require('playwright-firefox/lib/utils/utils');8console.log(isRunning);9const { isRunning } = require('playwright-webkit/lib/utils/utils');10console.log(isRunning);11const { isRunning } = require('playwright/lib/utils/utils');12console.log(isRunning);13const { isRunning } = require('playwright-chromium/lib/utils/utils');14console.log(isRunning);15const { isRunning } = require('playwright-firefox/lib/utils/utils');16console.log(isRunning);17const { isRunning } = require('playwright-webkit/lib/utils/utils');18console.log(isRunning);19const { isRunning } = require('playwright/lib/utils/utils');20console.log(isRunning);21const { isRunning } = require('playwright-chromium/lib/utils/utils');22console.log(isRunning);23const { isRunning } = require('playwright-firefox/lib/utils/utils');24console.log(isRunning);25const { isRunning } = require('playwright-webkit/lib/utils/utils');26console.log(isRunning);

Full Screen

Using AI Code Generation

copy

Full Screen

1const { isRunning } = require('playwright/lib/utils/utils');2(async () => {3 const browser = await chromium.launch();4 console.log(isRunning(browser));5 await browser.close();6 console.log(isRunning(browser));7})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { isRunning } = require('playwright/lib/utils/utils');2console.log(isRunning());3const { isRunning } = require('playwright/lib/server/processLauncher');4console.log(isRunning());5const { isRunning } = require('playwright/lib/server/processLauncher');6console.log(isRunning());7const { isRunning } = require('playwright/lib/utils/utils');8const browser = await chromium.launch();9console.log(isRunning(browser.process()));10await browser.close();11const { isRunning } = require('playwright/lib/utils/utils');12const browser = await chromium.launch();13const browserProcess = browser.process();14await browser.close();15console.log(isRunning(browserProcess));16const processLauncher = {17};

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Internal automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful