@applicaster/zapp-react-dom-app 13.0.0-rc.14 → 13.0.0-rc.16
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/App/InteractionManager/index.tsx +60 -41
- package/package.json +6 -6
|
@@ -23,8 +23,6 @@ import {
|
|
|
23
23
|
|
|
24
24
|
import { showConfirmationDialog } from "@applicaster/zapp-react-native-utils/alertUtils";
|
|
25
25
|
|
|
26
|
-
import { withUseSeek } from "@applicaster/zapp-react-native-utils/reactHooks/player";
|
|
27
|
-
|
|
28
26
|
import {
|
|
29
27
|
DISPLAY_STATES,
|
|
30
28
|
DisplayStateContext,
|
|
@@ -48,6 +46,7 @@ import {
|
|
|
48
46
|
|
|
49
47
|
import { OnScreenKeyboard } from "@applicaster/zapp-react-dom-ui-components/Components/OnScreenKeyboard";
|
|
50
48
|
import { KeyboardLongPressManager } from "@applicaster/zapp-react-dom-ui-components/Utils/KeyboardLongPressManager";
|
|
49
|
+
import { KeyInputHandler } from "@applicaster/zapp-react-native-utils/appUtils/keyInputHandler/KeyInputHandler";
|
|
51
50
|
|
|
52
51
|
const { withXray } = getXray();
|
|
53
52
|
const globalAny: any = global;
|
|
@@ -62,14 +61,6 @@ type Props = {
|
|
|
62
61
|
navigator: QuickBrickAppNavigator;
|
|
63
62
|
rivers: {};
|
|
64
63
|
xray: XRayContext;
|
|
65
|
-
seekMethods: {
|
|
66
|
-
onRewindPress: () => void;
|
|
67
|
-
onRewindLongPress: () => void;
|
|
68
|
-
onForwardPress: () => void;
|
|
69
|
-
onForwardLongPress: () => void;
|
|
70
|
-
onRewindPressOut: () => void;
|
|
71
|
-
onForwardPressOut: () => void;
|
|
72
|
-
};
|
|
73
64
|
confirmDialog: typeof confirmationDialogStore;
|
|
74
65
|
};
|
|
75
66
|
|
|
@@ -181,6 +172,11 @@ class InteractionManagerClass extends React.Component<Props, State> {
|
|
|
181
172
|
|
|
182
173
|
window.addEventListener("onLongPress", this.handleLongPress.bind(this));
|
|
183
174
|
|
|
175
|
+
window.addEventListener(
|
|
176
|
+
"onPressRelease",
|
|
177
|
+
this.handleLongPressRelease.bind(this)
|
|
178
|
+
);
|
|
179
|
+
|
|
184
180
|
window.addEventListener(
|
|
185
181
|
"onLongPressRelease",
|
|
186
182
|
this.handleLongPressRelease.bind(this)
|
|
@@ -339,9 +335,34 @@ class InteractionManagerClass extends React.Component<Props, State> {
|
|
|
339
335
|
}
|
|
340
336
|
|
|
341
337
|
onKeyUp(event: KeyboardEvent) {
|
|
338
|
+
const { setDisplayState } = this.props;
|
|
339
|
+
|
|
342
340
|
if (this.keySupportsLongPress(event)) {
|
|
343
341
|
this.longPressDetector.endKeyPressMonitoring(event.code);
|
|
344
342
|
}
|
|
343
|
+
|
|
344
|
+
if (
|
|
345
|
+
keyCode(event).matches(KEYS.Enter) ||
|
|
346
|
+
(__DEV__ && keyCode(event).matches(KEYS.X))
|
|
347
|
+
) {
|
|
348
|
+
focusManager.pressOut();
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
if (
|
|
352
|
+
keyCode(event).matches(KEYS.Forward) ||
|
|
353
|
+
(__DEV__ && keyCode(event).matches(KEYS.C))
|
|
354
|
+
) {
|
|
355
|
+
setDisplayState(DISPLAY_STATES.HUD);
|
|
356
|
+
KeyInputHandler.getInstance().onForwardPressOut();
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
if (
|
|
360
|
+
keyCode(event).matches(KEYS.Rewind) ||
|
|
361
|
+
(__DEV__ && keyCode(event).matches(KEYS.Z))
|
|
362
|
+
) {
|
|
363
|
+
setDisplayState(DISPLAY_STATES.HUD);
|
|
364
|
+
KeyInputHandler.getInstance().onRewindPressOut();
|
|
365
|
+
}
|
|
345
366
|
}
|
|
346
367
|
|
|
347
368
|
onKeyDown(event) {
|
|
@@ -366,12 +387,13 @@ class InteractionManagerClass extends React.Component<Props, State> {
|
|
|
366
387
|
}
|
|
367
388
|
|
|
368
389
|
// None of the logic below should be executed for repeated keys
|
|
369
|
-
if (event.repeat) return;
|
|
390
|
+
if (event.repeat && !keyCode(event).matchesAny(...ARROW_KEYS)) return;
|
|
370
391
|
|
|
371
392
|
/**
|
|
372
393
|
When the player is displayed, we listen to Native Play / Pause / Stop
|
|
373
394
|
buttons. Any other key press will display the transport controls
|
|
374
395
|
*/
|
|
396
|
+
|
|
375
397
|
if (
|
|
376
398
|
displayState === DISPLAY_STATES.PLAYER ||
|
|
377
399
|
displayState === DISPLAY_STATES.HUD
|
|
@@ -404,16 +426,22 @@ class InteractionManagerClass extends React.Component<Props, State> {
|
|
|
404
426
|
return;
|
|
405
427
|
}
|
|
406
428
|
|
|
407
|
-
if (
|
|
429
|
+
if (
|
|
430
|
+
keyCode(event).matches(KEYS.Forward) ||
|
|
431
|
+
(__DEV__ && keyCode(event).matches(KEYS.C))
|
|
432
|
+
) {
|
|
408
433
|
setDisplayState(DISPLAY_STATES.HUD);
|
|
409
|
-
|
|
434
|
+
KeyInputHandler.getInstance().onForwardPress();
|
|
410
435
|
|
|
411
436
|
return;
|
|
412
437
|
}
|
|
413
438
|
|
|
414
|
-
if (
|
|
439
|
+
if (
|
|
440
|
+
keyCode(event).matches(KEYS.Rewind) ||
|
|
441
|
+
(__DEV__ && keyCode(event).matches(KEYS.Z))
|
|
442
|
+
) {
|
|
415
443
|
setDisplayState(DISPLAY_STATES.HUD);
|
|
416
|
-
|
|
444
|
+
KeyInputHandler.getInstance().onRewindPress();
|
|
417
445
|
|
|
418
446
|
return;
|
|
419
447
|
}
|
|
@@ -475,7 +503,10 @@ class InteractionManagerClass extends React.Component<Props, State> {
|
|
|
475
503
|
}
|
|
476
504
|
}
|
|
477
505
|
|
|
478
|
-
if (
|
|
506
|
+
if (
|
|
507
|
+
keyCode(event).matches(KEYS.Enter) ||
|
|
508
|
+
(__DEV__ && keyCode(event).matches(KEYS.X))
|
|
509
|
+
) {
|
|
479
510
|
if (displayState === DISPLAY_STATES.PLAYER) {
|
|
480
511
|
setDisplayState(DISPLAY_STATES.HUD);
|
|
481
512
|
} else {
|
|
@@ -690,54 +721,43 @@ class InteractionManagerClass extends React.Component<Props, State> {
|
|
|
690
721
|
}, SEQUENCE_ENTRY_TIME);
|
|
691
722
|
}
|
|
692
723
|
|
|
724
|
+
// TODO: Delete it on next PR if not needed
|
|
693
725
|
private handleLongPress = (event: CustomEvent) => {
|
|
694
726
|
const { keyCode } = event.detail;
|
|
695
|
-
const { displayState } = this.props;
|
|
696
|
-
const playerState = displayState === DISPLAY_STATES.PLAYER;
|
|
697
|
-
const hudState = displayState === DISPLAY_STATES.HUD;
|
|
698
|
-
const playbackState = playerState || hudState;
|
|
699
727
|
this.longPressActive = true;
|
|
700
728
|
this.cancelHudTimeout();
|
|
701
729
|
|
|
702
730
|
switch (keyCode) {
|
|
703
|
-
case KEYS.Forward.code:
|
|
704
|
-
playbackState && this.props.seekMethods.onForwardLongPress();
|
|
705
|
-
break;
|
|
706
|
-
|
|
707
|
-
case KEYS.Rewind.code:
|
|
708
|
-
playbackState && this.props.seekMethods.onRewindLongPress();
|
|
709
|
-
break;
|
|
710
|
-
|
|
711
731
|
case KEYS.Enter.code:
|
|
732
|
+
case KEYS.X.code:
|
|
712
733
|
focusManager.longPress();
|
|
713
734
|
break;
|
|
714
735
|
}
|
|
715
736
|
};
|
|
716
737
|
|
|
738
|
+
// TODO: Delete it on next PR if not needed
|
|
717
739
|
private handleLongPressRelease = (event: CustomEvent) => {
|
|
718
740
|
const { keyCode } = event.detail;
|
|
719
741
|
this.longPressActive = false;
|
|
720
742
|
this.resetHudTimeout();
|
|
721
743
|
|
|
722
744
|
switch (keyCode) {
|
|
723
|
-
case KEYS.Forward.code:
|
|
724
|
-
this.props.seekMethods.onForwardPressOut();
|
|
725
|
-
break;
|
|
726
|
-
|
|
727
|
-
case KEYS.Rewind.code:
|
|
728
|
-
this.props.seekMethods.onRewindPressOut();
|
|
729
|
-
break;
|
|
730
|
-
|
|
731
745
|
case KEYS.Enter.code:
|
|
732
|
-
|
|
746
|
+
case KEYS.X.code:
|
|
747
|
+
// focusManager.pressOut();
|
|
733
748
|
break;
|
|
734
749
|
}
|
|
735
750
|
};
|
|
736
751
|
|
|
737
752
|
private keySupportsLongPress(event: KeyboardEvent): boolean {
|
|
738
|
-
return [
|
|
739
|
-
|
|
740
|
-
|
|
753
|
+
return [
|
|
754
|
+
KEYS.Forward.code,
|
|
755
|
+
KEYS.Rewind.code,
|
|
756
|
+
KEYS.Enter.code,
|
|
757
|
+
KEYS.Z.code,
|
|
758
|
+
KEYS.X.code,
|
|
759
|
+
KEYS.C.code,
|
|
760
|
+
].includes(event.code);
|
|
741
761
|
}
|
|
742
762
|
|
|
743
763
|
render() {
|
|
@@ -756,7 +776,6 @@ class InteractionManagerClass extends React.Component<Props, State> {
|
|
|
756
776
|
|
|
757
777
|
export const InteractionManager = R.compose(
|
|
758
778
|
withNavigator,
|
|
759
|
-
withUseSeek,
|
|
760
779
|
withXray,
|
|
761
780
|
connectToStore(R.pick(["rivers"])),
|
|
762
781
|
PlayerContentContext.withConsumer,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applicaster/zapp-react-dom-app",
|
|
3
|
-
"version": "13.0.0-rc.
|
|
3
|
+
"version": "13.0.0-rc.16",
|
|
4
4
|
"description": "Zapp App Component for Applicaster's Quick Brick React Native App",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
},
|
|
23
23
|
"homepage": "https://github.com/applicaster/zapp-react-dom-app#readme",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@applicaster/zapp-react-dom-ui-components": "13.0.0-rc.
|
|
26
|
-
"@applicaster/zapp-react-native-bridge": "13.0.0-rc.
|
|
27
|
-
"@applicaster/zapp-react-native-redux": "13.0.0-rc.
|
|
28
|
-
"@applicaster/zapp-react-native-ui-components": "13.0.0-rc.
|
|
29
|
-
"@applicaster/zapp-react-native-utils": "13.0.0-rc.
|
|
25
|
+
"@applicaster/zapp-react-dom-ui-components": "13.0.0-rc.16",
|
|
26
|
+
"@applicaster/zapp-react-native-bridge": "13.0.0-rc.16",
|
|
27
|
+
"@applicaster/zapp-react-native-redux": "13.0.0-rc.16",
|
|
28
|
+
"@applicaster/zapp-react-native-ui-components": "13.0.0-rc.16",
|
|
29
|
+
"@applicaster/zapp-react-native-utils": "13.0.0-rc.16",
|
|
30
30
|
"abortcontroller-polyfill": "^1.7.5",
|
|
31
31
|
"history": "^4.7.2",
|
|
32
32
|
"react-router-dom": "^5.1.2",
|