Debug dello stato dell'applicazione attivato dal focus
Nell'ispettore di elementi di qualsiasi browser moderno, puoi forzare un elemento in uno stato :hover o :focus per eseguire il debug di problemi di stile. A volte, vuoi eseguire il debug di un problema di un elemento con focus in uno stato controllato da JavaScript. Sfortunatamente, gli stati forzati dalla console di sviluppo non sono sempre sufficienti. (Nota: a meno che tu non usi Chrome, a quanto pare, scorri alla fine per una soluzione alternativa!)
Ho incontrato questo problema quando stavo stilizzando un componente <select> personalizzato in React. Il menu a tendina è visibile solo quando l'input è focalizzato, ma non potevo ispezionare questo stato con i devtools. Ogni volta che volevo navigare nell'albero degli elementi, i devtools diventavano l'elemento attivo sulla pagina e il menu scompariva.
Fortunatamente, mi sono imbattuto in un piccolo snippet per aiutare a eseguire il debug in questa situazione.
window.setTimeout(() => { debugger; }, 5000);Questo aspetterà cinque secondi prima di fermare tutta l'esecuzione del codice con un breakpoint del debugger. Con questo snippet, carico la pagina, imposto tutto nello stato che voglio ispezionare—5 secondi sono più che sufficienti—e aspetto che il timeout scatti. Quando il debugger viene attivato, posso navigare e armeggiare con l'albero degli elementi senza preoccuparmi che la pagina si aggiorni.
In React, ho avvolto questo in una chiamata useEffect per eseguirla una volta per il componente che volevo sottoporre a debug.
useEffect(() => {
window.setTimeout(() => { debugger; }, 5000);
}, []);Dopo aver condiviso questo post su Twitter, Bram ha twittato che Chrome DevTools ha una funzionalità per aggirare questo problema. Con l'impostazione 'Emulate a focussed page', la pagina web rimarrà in uno stato focalizzato quando giochi in DevTools. Leggi di più nelle note di rilascio di Chrome DevTool.
Altri articoli recenti
Laravel AI 1.1 e 1.2: Agent Skills, Cohere e structured output più solidi
Le release 1.1.0 e 1.2.0 di laravel/ai portano gli Agent Skills, l'approvazione obbligatoria per i tool built-in e nuovi provider come Cohere e Laya self-hosted. Sul fronte qualità arrivano i fix allo structured output per Bedrock e il supporto alle provider options. Aggiornati anche i modelli di default, con Claude 4.7+ che ignora i sampling params.
Laravel 13.35.0: scheduler più controllabile, code più flessibili e response Markdown
Laravel 13.35.0 porta Schedule::alwaysOnOneServer(), il supporto a schedule:interrupt per i comandi di lunga durata, --memory in percentuale per queue:work e il nuovo metodo markdown() sulla response factory. Tante piccole migliorie anche a test, view compilate in parallelo e dischi local.
BashBox: un interprete Bash in sandbox per agenti AI in PHP
BashBox è un interprete bash scritto in puro PHP che permette di eseguire gli script generati dagli agenti AI senza mai ricorrere a proc_open, exec o shell_exec. Ogni comando è una classe PHP che lavora su un filesystem virtuale, con limiti di esecuzione, quote disco e accesso di rete configurabili. Ideale per chi sviluppa agenti con il Laravel AI SDK o altre librerie simili.