groovinads-ui 1.2.39 → 1.2.40
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/README.md +692 -401
- package/dist/index.es.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/components/Dropdowns/DropdownsDatePicker/DropdownDatePicker.jsx +2 -17
- package/src/components/Labels/PillComponent.jsx +5 -5
- package/src/components/Navigation/Sidebar.jsx +24 -19
- package/src/components/Navigation/Tabnav.jsx +5 -5
- package/src/stories/DropdownComponent.stories.jsx +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "groovinads-ui",
|
|
3
3
|
"description": "Groovinads UI is a React component library designed exclusively for Groovinads applications. It provides ready-to-use UI elements styled according to Groovinads design guidelines to facilitate rapid development.",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.40",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"css",
|
|
7
7
|
"sass",
|
|
@@ -32,16 +32,10 @@ const DropdownDatePicker = ({
|
|
|
32
32
|
dateTo2,
|
|
33
33
|
setDateTo2,
|
|
34
34
|
}) => {
|
|
35
|
-
const [activeTab, setActiveTab] = useState(1);
|
|
35
|
+
//const [activeTab, setActiveTab] = useState(1);
|
|
36
36
|
|
|
37
37
|
const [compareDates, setCompareDates] = useState(true);
|
|
38
38
|
|
|
39
|
-
/* State for dropdowns only visible when selecting 'compare dates' option */
|
|
40
|
-
const [period1, setPeriod1] = useState('Custom range');
|
|
41
|
-
const [detailLevel1, setDetailLevel1] = useState('Daily');
|
|
42
|
-
|
|
43
|
-
const [period2, setPeriod2] = useState('Custom range');
|
|
44
|
-
const [detailLevel2, setDetailLevel2] = useState('Daily');
|
|
45
39
|
|
|
46
40
|
/* We have a 'local' state for datepickers inside the dropdown, so the user can cancel the dropdown and go back to previous values. */
|
|
47
41
|
/* When user confirms selected values, the 'local' state replaces the values previously stored in the DateFilters component. */
|
|
@@ -49,9 +43,6 @@ const DropdownDatePicker = ({
|
|
|
49
43
|
const [editingDateFrom, setEditingDateFrom] = useState(dateFrom);
|
|
50
44
|
const [editingDateTo, setEditingDateTo] = useState(dateTo);
|
|
51
45
|
|
|
52
|
-
const [editingDateFrom2, setEditingDateFrom2] = useState(dateFrom2);
|
|
53
|
-
const [editingDateTo2, setEditingDateTo2] = useState(dateTo2);
|
|
54
|
-
|
|
55
46
|
const [internalShow, setInternalShow] = useState(!!show);
|
|
56
47
|
|
|
57
48
|
const { capitalice } = useTextFormatter();
|
|
@@ -64,12 +55,6 @@ const DropdownDatePicker = ({
|
|
|
64
55
|
setEditingDateTo(end);
|
|
65
56
|
};
|
|
66
57
|
|
|
67
|
-
const onChangeDate2 = (dates) => {
|
|
68
|
-
const [start, end] = dates;
|
|
69
|
-
setEditingDateFrom2(start);
|
|
70
|
-
setEditingDateTo2(end);
|
|
71
|
-
};
|
|
72
|
-
|
|
73
58
|
const internalToggle = () => {
|
|
74
59
|
setInternalShow((prevShow) => !prevShow);
|
|
75
60
|
try {
|
|
@@ -105,7 +90,7 @@ const DropdownDatePicker = ({
|
|
|
105
90
|
return (
|
|
106
91
|
<Dropdown
|
|
107
92
|
show={internalShow}
|
|
108
|
-
className={`${variant === 'filter' ? 'dropdown-filter' : ''}`}
|
|
93
|
+
className={`${variant === 'filter' ? 'dropdown-filter' : ''} ${className}`}
|
|
109
94
|
>
|
|
110
95
|
<Dropdown.Toggle
|
|
111
96
|
variant='toggle-filter'
|
|
@@ -16,11 +16,11 @@ const PillComponent = ({
|
|
|
16
16
|
<span>{children}</span>
|
|
17
17
|
{closeButton && (
|
|
18
18
|
<button onClick={onClick}>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
<Icon
|
|
20
|
+
style={'solid'}
|
|
21
|
+
iconName={'xmark'}
|
|
22
|
+
scale={0.7}
|
|
23
|
+
/>
|
|
24
24
|
</button>
|
|
25
25
|
)}
|
|
26
26
|
</div>
|
|
@@ -11,15 +11,21 @@ import PropTypes from 'prop-types';
|
|
|
11
11
|
// COMPONENTES
|
|
12
12
|
import { Icon } from '../Labels';
|
|
13
13
|
|
|
14
|
-
const Sidebar = ({
|
|
15
|
-
|
|
14
|
+
const Sidebar = ({
|
|
15
|
+
api,
|
|
16
|
+
customLinks,
|
|
17
|
+
defaultOpened = true,
|
|
18
|
+
show,
|
|
19
|
+
setShow,
|
|
20
|
+
onNavigate,
|
|
21
|
+
}) => {
|
|
22
|
+
const isMobile = useMediaQuery({ query: '(max-width: 992px)' });
|
|
16
23
|
|
|
17
24
|
const url = window.location.pathname; // to get current url
|
|
18
25
|
|
|
19
26
|
const [sidebarLinks, setSidebarLinks] = useState([]);
|
|
20
27
|
const [openIndex, setOpenIndex] = useState(null);
|
|
21
|
-
|
|
22
|
-
const [innerShow, setInnerShow] = useState(isMobile? false : defaultOpened);
|
|
28
|
+
const [innerShow, setInnerShow] = useState(isMobile ? false : defaultOpened);
|
|
23
29
|
|
|
24
30
|
const sidebarRef = useRef(null);
|
|
25
31
|
const firstOpen = useRef(true);
|
|
@@ -43,7 +49,7 @@ const Sidebar = ({ api, customLinks, defaultOpened = true, show, setShow}) => {
|
|
|
43
49
|
|
|
44
50
|
useEffect(() => {
|
|
45
51
|
if (isMobile && setShow) setShow(innerShow);
|
|
46
|
-
setInnerShow(isMobile ? false : firstOpen.current ? defaultOpened : show)
|
|
52
|
+
setInnerShow(isMobile ? false : firstOpen.current ? defaultOpened : show);
|
|
47
53
|
firstOpen.current = false;
|
|
48
54
|
}, []);
|
|
49
55
|
|
|
@@ -91,31 +97,29 @@ const Sidebar = ({ api, customLinks, defaultOpened = true, show, setShow}) => {
|
|
|
91
97
|
<ul className='btn-toggle-nav'>
|
|
92
98
|
{linkSection.children.map((childSection, x) => (
|
|
93
99
|
<li key={`childSectionIndex${x}`}>
|
|
94
|
-
<
|
|
100
|
+
<button
|
|
95
101
|
className={`nav-link ${
|
|
96
102
|
url === childSection.url ? 'active' : ''
|
|
97
103
|
}`}
|
|
98
|
-
|
|
104
|
+
onClick={() => onNavigate(childSection.url)}
|
|
99
105
|
>
|
|
100
106
|
{childSection.name}
|
|
101
|
-
</
|
|
107
|
+
</button>
|
|
102
108
|
</li>
|
|
103
109
|
))}
|
|
104
110
|
</ul>
|
|
105
111
|
</Collapse>
|
|
106
112
|
</>
|
|
107
113
|
) : (
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
</a>
|
|
118
|
-
</>
|
|
114
|
+
<button
|
|
115
|
+
className={`nav-link ${
|
|
116
|
+
url === linkSection.url ? 'active' : ''
|
|
117
|
+
}`}
|
|
118
|
+
onClick={() => onNavigate(linkSection.url)}
|
|
119
|
+
>
|
|
120
|
+
<Icon iconName={linkSection.icon} />
|
|
121
|
+
{linkSection.name}
|
|
122
|
+
</button>
|
|
119
123
|
)}
|
|
120
124
|
</li>
|
|
121
125
|
</ul>
|
|
@@ -135,6 +139,7 @@ Sidebar.propTypes = {
|
|
|
135
139
|
defaultOpened: PropTypes.bool,
|
|
136
140
|
show: PropTypes.bool, // Add show prop for controlling visibility
|
|
137
141
|
setShow: PropTypes.func, // Add setShow prop for controlling visibility
|
|
142
|
+
onNavigate: PropTypes.func.isRequired, // Nueva prop para manejar la navegación
|
|
138
143
|
};
|
|
139
144
|
|
|
140
145
|
export default Sidebar;
|
|
@@ -8,7 +8,7 @@ import { Icon } from '../Labels';
|
|
|
8
8
|
// HOOKS
|
|
9
9
|
import useTextFormatter from '../../hooks/useTextFormatter';
|
|
10
10
|
|
|
11
|
-
function Tabnav({
|
|
11
|
+
function Tabnav({
|
|
12
12
|
tabs = [],
|
|
13
13
|
activeTab = 1,
|
|
14
14
|
navigateTab= false,
|
|
@@ -17,7 +17,7 @@ function Tabnav({
|
|
|
17
17
|
const { toCamelCase } = useTextFormatter();
|
|
18
18
|
|
|
19
19
|
// initial activeTab (in case it's not sent, it has a default value)
|
|
20
|
-
const [activeTabState, setActiveTabState] = useState(activeTab);
|
|
20
|
+
const [activeTabState, setActiveTabState] = useState(activeTab);
|
|
21
21
|
|
|
22
22
|
const handleSelect = (k) => {
|
|
23
23
|
if (navigateTab) {
|
|
@@ -28,7 +28,7 @@ function Tabnav({
|
|
|
28
28
|
// console.log('Valor de k:', k);
|
|
29
29
|
const tabIndex = tabs.findIndex((tab) => toCamelCase(tab.tab) === k) + 1;
|
|
30
30
|
setActiveTab ? setActiveTab(tabIndex) : setActiveTabState(tabIndex);
|
|
31
|
-
}
|
|
31
|
+
}
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
const formatTabsName = (tab) => {
|
|
@@ -42,7 +42,7 @@ function Tabnav({
|
|
|
42
42
|
useEffect(() => {
|
|
43
43
|
setActiveTabState(activeTab);
|
|
44
44
|
}, [activeTab]);
|
|
45
|
-
|
|
45
|
+
|
|
46
46
|
return (
|
|
47
47
|
<Nav
|
|
48
48
|
variant='tabs'
|
|
@@ -65,7 +65,7 @@ function Tabnav({
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
Tabnav.propTypes = {
|
|
68
|
-
tabs: PropTypes.array,
|
|
68
|
+
tabs: PropTypes.array.isRequired,
|
|
69
69
|
activeTab: PropTypes.number,
|
|
70
70
|
customFunction: PropTypes.bool,
|
|
71
71
|
navigateTab: PropTypes.bool,
|