@bsky.app/sift 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @bsky.app/sift
|
|
2
2
|
|
|
3
|
+
## 0.2.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`5436104`](https://github.com/bluesky-social/toolbox/commit/54361043995ce4cbdefd06d40f0bf8b4ed6f3c4f) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Stop event propogation for handled keyboard events
|
|
8
|
+
|
|
3
9
|
## 0.2.1
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboardHandling.web.d.ts","sourceRoot":"","sources":["../src/useKeyboardHandling.web.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,aAAa,EAAC,MAAM,WAAW,CAAA;AAE5C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,aAAa,CAAA;IACnB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB,
|
|
1
|
+
{"version":3,"file":"useKeyboardHandling.web.d.ts","sourceRoot":"","sources":["../src/useKeyboardHandling.web.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,aAAa,EAAC,MAAM,WAAW,CAAA;AAE5C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,aAAa,CAAA;IACnB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB,QAyDA"}
|
|
@@ -9,33 +9,38 @@ export function useKeyboardHandling(props) {
|
|
|
9
9
|
function onKeyDown(e) {
|
|
10
10
|
if (!callbacksRef.current.sift.isActive())
|
|
11
11
|
return;
|
|
12
|
+
let handled = false;
|
|
12
13
|
switch (e.key) {
|
|
13
14
|
case 'ArrowDown':
|
|
14
|
-
|
|
15
|
+
handled = true;
|
|
15
16
|
callbacksRef.current.onArrowDown();
|
|
16
17
|
break;
|
|
17
18
|
case 'ArrowUp':
|
|
18
|
-
|
|
19
|
+
handled = true;
|
|
19
20
|
callbacksRef.current.onArrowUp();
|
|
20
21
|
break;
|
|
21
22
|
case 'Enter':
|
|
22
23
|
case 'Tab':
|
|
23
|
-
|
|
24
|
+
handled = true;
|
|
24
25
|
callbacksRef.current.onSelect();
|
|
25
26
|
break;
|
|
26
27
|
case 'Home':
|
|
27
|
-
|
|
28
|
+
handled = true;
|
|
28
29
|
callbacksRef.current.onHome();
|
|
29
30
|
break;
|
|
30
31
|
case 'End':
|
|
31
|
-
|
|
32
|
+
handled = true;
|
|
32
33
|
callbacksRef.current.onEnd();
|
|
33
34
|
break;
|
|
34
35
|
case 'Escape':
|
|
35
|
-
|
|
36
|
+
handled = true;
|
|
36
37
|
callbacksRef.current.onDismiss?.();
|
|
37
38
|
break;
|
|
38
39
|
}
|
|
40
|
+
if (handled) {
|
|
41
|
+
e.stopPropagation();
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
}
|
|
39
44
|
}
|
|
40
45
|
if ('addEventListener' in input) {
|
|
41
46
|
input.addEventListener('keydown', onKeyDown);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboardHandling.web.js","sourceRoot":"","sources":["../src/useKeyboardHandling.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAC,MAAM,OAAO,CAAA;AAIvC,MAAM,UAAU,mBAAmB,CAAC,KASnC;IACC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAClC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA;QACvC,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,SAAS,SAAS,CAAC,CAAgB;YACjC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAAE,OAAM;YAEjD,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;gBACd,KAAK,WAAW;oBACd,
|
|
1
|
+
{"version":3,"file":"useKeyboardHandling.web.js","sourceRoot":"","sources":["../src/useKeyboardHandling.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAC,MAAM,OAAO,CAAA;AAIvC,MAAM,UAAU,mBAAmB,CAAC,KASnC;IACC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAClC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA;QACvC,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,SAAS,SAAS,CAAC,CAAgB;YACjC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAAE,OAAM;YAEjD,IAAI,OAAO,GAAG,KAAK,CAAA;YAEnB,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;gBACd,KAAK,WAAW;oBACd,OAAO,GAAG,IAAI,CAAA;oBACd,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;oBAClC,MAAK;gBACP,KAAK,SAAS;oBACZ,OAAO,GAAG,IAAI,CAAA;oBACd,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;oBAChC,MAAK;gBACP,KAAK,OAAO,CAAC;gBACb,KAAK,KAAK;oBACR,OAAO,GAAG,IAAI,CAAA;oBACd,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;oBAC/B,MAAK;gBACP,KAAK,MAAM;oBACT,OAAO,GAAG,IAAI,CAAA;oBACd,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;oBAC7B,MAAK;gBACP,KAAK,KAAK;oBACR,OAAO,GAAG,IAAI,CAAA;oBACd,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;oBAC5B,MAAK;gBACP,KAAK,QAAQ;oBACX,OAAO,GAAG,IAAI,CAAA;oBACd,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAA;oBAClC,MAAK;YACT,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,eAAe,EAAE,CAAA;gBACnB,CAAC,CAAC,cAAc,EAAE,CAAA;YACpB,CAAC;QACH,CAAC;QAED,IAAI,kBAAkB,IAAI,KAAK,EAAE,CAAC;YAChC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAC9C,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,qBAAqB,IAAI,KAAK,EAAE,CAAC;gBACnC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YACjD,CAAC;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;AACjC,CAAC","sourcesContent":["import {useEffect, useRef} from 'react'\n\nimport {type UseSiftReturn} from './useSift'\n\nexport function useKeyboardHandling(props: {\n enabled?: boolean\n sift: UseSiftReturn\n onArrowDown: () => void\n onArrowUp: () => void\n onHome: () => void\n onEnd: () => void\n onSelect: () => void\n onDismiss?: () => void\n}) {\n const callbacksRef = useRef(props)\n callbacksRef.current = props\n\n useEffect(() => {\n const input = props.sift.elements.input\n if (!input) return\n\n function onKeyDown(e: KeyboardEvent) {\n if (!callbacksRef.current.sift.isActive()) return\n\n let handled = false\n\n switch (e.key) {\n case 'ArrowDown':\n handled = true\n callbacksRef.current.onArrowDown()\n break\n case 'ArrowUp':\n handled = true\n callbacksRef.current.onArrowUp()\n break\n case 'Enter':\n case 'Tab':\n handled = true\n callbacksRef.current.onSelect()\n break\n case 'Home':\n handled = true\n callbacksRef.current.onHome()\n break\n case 'End':\n handled = true\n callbacksRef.current.onEnd()\n break\n case 'Escape':\n handled = true\n callbacksRef.current.onDismiss?.()\n break\n }\n\n if (handled) {\n e.stopPropagation()\n e.preventDefault()\n }\n }\n\n if ('addEventListener' in input) {\n input.addEventListener('keydown', onKeyDown)\n }\n\n return () => {\n if ('removeEventListener' in input) {\n input.removeEventListener('keydown', onKeyDown)\n }\n }\n }, [props.sift.elements.input])\n}\n"]}
|
package/package.json
CHANGED
|
@@ -22,33 +22,40 @@ export function useKeyboardHandling(props: {
|
|
|
22
22
|
function onKeyDown(e: KeyboardEvent) {
|
|
23
23
|
if (!callbacksRef.current.sift.isActive()) return
|
|
24
24
|
|
|
25
|
+
let handled = false
|
|
26
|
+
|
|
25
27
|
switch (e.key) {
|
|
26
28
|
case 'ArrowDown':
|
|
27
|
-
|
|
29
|
+
handled = true
|
|
28
30
|
callbacksRef.current.onArrowDown()
|
|
29
31
|
break
|
|
30
32
|
case 'ArrowUp':
|
|
31
|
-
|
|
33
|
+
handled = true
|
|
32
34
|
callbacksRef.current.onArrowUp()
|
|
33
35
|
break
|
|
34
36
|
case 'Enter':
|
|
35
37
|
case 'Tab':
|
|
36
|
-
|
|
38
|
+
handled = true
|
|
37
39
|
callbacksRef.current.onSelect()
|
|
38
40
|
break
|
|
39
41
|
case 'Home':
|
|
40
|
-
|
|
42
|
+
handled = true
|
|
41
43
|
callbacksRef.current.onHome()
|
|
42
44
|
break
|
|
43
45
|
case 'End':
|
|
44
|
-
|
|
46
|
+
handled = true
|
|
45
47
|
callbacksRef.current.onEnd()
|
|
46
48
|
break
|
|
47
49
|
case 'Escape':
|
|
48
|
-
|
|
50
|
+
handled = true
|
|
49
51
|
callbacksRef.current.onDismiss?.()
|
|
50
52
|
break
|
|
51
53
|
}
|
|
54
|
+
|
|
55
|
+
if (handled) {
|
|
56
|
+
e.stopPropagation()
|
|
57
|
+
e.preventDefault()
|
|
58
|
+
}
|
|
52
59
|
}
|
|
53
60
|
|
|
54
61
|
if ('addEventListener' in input) {
|