440440 </ div >
441441 </ div >
442442
443+ < div style ="position: relative; ">
444+ < button class ="settings-btn " id ="btnFlash " title ="Efeito Visual ">
445+ < i class ="fa fa-lightbulb-o "> </ i >
446+ </ button >
447+ < div class ="dropdown-menu-custom " id ="menuFlash ">
448+ < div class ="dropdown-item-custom " id ="optFlashEnable " onclick ="setFlashEnabled(true) "> Ativar tela piscante</ div >
449+ < div class ="dropdown-item-custom " id ="optFlashDisable " onclick ="setFlashEnabled(false) "> Desativar tela piscante</ div >
450+ </ div >
451+ </ div >
452+
443453 < button class ="settings-btn " id ="btnUndo " title ="Desfazer (Undo) " onclick ="undoLastAction() ">
444454 < i class ="fa fa-arrow-left "> </ i >
445455 </ button >
@@ -556,7 +566,8 @@ <h5 class="modal-title">Atenção</h5>
556566 theme : 1 ,
557567 cooldownTime : 5 ,
558568 bingoType : "Bingo - Cartela cheia" ,
559- randomEnabled : false
569+ randomEnabled : false ,
570+ flashEnabled : true // Novo ajuste padrão
560571 } ;
561572
562573 let isCooldown = false ;
@@ -585,12 +596,14 @@ <h5 class="modal-title">Atenção</h5>
585596 closeMenuIfOutside ( e , 'btnTheme' , 'menuTheme' ) ;
586597 closeMenuIfOutside ( e , 'btnTimer' , 'menuTimer' ) ;
587598 closeMenuIfOutside ( e , 'btnRandom' , 'menuRandom' ) ;
599+ closeMenuIfOutside ( e , 'btnFlash' , 'menuFlash' ) ;
588600 } ) ;
589601
590602 document . getElementById ( 'btnToggleType' ) . onclick = toggleBingoType ;
591603 document . getElementById ( 'btnTheme' ) . onclick = ( ) => toggleMenu ( 'menuTheme' ) ;
592604 document . getElementById ( 'btnTimer' ) . onclick = ( ) => toggleMenu ( 'menuTimer' ) ;
593605 document . getElementById ( 'btnRandom' ) . onclick = ( ) => toggleMenu ( 'menuRandom' ) ;
606+ document . getElementById ( 'btnFlash' ) . onclick = ( ) => toggleMenu ( 'menuFlash' ) ;
594607
595608 document . getElementById ( 'btnReset' ) . onclick = ( ) => {
596609 const modal = new bootstrap . Modal ( document . getElementById ( 'resetModal' ) ) ;
@@ -925,6 +938,9 @@ <h5 class="modal-title">Atenção</h5>
925938 }
926939
927940 function triggerVisualEffect ( ) {
941+ // Verifica a nova configuração antes de piscar
942+ if ( ! settings . flashEnabled ) return ;
943+
928944 document . body . classList . add ( 'flash-animation' ) ;
929945 setTimeout ( ( ) => {
930946 document . body . classList . remove ( 'flash-animation' ) ;
@@ -1017,6 +1033,16 @@ <h5 class="modal-title">Atenção</h5>
10171033 disableEl . classList . add ( 'selected' ) ;
10181034 document . getElementById ( 'gridWrapper' ) . classList . remove ( 'random-enabled' ) ;
10191035 }
1036+ // Flash Enabled (NOVA SEÇÃO)
1037+ const flashEnableEl = document . getElementById ( 'optFlashEnable' ) ;
1038+ const flashDisableEl = document . getElementById ( 'optFlashDisable' ) ;
1039+ if ( settings . flashEnabled ) {
1040+ flashEnableEl . classList . add ( 'selected' ) ;
1041+ flashDisableEl . classList . remove ( 'selected' ) ;
1042+ } else {
1043+ flashEnableEl . classList . remove ( 'selected' ) ;
1044+ flashDisableEl . classList . add ( 'selected' ) ;
1045+ }
10201046 }
10211047
10221048 // === SETTINGS & LOGIC ===
@@ -1042,6 +1068,15 @@ <h5 class="modal-title">Atenção</h5>
10421068 broadcastUpdate ( false ) ;
10431069 }
10441070
1071+ function setFlashEnabled ( isEnabled ) {
1072+ if ( isPresentationMode ) return ;
1073+ settings . flashEnabled = isEnabled ;
1074+ saveToStorage ( ) ;
1075+ applySettingsUI ( ) ;
1076+ document . getElementById ( 'menuFlash' ) . classList . remove ( 'show' ) ;
1077+ broadcastUpdate ( false ) ;
1078+ }
1079+
10451080 function setTheme ( n ) {
10461081 if ( isPresentationMode ) return ;
10471082 settings . theme = n ;
0 commit comments