design-react-kit 5.9.3 → 5.10.0
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 +11 -0
- package/dist/Collapse/Collapse.cjs +1 -1
- package/dist/Collapse/Collapse.cjs.map +1 -1
- package/dist/Collapse/Collapse.js +75 -7
- package/dist/Collapse/Collapse.js.map +1 -1
- package/dist/Input/Input.cjs +1 -1
- package/dist/Input/Input.cjs.map +1 -1
- package/dist/Input/Input.js +2 -14
- package/dist/Input/Input.js.map +1 -1
- package/dist/Rating/Rating.cjs +1 -1
- package/dist/Rating/Rating.cjs.map +1 -1
- package/dist/Transfer/Item.cjs +1 -1
- package/dist/Transfer/Item.cjs.map +1 -1
- package/dist/Transfer/SelectAllCheckbox.cjs +1 -1
- package/dist/Transfer/SelectAllCheckbox.cjs.map +1 -1
- package/dist/Transfer/Source.cjs +1 -1
- package/dist/Transfer/Source.cjs.map +1 -1
- package/dist/Transfer/Target.cjs +1 -1
- package/dist/Transfer/Target.cjs.map +1 -1
- package/dist/Transfer/Transfer.cjs +1 -1
- package/dist/Transfer/Transfer.cjs.map +1 -1
- package/dist/Video/Video.cjs +1 -1
- package/dist/Video/Video.cjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/package.json +3 -3
- package/src/Collapse/Collapse.tsx +80 -7
- package/src/Input/Input.tsx +1 -15
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import classNames from 'classnames';
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { Collapse as CollapseBase } from 'reactstrap';
|
|
4
4
|
import { Icon } from '../Icon/Icon';
|
|
5
5
|
export const Collapse = ({ header = false, className, navbar, megamenu, children, isOpen = false, onOverlayClick, cssModule, testId, closeSrText = 'Nascondi la navigazione', ...attributes }) => {
|
|
@@ -7,17 +7,85 @@ export const Collapse = ({ header = false, className, navbar, megamenu, children
|
|
|
7
7
|
'navbar-collapse': 'navbar-collapsable',
|
|
8
8
|
...cssModule
|
|
9
9
|
};
|
|
10
|
+
// Two-phase state to allow CSS transitions to play.
|
|
11
|
+
// isVisible controls display:block/none; isExpanded controls the animation class.
|
|
12
|
+
const [isVisible, setIsVisible] = useState(isOpen);
|
|
13
|
+
const [isExpanded, setIsExpanded] = useState(isOpen);
|
|
14
|
+
const panelRef = useRef(null);
|
|
15
|
+
const triggerRef = useRef(null);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (!(megamenu || navbar))
|
|
18
|
+
return;
|
|
19
|
+
if (isOpen) {
|
|
20
|
+
triggerRef.current = document.activeElement;
|
|
21
|
+
setIsVisible(true);
|
|
22
|
+
// Double rAF ensures the browser has painted display:block before adding
|
|
23
|
+
// the expanded class, so the CSS transform transition can fire.
|
|
24
|
+
requestAnimationFrame(() => {
|
|
25
|
+
requestAnimationFrame(() => {
|
|
26
|
+
setIsExpanded(true);
|
|
27
|
+
panelRef.current?.focus();
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
setIsExpanded(false);
|
|
33
|
+
// Wait for the CSS transition to complete before hiding.
|
|
34
|
+
const timer = setTimeout(() => {
|
|
35
|
+
setIsVisible(false);
|
|
36
|
+
triggerRef.current?.focus();
|
|
37
|
+
}, PANEL_TRANSITION_MS);
|
|
38
|
+
return () => clearTimeout(timer);
|
|
39
|
+
}, [isOpen, megamenu, navbar]);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (!(megamenu || navbar))
|
|
42
|
+
return;
|
|
43
|
+
if (isOpen) {
|
|
44
|
+
document.body.style.overflow = 'hidden';
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
document.body.style.overflow = '';
|
|
48
|
+
}
|
|
49
|
+
return () => { document.body.style.overflow = ''; };
|
|
50
|
+
}, [isOpen, megamenu, navbar]);
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (!(megamenu || navbar))
|
|
53
|
+
return;
|
|
54
|
+
const main = document.querySelector('main');
|
|
55
|
+
if (!main)
|
|
56
|
+
return;
|
|
57
|
+
if (isOpen) {
|
|
58
|
+
main.setAttribute('inert', '');
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
main.removeAttribute('inert');
|
|
62
|
+
}
|
|
63
|
+
return () => main.removeAttribute('inert');
|
|
64
|
+
}, [isOpen, megamenu, navbar]);
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
if (!(megamenu || navbar))
|
|
67
|
+
return;
|
|
68
|
+
const handleKeyDown = (e) => {
|
|
69
|
+
if (e.key === 'Escape' && isOpen) {
|
|
70
|
+
onOverlayClick?.();
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
74
|
+
return () => document.removeEventListener('keydown', handleKeyDown);
|
|
75
|
+
}, [isOpen, megamenu, navbar, onOverlayClick]);
|
|
76
|
+
// Must match the longest CSS transition on .navbar-collapsable (currently 0.3s + buffer).
|
|
77
|
+
const PANEL_TRANSITION_MS = 350;
|
|
10
78
|
if (megamenu || navbar) {
|
|
11
79
|
const classes = classNames(className, 'navbar-collapse', {
|
|
12
|
-
expanded:
|
|
80
|
+
expanded: isExpanded
|
|
13
81
|
});
|
|
14
|
-
const style = { display: isOpen ? 'block' : 'none' };
|
|
15
82
|
const overlayClasses = classNames('overlay', {
|
|
16
|
-
fade:
|
|
17
|
-
show:
|
|
83
|
+
fade: isVisible,
|
|
84
|
+
show: isExpanded
|
|
18
85
|
});
|
|
19
|
-
|
|
20
|
-
|
|
86
|
+
const displayStyle = { display: isVisible ? 'block' : 'none' };
|
|
87
|
+
return (React.createElement(CollapseBase, { className: classes, cssModule: newCssModule, navbar: navbar, style: displayStyle, tabIndex: -1, innerRef: panelRef, role: isOpen ? 'dialog' : undefined, "aria-modal": isOpen ? true : undefined, "aria-label": isOpen ? 'Menu di navigazione' : undefined, "data-testid": testId, ...attributes },
|
|
88
|
+
React.createElement("div", { className: overlayClasses, style: displayStyle, onClick: onOverlayClick }),
|
|
21
89
|
React.createElement("div", { className: 'close-div' },
|
|
22
90
|
React.createElement("button", { className: 'btn close-menu', type: 'button', onClick: onOverlayClick },
|
|
23
91
|
React.createElement("span", { className: 'visually-hidden' }, closeSrText),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collapse.js","sourceRoot":"","sources":["../../src/Collapse/Collapse.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"Collapse.js","sourceRoot":"","sources":["../../src/Collapse/Collapse.tsx"],"names":[],"mappings":"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"}
|