personal web client for Bluesky
typescript solidjs bluesky atcute
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

at trunk 24 lines 538 B view raw
1import { createEffect } from 'solid-js'; 2 3import { createEventListener } from './event-listener'; 4 5export const useEscape = (callback: () => void, enabled: () => boolean) => { 6 createEffect(() => { 7 if (!enabled()) { 8 return; 9 } 10 11 createEventListener(window, 'keydown', (ev) => { 12 if (ev.key === 'Escape' && !ev.defaultPrevented) { 13 ev.preventDefault(); 14 15 const focused = document.activeElement; 16 if (focused !== null && focused !== document.body) { 17 (focused as any).blur(); 18 } 19 20 callback(); 21 } 22 }); 23 }); 24};