41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
|
|
export class SecurityWall extends HTMLElement {
|
||
|
|
connectedCallback() {
|
||
|
|
this.render();
|
||
|
|
|
||
|
|
// Ecoute globale pour Alt+P
|
||
|
|
window.addEventListener('keydown', (event) => {
|
||
|
|
if (event.altKey && event.key.toLowerCase() === 'p') {
|
||
|
|
this.toggleWall();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
render() {
|
||
|
|
const isEnabled = localStorage.getItem('mainframe-wallsecurity') === 'true';
|
||
|
|
if (!isEnabled) {
|
||
|
|
// Retirer si déjà présent
|
||
|
|
const existing = document.querySelector('security-wall-item');
|
||
|
|
if (existing) existing.remove();
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Ajouter seulement si pas déjà présent
|
||
|
|
if (!document.querySelector('security-wall-item')) {
|
||
|
|
let wall = document.createElement('security-wall-item');
|
||
|
|
wall.innerHTML = `
|
||
|
|
<div class="content">
|
||
|
|
<h2><warn>/!\\ </warn> - Protection MAINFRAME - <warn>/!\\ </warn></h2>
|
||
|
|
<span>Filtre de confidentialité activée</span>
|
||
|
|
</div>
|
||
|
|
`;
|
||
|
|
document.body.appendChild(wall);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
toggleWall() {
|
||
|
|
const current = localStorage.getItem('mainframe-wallsecurity') === 'true';
|
||
|
|
localStorage.setItem('mainframe-wallsecurity', current ? 'false' : 'true');
|
||
|
|
this.render();
|
||
|
|
}
|
||
|
|
}
|