@fluentui-react-native/menu 1.0.73 → 1.0.75
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.json +55 -1
- package/CHANGELOG.md +22 -2
- package/lib/MenuTrigger/MenuTrigger.d.ts +3 -2
- package/lib/MenuTrigger/MenuTrigger.d.ts.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.js +13 -20
- package/lib/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.types.d.ts +11 -1
- package/lib/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib/MenuTrigger/useMenuTrigger.d.ts +2 -2
- package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
- package/lib/MenuTrigger/useMenuTrigger.js +28 -8
- package/lib/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib/MenuTrigger/useMergeRefs.d.ts +20 -0
- package/lib/MenuTrigger/useMergeRefs.d.ts.map +1 -0
- package/lib/MenuTrigger/useMergeRefs.js +36 -0
- package/lib/MenuTrigger/useMergeRefs.js.map +1 -0
- package/lib/__tests__/Menu.test.js +1 -1
- package/lib/__tests__/Menu.test.js.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts +3 -2
- package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.js +14 -20
- package/lib-commonjs/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts +11 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts +2 -2
- package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
- package/lib-commonjs/MenuTrigger/useMenuTrigger.js +27 -8
- package/lib-commonjs/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib-commonjs/MenuTrigger/useMergeRefs.d.ts +20 -0
- package/lib-commonjs/MenuTrigger/useMergeRefs.d.ts.map +1 -0
- package/lib-commonjs/MenuTrigger/useMergeRefs.js +40 -0
- package/lib-commonjs/MenuTrigger/useMergeRefs.js.map +1 -0
- package/lib-commonjs/__tests__/Menu.test.js +1 -1
- package/lib-commonjs/__tests__/Menu.test.js.map +1 -1
- package/package.json +6 -6
- package/src/MenuTrigger/MenuTrigger.tsx +15 -23
- package/src/MenuTrigger/MenuTrigger.types.ts +12 -0
- package/src/MenuTrigger/useMenuTrigger.ts +44 -9
- package/src/MenuTrigger/useMergeRefs.ts +42 -0
- package/src/__tests__/Menu.test.tsx +1 -1
- package/src/__tests__/__snapshots__/Menu.test.tsx.snap +8 -8
- package/lib/MenuTrigger/getRevisedProps.d.ts +0 -11
- package/lib/MenuTrigger/getRevisedProps.d.ts.map +0 -1
- package/lib/MenuTrigger/getRevisedProps.js +0 -45
- package/lib/MenuTrigger/getRevisedProps.js.map +0 -1
- package/lib-commonjs/MenuTrigger/getRevisedProps.d.ts +0 -11
- package/lib-commonjs/MenuTrigger/getRevisedProps.d.ts.map +0 -1
- package/lib-commonjs/MenuTrigger/getRevisedProps.js +0 -48
- package/lib-commonjs/MenuTrigger/getRevisedProps.js.map +0 -1
- package/src/MenuTrigger/getRevisedProps.ts +0 -52
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":";;;;AAAA,sDAAwD;AAGxD,6CAA2F;AAC3F,6DAA0B;AAC1B,oCAA8C;
|
|
1
|
+
{"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copied from @fluentui/react-utilities
|
|
3
|
+
*
|
|
4
|
+
* Keeping the file local to Menu for now while looking into whether
|
|
5
|
+
* we can pull in @fluentui/react-utilities package
|
|
6
|
+
*/
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
/**
|
|
9
|
+
* A Ref function which can be treated like a ref object in that it has an attached
|
|
10
|
+
* current property, which will be updated as the ref is evaluated.
|
|
11
|
+
*/
|
|
12
|
+
export declare type RefObjectFunction<T> = React.RefObject<T> & ((value: T) => void);
|
|
13
|
+
/**
|
|
14
|
+
* React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
|
|
15
|
+
* updates all provided refs
|
|
16
|
+
* @param refs - Refs to collectively update with one ref value.
|
|
17
|
+
* @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useMergedRefs<T>(...refs: (React.Ref<T> | undefined)[]): RefObjectFunction<T>;
|
|
20
|
+
//# sourceMappingURL=useMergeRefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMergeRefs.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMergeRefs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;GAGG;AACH,oBAAY,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;AAE7E;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAoB5F"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copied from @fluentui/react-utilities
|
|
4
|
+
*
|
|
5
|
+
* Keeping the file local to Menu for now while looking into whether
|
|
6
|
+
* we can pull in @fluentui/react-utilities package
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.useMergedRefs = void 0;
|
|
10
|
+
var tslib_1 = require("tslib");
|
|
11
|
+
var React = (0, tslib_1.__importStar)(require("react"));
|
|
12
|
+
/**
|
|
13
|
+
* React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
|
|
14
|
+
* updates all provided refs
|
|
15
|
+
* @param refs - Refs to collectively update with one ref value.
|
|
16
|
+
* @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
|
|
17
|
+
*/
|
|
18
|
+
function useMergedRefs() {
|
|
19
|
+
var refs = [];
|
|
20
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
21
|
+
refs[_i] = arguments[_i];
|
|
22
|
+
}
|
|
23
|
+
var mergedCallback = React.useCallback(function (value) {
|
|
24
|
+
// Update the "current" prop hanging on the function.
|
|
25
|
+
mergedCallback.current = value;
|
|
26
|
+
for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {
|
|
27
|
+
var ref = refs_1[_i];
|
|
28
|
+
if (typeof ref === 'function') {
|
|
29
|
+
ref(value);
|
|
30
|
+
}
|
|
31
|
+
else if (ref) {
|
|
32
|
+
// work around the immutability of the React.Ref type
|
|
33
|
+
ref.current = value;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}, (0, tslib_1.__spreadArray)([], refs, true));
|
|
37
|
+
return mergedCallback;
|
|
38
|
+
}
|
|
39
|
+
exports.useMergedRefs = useMergedRefs;
|
|
40
|
+
//# sourceMappingURL=useMergeRefs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMergeRefs.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMergeRefs.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,wDAA+B;AAQ/B;;;;;GAKG;AACH,SAAgB,aAAa;IAAI,cAAqC;SAArC,UAAqC,EAArC,qBAAqC,EAArC,IAAqC;QAArC,yBAAqC;;IACpE,IAAM,cAAc,GAAyB,KAAK,CAAC,WAAW,CAC5D,UAAC,KAAQ;QACP,qDAAqD;QACpD,cAAuD,CAAC,OAAO,GAAG,KAAK,CAAC;QAEzE,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAnB,IAAM,GAAG,aAAA;YACZ,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC7B,GAAG,CAAC,KAAK,CAAC,CAAC;aACZ;iBAAM,IAAI,GAAG,EAAE;gBACd,qDAAqD;gBACpD,GAA4C,CAAC,OAAO,GAAG,KAAK,CAAC;aAC/D;SACF;IACH,CAAC,iCAEG,IAAI,QAC0B,CAAC;IAErC,OAAO,cAAc,CAAC;AACxB,CAAC;AApBD,sCAoBC"}
|
|
@@ -13,7 +13,7 @@ var MenuItem_1 = require("../MenuItem/MenuItem");
|
|
|
13
13
|
var MenuItemCheckbox_1 = require("../MenuItemCheckbox/MenuItemCheckbox");
|
|
14
14
|
var MenuDivider_1 = require("../MenuDivider/MenuDivider");
|
|
15
15
|
var MenuItemRadio_1 = require("../MenuItemRadio/MenuItemRadio");
|
|
16
|
-
describe('
|
|
16
|
+
describe('Menu component tests', function () {
|
|
17
17
|
it('Menu default', function () {
|
|
18
18
|
var tree = renderer
|
|
19
19
|
.create(React.createElement(Menu_1.Menu, null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.test.js","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":";;;AAAA,wDAA+B;AAE/B,yEAAgD;AAChD,qCAAoC;AACpC,gEAAkE;AAClE,wFAAqD;AACrD,wDAAmE;AACnE,wFAAqD;AACrD,iDAAgD;AAChD,iDAAgD;AAChD,yEAAwE;AACxE,0DAAyD;AACzD,gEAA+D;AAE/D,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"Menu.test.js","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui-react-native/menu",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.75",
|
|
4
4
|
"description": "A cross-platform Menu component using the Fluent Design System",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@fluentui-react-native/adapters": ">=0.10.0 <1.0.0",
|
|
26
|
-
"@fluentui-react-native/callout": ">=0.21.
|
|
27
|
-
"@fluentui-react-native/focus-zone": ">=0.11.
|
|
26
|
+
"@fluentui-react-native/callout": ">=0.21.35 <1.0.0",
|
|
27
|
+
"@fluentui-react-native/focus-zone": ">=0.11.5 <1.0.0",
|
|
28
28
|
"@fluentui-react-native/framework": "0.8.19",
|
|
29
|
-
"@fluentui-react-native/interactive-hooks": ">=0.
|
|
30
|
-
"@fluentui-react-native/text": ">=0.
|
|
29
|
+
"@fluentui-react-native/interactive-hooks": ">=0.21.0 <1.0.0",
|
|
30
|
+
"@fluentui-react-native/text": ">=0.16.0 <1.0.0",
|
|
31
31
|
"@fluentui-react-native/theme-tokens": ">=0.21.3 <1.0.0",
|
|
32
32
|
"@fluentui-react-native/tokens": ">=0.17.8 <1.0.0",
|
|
33
33
|
"@fluentui-react-native/use-styling": ">=0.9.1 <1.0.0",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"tslib": "^2.3.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@fluentui-react-native/button": ">=0.
|
|
38
|
+
"@fluentui-react-native/button": ">=0.31.0 <1.0.0",
|
|
39
39
|
"@fluentui-react-native/eslint-config-rules": "^0.1.1",
|
|
40
40
|
"@fluentui-react-native/scripts": "^0.1.1",
|
|
41
41
|
"@fluentui-react-native/test-tools": ">=0.1.1 <1.0.0",
|
|
@@ -1,32 +1,24 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import { menuTriggerName } from './MenuTrigger.types';
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { menuTriggerName, MenuTriggerProps } from './MenuTrigger.types';
|
|
4
3
|
import { useMenuTrigger } from './useMenuTrigger';
|
|
5
4
|
import { MenuTriggerProvider } from '../context/menuTriggerContext';
|
|
6
|
-
import { getRevisedProps } from './getRevisedProps';
|
|
7
5
|
|
|
8
|
-
export const MenuTrigger =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const childrenArray = React.Children.toArray(children) as React.ReactElement[];
|
|
13
|
-
|
|
14
|
-
if (__DEV__) {
|
|
15
|
-
if (childrenArray.length !== 1) {
|
|
16
|
-
console.warn('Only expecting one child for MenuTrigger');
|
|
17
|
-
}
|
|
6
|
+
export const MenuTrigger: React.FunctionComponent<MenuTriggerProps> = (props: MenuTriggerProps) => {
|
|
7
|
+
if (__DEV__) {
|
|
8
|
+
if (!React.Children.only(props.children)) {
|
|
9
|
+
console.warn('Only expecting one child for MenuTrigger');
|
|
18
10
|
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const menuTrigger = useMenuTrigger(props.children.props);
|
|
19
14
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const revisedProps = getRevisedProps(menuTrigger, child.props);
|
|
25
|
-
const revised = React.cloneElement(child, revisedProps);
|
|
15
|
+
// In order to properly support accessibility without erasing props set on the
|
|
16
|
+
// child component which may affect accessibility, we need to modify the
|
|
17
|
+
// state in the inner render so we can access the child component and its props.
|
|
18
|
+
const revised = React.cloneElement(props.children, menuTrigger.props);
|
|
26
19
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
});
|
|
20
|
+
return <MenuTriggerProvider value={menuTrigger.hasSubmenu}>{revised}</MenuTriggerProvider>;
|
|
21
|
+
};
|
|
30
22
|
MenuTrigger.displayName = menuTriggerName;
|
|
31
23
|
|
|
32
24
|
export default MenuTrigger;
|
|
@@ -1,7 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { InteractionEvent, PressablePropsExtended } from '@fluentui-react-native/interactive-hooks';
|
|
2
3
|
|
|
3
4
|
export const menuTriggerName = 'MenuTrigger';
|
|
4
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Represents single react element (or null), which is the
|
|
8
|
+
* type of the child of MenuTrigger. Notably this excludes string, number,
|
|
9
|
+
* and array of elements as children, which MenuTrigger doesn't support.
|
|
10
|
+
*/
|
|
11
|
+
type SingleReactElement = React.ReactElement | null;
|
|
12
|
+
|
|
13
|
+
export interface MenuTriggerProps {
|
|
14
|
+
children?: SingleReactElement;
|
|
15
|
+
}
|
|
16
|
+
|
|
5
17
|
export interface MenuTriggerChildProps extends Omit<PressablePropsExtended, 'onPress'> {
|
|
6
18
|
/**
|
|
7
19
|
* A RefObject to refer to the trigger component.
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { useMenuContext } from '../context/menuContext';
|
|
2
2
|
import { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
3
|
-
import { MenuTriggerState } from './MenuTrigger.types';
|
|
3
|
+
import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
|
|
4
4
|
import { AccessibilityActionEvent, AccessibilityActionName, Platform } from 'react-native';
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { hoverDelayDefault } from '../consts';
|
|
7
|
+
import { useMergedRefs } from './useMergeRefs';
|
|
7
8
|
|
|
8
|
-
const
|
|
9
|
+
const baseAccessibilityActions =
|
|
9
10
|
Platform.OS === ('win32' as any) ? [{ name: 'Expand' as AccessibilityActionName }, { name: 'Collapse' as AccessibilityActionName }] : [];
|
|
10
11
|
const expandedState = { expanded: true };
|
|
11
12
|
const collapsedState = { expanded: false };
|
|
12
13
|
|
|
13
|
-
export const useMenuTrigger = (): MenuTriggerState => {
|
|
14
|
+
export const useMenuTrigger = (childProps: MenuTriggerChildProps): MenuTriggerState => {
|
|
14
15
|
const context = useMenuContext();
|
|
15
16
|
const {
|
|
16
17
|
hoverDelay = hoverDelayDefault,
|
|
@@ -23,7 +24,33 @@ export const useMenuTrigger = (): MenuTriggerState => {
|
|
|
23
24
|
triggerRef,
|
|
24
25
|
} = context;
|
|
25
26
|
|
|
26
|
-
const
|
|
27
|
+
const {
|
|
28
|
+
accessibilityActions: childAccessibilityActions,
|
|
29
|
+
accessibilityState: childAccessibilityState,
|
|
30
|
+
onAccessibilityAction: childOnAccessibilityAction,
|
|
31
|
+
onClick: childOnClick,
|
|
32
|
+
onHoverIn: childOnHoverIn,
|
|
33
|
+
onHoverOut: childOnHoverOut,
|
|
34
|
+
componentRef: childComponentRef,
|
|
35
|
+
} = childProps;
|
|
36
|
+
|
|
37
|
+
const accessibilityActions = React.useMemo(() => {
|
|
38
|
+
if (childAccessibilityActions) {
|
|
39
|
+
return [...baseAccessibilityActions, ...childAccessibilityActions];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return baseAccessibilityActions;
|
|
43
|
+
}, [childAccessibilityActions]);
|
|
44
|
+
|
|
45
|
+
const accessibilityState = React.useMemo(() => {
|
|
46
|
+
const baseState = open ? expandedState : collapsedState;
|
|
47
|
+
|
|
48
|
+
if (childAccessibilityState) {
|
|
49
|
+
return { ...baseState, ...childAccessibilityState };
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return baseState;
|
|
53
|
+
}, [childAccessibilityState, open]);
|
|
27
54
|
|
|
28
55
|
const onAccessibilityAction = React.useCallback(
|
|
29
56
|
(e: AccessibilityActionEvent) => {
|
|
@@ -38,8 +65,9 @@ export const useMenuTrigger = (): MenuTriggerState => {
|
|
|
38
65
|
break;
|
|
39
66
|
}
|
|
40
67
|
}
|
|
68
|
+
childOnAccessibilityAction && childOnAccessibilityAction(e);
|
|
41
69
|
},
|
|
42
|
-
[setOpen],
|
|
70
|
+
[childOnAccessibilityAction, setOpen],
|
|
43
71
|
);
|
|
44
72
|
|
|
45
73
|
const onHoverIn = React.useCallback(
|
|
@@ -52,8 +80,10 @@ export const useMenuTrigger = (): MenuTriggerState => {
|
|
|
52
80
|
setOpen(e, true /* isOpen */);
|
|
53
81
|
}, hoverDelay);
|
|
54
82
|
}
|
|
83
|
+
|
|
84
|
+
childOnHoverIn && childOnHoverIn(e);
|
|
55
85
|
},
|
|
56
|
-
[hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer],
|
|
86
|
+
[childOnHoverIn, hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer],
|
|
57
87
|
);
|
|
58
88
|
|
|
59
89
|
const onHoverOut = React.useCallback(
|
|
@@ -65,17 +95,22 @@ export const useMenuTrigger = (): MenuTriggerState => {
|
|
|
65
95
|
}, hoverDelay);
|
|
66
96
|
setTriggerHoverOutTimer(timer);
|
|
67
97
|
}
|
|
98
|
+
|
|
99
|
+
childOnHoverOut && childOnHoverOut(e);
|
|
68
100
|
},
|
|
69
|
-
[hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer],
|
|
101
|
+
[childOnHoverOut, hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer],
|
|
70
102
|
);
|
|
71
103
|
|
|
72
104
|
const onClick = React.useCallback(
|
|
73
105
|
(e: InteractionEvent) => {
|
|
74
106
|
setOpen(e, !open);
|
|
107
|
+
childOnClick && childOnClick(e);
|
|
75
108
|
},
|
|
76
|
-
[open, setOpen],
|
|
109
|
+
[childOnClick, open, setOpen],
|
|
77
110
|
);
|
|
78
111
|
|
|
112
|
+
const ref = useMergedRefs(triggerRef, childComponentRef);
|
|
113
|
+
|
|
79
114
|
React.useEffect(() => {
|
|
80
115
|
return function cleanup() {
|
|
81
116
|
clearTimeout(triggerHoverOutTimer);
|
|
@@ -87,7 +122,7 @@ export const useMenuTrigger = (): MenuTriggerState => {
|
|
|
87
122
|
onClick,
|
|
88
123
|
onHoverIn,
|
|
89
124
|
onHoverOut,
|
|
90
|
-
componentRef:
|
|
125
|
+
componentRef: ref,
|
|
91
126
|
accessibilityState,
|
|
92
127
|
accessibilityActions,
|
|
93
128
|
onAccessibilityAction,
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copied from @fluentui/react-utilities
|
|
3
|
+
*
|
|
4
|
+
* Keeping the file local to Menu for now while looking into whether
|
|
5
|
+
* we can pull in @fluentui/react-utilities package
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A Ref function which can be treated like a ref object in that it has an attached
|
|
12
|
+
* current property, which will be updated as the ref is evaluated.
|
|
13
|
+
*/
|
|
14
|
+
export type RefObjectFunction<T> = React.RefObject<T> & ((value: T) => void);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
|
|
18
|
+
* updates all provided refs
|
|
19
|
+
* @param refs - Refs to collectively update with one ref value.
|
|
20
|
+
* @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
|
|
21
|
+
*/
|
|
22
|
+
export function useMergedRefs<T>(...refs: (React.Ref<T> | undefined)[]): RefObjectFunction<T> {
|
|
23
|
+
const mergedCallback: RefObjectFunction<T> = React.useCallback(
|
|
24
|
+
(value: T) => {
|
|
25
|
+
// Update the "current" prop hanging on the function.
|
|
26
|
+
(mergedCallback as unknown as React.MutableRefObject<T>).current = value;
|
|
27
|
+
|
|
28
|
+
for (const ref of refs) {
|
|
29
|
+
if (typeof ref === 'function') {
|
|
30
|
+
ref(value);
|
|
31
|
+
} else if (ref) {
|
|
32
|
+
// work around the immutability of the React.Ref type
|
|
33
|
+
(ref as unknown as React.MutableRefObject<T>).current = value;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- already exhaustive
|
|
38
|
+
[...refs],
|
|
39
|
+
) as unknown as RefObjectFunction<T>;
|
|
40
|
+
|
|
41
|
+
return mergedCallback;
|
|
42
|
+
}
|
|
@@ -12,7 +12,7 @@ import { MenuItemCheckbox } from '../MenuItemCheckbox/MenuItemCheckbox';
|
|
|
12
12
|
import { MenuDivider } from '../MenuDivider/MenuDivider';
|
|
13
13
|
import { MenuItemRadio } from '../MenuItemRadio/MenuItemRadio';
|
|
14
14
|
|
|
15
|
-
describe('
|
|
15
|
+
describe('Menu component tests', () => {
|
|
16
16
|
it('Menu default', () => {
|
|
17
17
|
const tree = renderer
|
|
18
18
|
.create(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`
|
|
3
|
+
exports[`Menu component tests Menu default 1`] = `
|
|
4
4
|
<View
|
|
5
5
|
accessibilityActions={Array []}
|
|
6
6
|
accessibilityLabel="Default"
|
|
@@ -65,7 +65,7 @@ exports[`Checkbox component tests Menu default 1`] = `
|
|
|
65
65
|
</View>
|
|
66
66
|
`;
|
|
67
67
|
|
|
68
|
-
exports[`
|
|
68
|
+
exports[`Menu component tests Menu defaultOpen 1`] = `
|
|
69
69
|
Array [
|
|
70
70
|
<View
|
|
71
71
|
accessibilityActions={Array []}
|
|
@@ -273,7 +273,7 @@ Array [
|
|
|
273
273
|
]
|
|
274
274
|
`;
|
|
275
275
|
|
|
276
|
-
exports[`
|
|
276
|
+
exports[`Menu component tests Menu open 1`] = `
|
|
277
277
|
Array [
|
|
278
278
|
<View
|
|
279
279
|
accessibilityActions={Array []}
|
|
@@ -434,7 +434,7 @@ Array [
|
|
|
434
434
|
]
|
|
435
435
|
`;
|
|
436
436
|
|
|
437
|
-
exports[`
|
|
437
|
+
exports[`Menu component tests Menu open checkbox and divider 1`] = `
|
|
438
438
|
Array [
|
|
439
439
|
<View
|
|
440
440
|
accessibilityActions={Array []}
|
|
@@ -780,7 +780,7 @@ Array [
|
|
|
780
780
|
]
|
|
781
781
|
`;
|
|
782
782
|
|
|
783
|
-
exports[`
|
|
783
|
+
exports[`Menu component tests Menu open checkbox checked 1`] = `
|
|
784
784
|
Array [
|
|
785
785
|
<View
|
|
786
786
|
accessibilityActions={Array []}
|
|
@@ -1126,7 +1126,7 @@ Array [
|
|
|
1126
1126
|
]
|
|
1127
1127
|
`;
|
|
1128
1128
|
|
|
1129
|
-
exports[`
|
|
1129
|
+
exports[`Menu component tests Menu open checkbox defaultChecked 1`] = `
|
|
1130
1130
|
Array [
|
|
1131
1131
|
<View
|
|
1132
1132
|
accessibilityActions={Array []}
|
|
@@ -1472,7 +1472,7 @@ Array [
|
|
|
1472
1472
|
]
|
|
1473
1473
|
`;
|
|
1474
1474
|
|
|
1475
|
-
exports[`
|
|
1475
|
+
exports[`Menu component tests Menu open radio 1`] = `
|
|
1476
1476
|
Array [
|
|
1477
1477
|
<View
|
|
1478
1478
|
accessibilityActions={Array []}
|
|
@@ -1806,7 +1806,7 @@ Array [
|
|
|
1806
1806
|
]
|
|
1807
1807
|
`;
|
|
1808
1808
|
|
|
1809
|
-
exports[`
|
|
1809
|
+
exports[`Menu component tests Menu submenu 1`] = `
|
|
1810
1810
|
Array [
|
|
1811
1811
|
<View
|
|
1812
1812
|
accessibilityActions={Array []}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
|
|
2
|
-
/**
|
|
3
|
-
* Creates a merged set of props between the MenuTrigger's child component's props
|
|
4
|
-
* and the props that the MenuTrigger wants its child to have.
|
|
5
|
-
*
|
|
6
|
-
* Because children are not accessible in the outer render, we deal with the merge in this function.
|
|
7
|
-
*/
|
|
8
|
-
export declare const getRevisedProps: typeof getRevisedPropsWorker;
|
|
9
|
-
declare function getRevisedPropsWorker(state: MenuTriggerState, props: any): MenuTriggerChildProps;
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=getRevisedProps.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getRevisedProps.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,eAAe,8BAAiC,CAAC;AAC9D,iBAAS,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,GAAG,qBAAqB,CAuCzF"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { __assign, __spreadArray } from "tslib";
|
|
2
|
-
import { memoize } from '@fluentui-react-native/framework';
|
|
3
|
-
import { isMouseEvent } from '@fluentui-react-native/interactive-hooks';
|
|
4
|
-
/**
|
|
5
|
-
* Creates a merged set of props between the MenuTrigger's child component's props
|
|
6
|
-
* and the props that the MenuTrigger wants its child to have.
|
|
7
|
-
*
|
|
8
|
-
* Because children are not accessible in the outer render, we deal with the merge in this function.
|
|
9
|
-
*/
|
|
10
|
-
export var getRevisedProps = memoize(getRevisedPropsWorker);
|
|
11
|
-
function getRevisedPropsWorker(state, props) {
|
|
12
|
-
var revisedProps = __assign({}, state.props);
|
|
13
|
-
if (props.accessibilityState) {
|
|
14
|
-
revisedProps.accessibilityState = __assign(__assign({}, state.props.accessibilityState), props.accessibilityState);
|
|
15
|
-
}
|
|
16
|
-
if (props.accessibilityActions) {
|
|
17
|
-
revisedProps.accessibilityActions = __spreadArray(__spreadArray([], state.props.accessibilityActions, true), props.accessibilityActions, true);
|
|
18
|
-
}
|
|
19
|
-
if (props.onAccessibilityAction) {
|
|
20
|
-
revisedProps.onAccessibilityAction = function (e) {
|
|
21
|
-
state.props.onAccessibilityAction(e);
|
|
22
|
-
props.onAccessibilityAction(e);
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
if (props.onClick) {
|
|
26
|
-
revisedProps.onClick = function (e) {
|
|
27
|
-
state.props.onClick(e);
|
|
28
|
-
props.onClick(e);
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
if (props.onHoverIn) {
|
|
32
|
-
revisedProps.onHoverIn = function (e) {
|
|
33
|
-
state.props.onHoverIn(isMouseEvent(e) && e);
|
|
34
|
-
props.onHoverIn(e);
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
if (props.onHoverOut) {
|
|
38
|
-
revisedProps.onHoverOut = function (e) {
|
|
39
|
-
state.props.onHoverOut(isMouseEvent(e) && e);
|
|
40
|
-
props.onHoverOut(e);
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
return __assign({}, revisedProps);
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=getRevisedProps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getRevisedProps.js","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAoB,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAG1F;;;;;GAKG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC9D,SAAS,qBAAqB,CAAC,KAAuB,EAAE,KAAU;IAChE,IAAM,YAAY,gBAAQ,KAAK,CAAC,KAAK,CAAE,CAAC;IACxC,IAAI,KAAK,CAAC,kBAAkB,EAAE;QAC5B,YAAY,CAAC,kBAAkB,yBAAQ,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAK,KAAK,CAAC,kBAAkB,CAAE,CAAC;KACtG;IAED,IAAI,KAAK,CAAC,oBAAoB,EAAE;QAC9B,YAAY,CAAC,oBAAoB,mCAAO,KAAK,CAAC,KAAK,CAAC,oBAAoB,SAAK,KAAK,CAAC,oBAAoB,OAAC,CAAC;KAC1G;IAED,IAAI,KAAK,CAAC,qBAAqB,EAAE;QAC/B,YAAY,CAAC,qBAAqB,GAAG,UAAC,CAA2B;YAC/D,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,YAAY,CAAC,OAAO,GAAG,UAAC,CAAmB;YACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,YAAY,CAAC,SAAS,GAAG,UAAC,CAAmB;YAC3C,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,UAAU,EAAE;QACpB,YAAY,CAAC,UAAU,GAAG,UAAC,CAAmB;YAC5C,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC;KACH;IAED,oBAAY,YAAY,EAAG;AAC7B,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
|
|
2
|
-
/**
|
|
3
|
-
* Creates a merged set of props between the MenuTrigger's child component's props
|
|
4
|
-
* and the props that the MenuTrigger wants its child to have.
|
|
5
|
-
*
|
|
6
|
-
* Because children are not accessible in the outer render, we deal with the merge in this function.
|
|
7
|
-
*/
|
|
8
|
-
export declare const getRevisedProps: typeof getRevisedPropsWorker;
|
|
9
|
-
declare function getRevisedPropsWorker(state: MenuTriggerState, props: any): MenuTriggerChildProps;
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=getRevisedProps.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getRevisedProps.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,eAAe,8BAAiC,CAAC;AAC9D,iBAAS,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,GAAG,qBAAqB,CAuCzF"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRevisedProps = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var framework_1 = require("@fluentui-react-native/framework");
|
|
6
|
-
var interactive_hooks_1 = require("@fluentui-react-native/interactive-hooks");
|
|
7
|
-
/**
|
|
8
|
-
* Creates a merged set of props between the MenuTrigger's child component's props
|
|
9
|
-
* and the props that the MenuTrigger wants its child to have.
|
|
10
|
-
*
|
|
11
|
-
* Because children are not accessible in the outer render, we deal with the merge in this function.
|
|
12
|
-
*/
|
|
13
|
-
exports.getRevisedProps = (0, framework_1.memoize)(getRevisedPropsWorker);
|
|
14
|
-
function getRevisedPropsWorker(state, props) {
|
|
15
|
-
var revisedProps = (0, tslib_1.__assign)({}, state.props);
|
|
16
|
-
if (props.accessibilityState) {
|
|
17
|
-
revisedProps.accessibilityState = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, state.props.accessibilityState), props.accessibilityState);
|
|
18
|
-
}
|
|
19
|
-
if (props.accessibilityActions) {
|
|
20
|
-
revisedProps.accessibilityActions = (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], state.props.accessibilityActions, true), props.accessibilityActions, true);
|
|
21
|
-
}
|
|
22
|
-
if (props.onAccessibilityAction) {
|
|
23
|
-
revisedProps.onAccessibilityAction = function (e) {
|
|
24
|
-
state.props.onAccessibilityAction(e);
|
|
25
|
-
props.onAccessibilityAction(e);
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
if (props.onClick) {
|
|
29
|
-
revisedProps.onClick = function (e) {
|
|
30
|
-
state.props.onClick(e);
|
|
31
|
-
props.onClick(e);
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
if (props.onHoverIn) {
|
|
35
|
-
revisedProps.onHoverIn = function (e) {
|
|
36
|
-
state.props.onHoverIn((0, interactive_hooks_1.isMouseEvent)(e) && e);
|
|
37
|
-
props.onHoverIn(e);
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
if (props.onHoverOut) {
|
|
41
|
-
revisedProps.onHoverOut = function (e) {
|
|
42
|
-
state.props.onHoverOut((0, interactive_hooks_1.isMouseEvent)(e) && e);
|
|
43
|
-
props.onHoverOut(e);
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
return (0, tslib_1.__assign)({}, revisedProps);
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=getRevisedProps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getRevisedProps.js","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":";;;;AACA,8DAA2D;AAC3D,8EAA0F;AAG1F;;;;;GAKG;AACU,QAAA,eAAe,GAAG,IAAA,mBAAO,EAAC,qBAAqB,CAAC,CAAC;AAC9D,SAAS,qBAAqB,CAAC,KAAuB,EAAE,KAAU;IAChE,IAAM,YAAY,6BAAQ,KAAK,CAAC,KAAK,CAAE,CAAC;IACxC,IAAI,KAAK,CAAC,kBAAkB,EAAE;QAC5B,YAAY,CAAC,kBAAkB,mDAAQ,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAK,KAAK,CAAC,kBAAkB,CAAE,CAAC;KACtG;IAED,IAAI,KAAK,CAAC,oBAAoB,EAAE;QAC9B,YAAY,CAAC,oBAAoB,6DAAO,KAAK,CAAC,KAAK,CAAC,oBAAoB,SAAK,KAAK,CAAC,oBAAoB,OAAC,CAAC;KAC1G;IAED,IAAI,KAAK,CAAC,qBAAqB,EAAE;QAC/B,YAAY,CAAC,qBAAqB,GAAG,UAAC,CAA2B;YAC/D,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,YAAY,CAAC,OAAO,GAAG,UAAC,CAAmB;YACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,YAAY,CAAC,SAAS,GAAG,UAAC,CAAmB;YAC3C,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAA,gCAAY,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,UAAU,EAAE;QACpB,YAAY,CAAC,UAAU,GAAG,UAAC,CAAmB;YAC5C,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAA,gCAAY,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC;KACH;IAED,iCAAY,YAAY,EAAG;AAC7B,CAAC"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { AccessibilityActionEvent } from 'react-native';
|
|
2
|
-
import { memoize } from '@fluentui-react-native/framework';
|
|
3
|
-
import { InteractionEvent, isMouseEvent } from '@fluentui-react-native/interactive-hooks';
|
|
4
|
-
import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Creates a merged set of props between the MenuTrigger's child component's props
|
|
8
|
-
* and the props that the MenuTrigger wants its child to have.
|
|
9
|
-
*
|
|
10
|
-
* Because children are not accessible in the outer render, we deal with the merge in this function.
|
|
11
|
-
*/
|
|
12
|
-
export const getRevisedProps = memoize(getRevisedPropsWorker);
|
|
13
|
-
function getRevisedPropsWorker(state: MenuTriggerState, props: any): MenuTriggerChildProps {
|
|
14
|
-
const revisedProps = { ...state.props };
|
|
15
|
-
if (props.accessibilityState) {
|
|
16
|
-
revisedProps.accessibilityState = { ...state.props.accessibilityState, ...props.accessibilityState };
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (props.accessibilityActions) {
|
|
20
|
-
revisedProps.accessibilityActions = [...state.props.accessibilityActions, ...props.accessibilityActions];
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (props.onAccessibilityAction) {
|
|
24
|
-
revisedProps.onAccessibilityAction = (e: AccessibilityActionEvent) => {
|
|
25
|
-
state.props.onAccessibilityAction(e);
|
|
26
|
-
props.onAccessibilityAction(e);
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (props.onClick) {
|
|
31
|
-
revisedProps.onClick = (e: InteractionEvent) => {
|
|
32
|
-
state.props.onClick(e);
|
|
33
|
-
props.onClick(e);
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (props.onHoverIn) {
|
|
38
|
-
revisedProps.onHoverIn = (e: InteractionEvent) => {
|
|
39
|
-
state.props.onHoverIn(isMouseEvent(e) && e);
|
|
40
|
-
props.onHoverIn(e);
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (props.onHoverOut) {
|
|
45
|
-
revisedProps.onHoverOut = (e: InteractionEvent) => {
|
|
46
|
-
state.props.onHoverOut(isMouseEvent(e) && e);
|
|
47
|
-
props.onHoverOut(e);
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return { ...revisedProps };
|
|
52
|
-
}
|