@tamagui/web 3.0.0-beta.1551.1 → 3.0.0-beta.1562.1
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.
|
@@ -25,15 +25,21 @@ __export(eventHandling_exports, {
|
|
|
25
25
|
wrapWithGestureDetector: () => wrapWithGestureDetector
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(eventHandling_exports);
|
|
28
|
+
let lastTouch = -1e9;
|
|
29
|
+
const pressFrom = (touch, handler) => handler && ((e) => {
|
|
30
|
+
if (touch) lastTouch = e.timeStamp;
|
|
31
|
+
else if (e.timeStamp - lastTouch < 1e3) return;
|
|
32
|
+
handler(e);
|
|
33
|
+
});
|
|
28
34
|
function getWebEvents(events, webStyle = true) {
|
|
29
35
|
return {
|
|
30
36
|
onMouseEnter: events.onMouseEnter,
|
|
31
37
|
onMouseLeave: events.onMouseLeave,
|
|
32
38
|
[webStyle ? "onClick" : "onPress"]: events.onPress,
|
|
33
|
-
onMouseDown: events.onPressIn,
|
|
34
|
-
onMouseUp: events.onPressOut,
|
|
35
|
-
onTouchStart: events.onPressIn,
|
|
36
|
-
onTouchEnd: events.onPressOut,
|
|
39
|
+
onMouseDown: pressFrom(false, events.onPressIn),
|
|
40
|
+
onMouseUp: pressFrom(false, events.onPressOut),
|
|
41
|
+
onTouchStart: pressFrom(true, events.onPressIn),
|
|
42
|
+
onTouchEnd: pressFrom(true, events.onPressOut),
|
|
37
43
|
onFocus: events.onFocus,
|
|
38
44
|
onBlur: events.onBlur
|
|
39
45
|
};
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
+
let lastTouch = -1e9;
|
|
2
|
+
const pressFrom = (touch, handler) => handler && ((e) => {
|
|
3
|
+
if (touch) lastTouch = e.timeStamp;
|
|
4
|
+
else if (e.timeStamp - lastTouch < 1e3) return;
|
|
5
|
+
handler(e);
|
|
6
|
+
});
|
|
1
7
|
function getWebEvents(events, webStyle = true) {
|
|
2
8
|
return {
|
|
3
9
|
onMouseEnter: events.onMouseEnter,
|
|
4
10
|
onMouseLeave: events.onMouseLeave,
|
|
5
11
|
[webStyle ? "onClick" : "onPress"]: events.onPress,
|
|
6
|
-
onMouseDown: events.onPressIn,
|
|
7
|
-
onMouseUp: events.onPressOut,
|
|
8
|
-
onTouchStart: events.onPressIn,
|
|
9
|
-
onTouchEnd: events.onPressOut,
|
|
12
|
+
onMouseDown: pressFrom(false, events.onPressIn),
|
|
13
|
+
onMouseUp: pressFrom(false, events.onPressOut),
|
|
14
|
+
onTouchStart: pressFrom(true, events.onPressIn),
|
|
15
|
+
onTouchEnd: pressFrom(true, events.onPressOut),
|
|
10
16
|
onFocus: events.onFocus,
|
|
11
17
|
onBlur: events.onBlur
|
|
12
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventHandling.js","names":[],"sources":["esm/eventHandling.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"eventHandling.js","names":[],"sources":["esm/eventHandling.js"],"sourcesContent":["let lastTouch = -1e9;\nconst pressFrom = (touch, handler) => handler && ((e) => {\n if (touch) lastTouch = e.timeStamp;\n else if (e.timeStamp - lastTouch < 1e3) return;\n handler(e);\n});\nfunction getWebEvents(events, webStyle = true) {\n return {\n onMouseEnter: events.onMouseEnter,\n onMouseLeave: events.onMouseLeave,\n [webStyle ? \"onClick\" : \"onPress\"]: events.onPress,\n onMouseDown: pressFrom(false, events.onPressIn),\n onMouseUp: pressFrom(false, events.onPressOut),\n onTouchStart: pressFrom(true, events.onPressIn),\n onTouchEnd: pressFrom(true, events.onPressOut),\n onFocus: events.onFocus,\n onBlur: events.onBlur\n };\n}\nfunction wrapWithGestureDetector(content, _gesture, _stateRef, _isHOC, _isCompositeComponent, _hasRealPressEvents) {\n return content;\n}\nfunction useEvents(_events, _viewProps, _stateRef, _staticConfig, _isHOC, _isInsideNativeMenu, _debugName, _hasRealPressEvents) {\n return null;\n}\nexport {\n getWebEvents,\n useEvents,\n wrapWithGestureDetector\n};\n//# sourceMappingURL=eventHandling.js.map\n"],"mappings":";AAAA,IAAI,YAAY,CAAC;AACjB,MAAM,aAAa,OAAO,YAAY,aAAa,MAAM;CACvD,IAAI,OAAO,YAAY,EAAE;MACpB,IAAI,EAAE,YAAY,YAAY,KAAK;CACxC,QAAQ,CAAC;AACX;AACA,SAAS,aAAa,QAAQ,WAAW,MAAM;CAC7C,OAAO;EACL,cAAc,OAAO;EACrB,cAAc,OAAO;GACpB,WAAW,YAAY,YAAY,OAAO;EAC3C,aAAa,UAAU,OAAO,OAAO,SAAS;EAC9C,WAAW,UAAU,OAAO,OAAO,UAAU;EAC7C,cAAc,UAAU,MAAM,OAAO,SAAS;EAC9C,YAAY,UAAU,MAAM,OAAO,UAAU;EAC7C,SAAS,OAAO;EAChB,QAAQ,OAAO;CACjB;AACF;AACA,SAAS,wBAAwB,SAAS,UAAU,WAAW,QAAQ,uBAAuB,qBAAqB;CACjH,OAAO;AACT;AACA,SAAS,UAAU,SAAS,YAAY,WAAW,eAAe,QAAQ,qBAAqB,YAAY,qBAAqB;CAC9H,OAAO;AACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.1562.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Nate Wienert"
|
|
@@ -100,23 +100,23 @@
|
|
|
100
100
|
"test:web": "vitest --typecheck --run"
|
|
101
101
|
},
|
|
102
102
|
"dependencies": {
|
|
103
|
-
"@tamagui/animation-helpers": "3.0.0-beta.
|
|
104
|
-
"@tamagui/compose-refs": "3.0.0-beta.
|
|
105
|
-
"@tamagui/constants": "3.0.0-beta.
|
|
106
|
-
"@tamagui/dom": "3.0.0-beta.
|
|
107
|
-
"@tamagui/helpers": "3.0.0-beta.
|
|
108
|
-
"@tamagui/is-equal-shallow": "3.0.0-beta.
|
|
109
|
-
"@tamagui/native": "3.0.0-beta.
|
|
110
|
-
"@tamagui/normalize-css-color": "3.0.0-beta.
|
|
111
|
-
"@tamagui/react-native-types": "3.0.0-beta.
|
|
112
|
-
"@tamagui/style-grammar": "3.0.0-beta.
|
|
113
|
-
"@tamagui/types": "3.0.0-beta.
|
|
114
|
-
"@tamagui/use-did-finish-ssr": "3.0.0-beta.
|
|
115
|
-
"@tamagui/use-event": "3.0.0-beta.
|
|
116
|
-
"@tamagui/use-force-update": "3.0.0-beta.
|
|
103
|
+
"@tamagui/animation-helpers": "3.0.0-beta.1562.1",
|
|
104
|
+
"@tamagui/compose-refs": "3.0.0-beta.1562.1",
|
|
105
|
+
"@tamagui/constants": "3.0.0-beta.1562.1",
|
|
106
|
+
"@tamagui/dom": "3.0.0-beta.1562.1",
|
|
107
|
+
"@tamagui/helpers": "3.0.0-beta.1562.1",
|
|
108
|
+
"@tamagui/is-equal-shallow": "3.0.0-beta.1562.1",
|
|
109
|
+
"@tamagui/native": "3.0.0-beta.1562.1",
|
|
110
|
+
"@tamagui/normalize-css-color": "3.0.0-beta.1562.1",
|
|
111
|
+
"@tamagui/react-native-types": "3.0.0-beta.1562.1",
|
|
112
|
+
"@tamagui/style-grammar": "3.0.0-beta.1562.1",
|
|
113
|
+
"@tamagui/types": "3.0.0-beta.1562.1",
|
|
114
|
+
"@tamagui/use-did-finish-ssr": "3.0.0-beta.1562.1",
|
|
115
|
+
"@tamagui/use-event": "3.0.0-beta.1562.1",
|
|
116
|
+
"@tamagui/use-force-update": "3.0.0-beta.1562.1"
|
|
117
117
|
},
|
|
118
118
|
"devDependencies": {
|
|
119
|
-
"@tamagui/build": "3.0.0-beta.
|
|
119
|
+
"@tamagui/build": "3.0.0-beta.1562.1",
|
|
120
120
|
"@testing-library/react": "^16.1.0",
|
|
121
121
|
"csstype": "^3.0.10",
|
|
122
122
|
"react": "19.2.3",
|
package/src/eventHandling.ts
CHANGED
|
@@ -7,15 +7,30 @@ import type { TamaguiComponentEvents } from './interfaces/TamaguiComponentEvents
|
|
|
7
7
|
type EventKeys = keyof TamaguiComponentEvents
|
|
8
8
|
type EventLikeObject = { [key in EventKeys]?: any }
|
|
9
9
|
|
|
10
|
+
// a tap on a touch screen fires touchstart and touchend, then the browser's
|
|
11
|
+
// compatibility mousedown and mouseup for the same tap. press in and press out
|
|
12
|
+
// listen to both so a mouse presses too, so without this every press-in and
|
|
13
|
+
// press-out handler ran twice per tap (a toggle opened and closed again).
|
|
14
|
+
let lastTouch = -1e9
|
|
15
|
+
|
|
16
|
+
// a mouse event within a second of a touch is that compatibility echo
|
|
17
|
+
const pressFrom = (touch: boolean, handler?: (e: { timeStamp: number }) => void) =>
|
|
18
|
+
handler &&
|
|
19
|
+
((e: { timeStamp: number }) => {
|
|
20
|
+
if (touch) lastTouch = e.timeStamp
|
|
21
|
+
else if (e.timeStamp - lastTouch < 1000) return
|
|
22
|
+
handler(e)
|
|
23
|
+
})
|
|
24
|
+
|
|
10
25
|
export function getWebEvents<E extends EventLikeObject>(events: E, webStyle = true) {
|
|
11
26
|
return {
|
|
12
27
|
onMouseEnter: events.onMouseEnter,
|
|
13
28
|
onMouseLeave: events.onMouseLeave,
|
|
14
29
|
[webStyle ? 'onClick' : 'onPress']: events.onPress,
|
|
15
|
-
onMouseDown: events.onPressIn,
|
|
16
|
-
onMouseUp: events.onPressOut,
|
|
17
|
-
onTouchStart: events.onPressIn,
|
|
18
|
-
onTouchEnd: events.onPressOut,
|
|
30
|
+
onMouseDown: pressFrom(false, events.onPressIn),
|
|
31
|
+
onMouseUp: pressFrom(false, events.onPressOut),
|
|
32
|
+
onTouchStart: pressFrom(true, events.onPressIn),
|
|
33
|
+
onTouchEnd: pressFrom(true, events.onPressOut),
|
|
19
34
|
onFocus: events.onFocus,
|
|
20
35
|
onBlur: events.onBlur,
|
|
21
36
|
}
|
package/types/eventHandling.d.ts
CHANGED
|
@@ -10,10 +10,18 @@ export declare function getWebEvents<E extends EventLikeObject>(events: E, webSt
|
|
|
10
10
|
[x: string]: any;
|
|
11
11
|
onMouseEnter: any;
|
|
12
12
|
onMouseLeave: any;
|
|
13
|
-
onMouseDown:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
onMouseDown: ((e: {
|
|
14
|
+
timeStamp: number;
|
|
15
|
+
}) => void) | undefined;
|
|
16
|
+
onMouseUp: ((e: {
|
|
17
|
+
timeStamp: number;
|
|
18
|
+
}) => void) | undefined;
|
|
19
|
+
onTouchStart: ((e: {
|
|
20
|
+
timeStamp: number;
|
|
21
|
+
}) => void) | undefined;
|
|
22
|
+
onTouchEnd: ((e: {
|
|
23
|
+
timeStamp: number;
|
|
24
|
+
}) => void) | undefined;
|
|
17
25
|
onFocus: any;
|
|
18
26
|
onBlur: any;
|
|
19
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventHandling.d.ts","sourceRoot":"","sources":["../src/eventHandling.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAEjF,KAAK,SAAS,GAAG,MAAM,sBAAsB,CAAA;AAC7C,KAAK,eAAe,GAAG;KAAG,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG;CAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"eventHandling.d.ts","sourceRoot":"","sources":["../src/eventHandling.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAEjF,KAAK,SAAS,GAAG,MAAM,sBAAsB,CAAA;AAC7C,KAAK,eAAe,GAAG;KAAG,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG;CAAE,CAAA;AAiBnD,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,UAAO;;;;sBAN3E;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;EAkB3B;AAGD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,qBAAqB,CAAC,EAAE,OAAO,EAC/B,mBAAmB,CAAC,EAAE,OAAO,OAG9B;AAGD,wBAAgB,SAAS,CACvB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,GAAG,EACf,SAAS,EAAE;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,EAC3B,aAAa,EAAE,GAAG,EAClB,MAAM,CAAC,EAAE,OAAO,EAChB,mBAAmB,CAAC,EAAE,OAAO,EAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,EAC1B,mBAAmB,CAAC,EAAE,OAAO,QAG9B"}
|