groovinads-ui 1.2.21 → 1.2.23
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/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.23",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"css",
|
|
7
7
|
"sass",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
|
|
4
4
|
// BOOTSTRAP
|
|
@@ -16,9 +16,18 @@ const DropdownComponent = ({
|
|
|
16
16
|
align = 'start',
|
|
17
17
|
show,
|
|
18
18
|
}) => {
|
|
19
|
+
const [innerShow, setInnerShow] = useState(false);
|
|
20
|
+
|
|
19
21
|
const [Toggle, Menu] = children;
|
|
20
22
|
|
|
21
|
-
const modifiedToggle =
|
|
23
|
+
const modifiedToggle = React.cloneElement(Toggle, {
|
|
24
|
+
align,
|
|
25
|
+
onClick: () => {
|
|
26
|
+
Toggle.props && Toggle.props.onClick
|
|
27
|
+
? Toggle.props.onClick()
|
|
28
|
+
: setInnerShow(!innerShow);;
|
|
29
|
+
},
|
|
30
|
+
});
|
|
22
31
|
|
|
23
32
|
const modifiedMenu = React.cloneElement(Menu, {
|
|
24
33
|
as: 'ul',
|
|
@@ -6,8 +6,8 @@ import Dropdown from 'react-bootstrap/Dropdown';
|
|
|
6
6
|
// COMPONENTS
|
|
7
7
|
import { Icon } from '../../Labels';
|
|
8
8
|
import { Button } from '../../Button';
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
import { Switch } from '../../Inputs';
|
|
10
|
+
import { Tabnav } from '../../Navigation';
|
|
11
11
|
// import PeriodAndDetailDropdowns from './PeriodAndDetailDropdowns';
|
|
12
12
|
|
|
13
13
|
// HOOKS
|
|
@@ -20,21 +20,17 @@ const DropdownDatePicker = ({
|
|
|
20
20
|
setShow,
|
|
21
21
|
onToggle,
|
|
22
22
|
inputLabel = 'period',
|
|
23
|
+
locked = false,
|
|
24
|
+
overflow = false,
|
|
25
|
+
onRemoveFilter,
|
|
23
26
|
dateFrom,
|
|
24
27
|
setDateFrom,
|
|
25
28
|
dateTo,
|
|
26
29
|
setDateTo,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
setFromDate1,
|
|
32
|
-
toDate1,
|
|
33
|
-
setToDate1,
|
|
34
|
-
fromDate2,
|
|
35
|
-
setFromDate2,
|
|
36
|
-
toDate2,
|
|
37
|
-
setToDate2,
|
|
30
|
+
dateFrom2,
|
|
31
|
+
setDateFrom2,
|
|
32
|
+
dateTo2,
|
|
33
|
+
setDateTo2,
|
|
38
34
|
}) => {
|
|
39
35
|
const [activeTab, setActiveTab] = useState(1);
|
|
40
36
|
|
|
@@ -50,30 +46,28 @@ const DropdownDatePicker = ({
|
|
|
50
46
|
/* We have a 'local' state for datepickers inside the dropdown, so the user can cancel the dropdown and go back to previous values. */
|
|
51
47
|
/* When user confirms selected values, the 'local' state replaces the values previously stored in the DateFilters component. */
|
|
52
48
|
/* ========== STATE FOR DATEPCIKER 1 ========== */
|
|
53
|
-
const [
|
|
54
|
-
const [
|
|
49
|
+
const [editingDateFrom, setEditingDateFrom] = useState(dateFrom);
|
|
50
|
+
const [editingDateTo, setEditingDateTo] = useState(dateTo);
|
|
55
51
|
|
|
56
|
-
const [
|
|
57
|
-
const [
|
|
52
|
+
const [editingDateFrom2, setEditingDateFrom2] = useState(dateFrom2);
|
|
53
|
+
const [editingDateTo2, setEditingDateTo2] = useState(dateTo2);
|
|
58
54
|
|
|
59
55
|
const [internalShow, setInternalShow] = useState(!!show);
|
|
60
56
|
|
|
61
57
|
const { capitalice } = useTextFormatter();
|
|
62
58
|
|
|
63
|
-
const dropdown = useRef(null);
|
|
64
|
-
|
|
65
59
|
const isMobile = window?.innerWidth < 500;
|
|
66
60
|
|
|
67
|
-
const
|
|
61
|
+
const onChangeDate1 = (dates) => {
|
|
68
62
|
const [start, end] = dates;
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
setEditingDateFrom(start);
|
|
64
|
+
setEditingDateTo(end);
|
|
71
65
|
};
|
|
72
66
|
|
|
73
|
-
const
|
|
67
|
+
const onChangeDate2 = (dates) => {
|
|
74
68
|
const [start, end] = dates;
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
setEditingDateFrom2(start);
|
|
70
|
+
setEditingDateTo2(end);
|
|
77
71
|
};
|
|
78
72
|
|
|
79
73
|
const internalToggle = () => {
|
|
@@ -91,15 +85,15 @@ const DropdownDatePicker = ({
|
|
|
91
85
|
};
|
|
92
86
|
|
|
93
87
|
const updateDateFilters = () => {
|
|
94
|
-
|
|
88
|
+
setDateFrom(editingDateFrom.toString());
|
|
95
89
|
|
|
96
|
-
if (
|
|
97
|
-
|
|
90
|
+
if (editingDateTo === null) {
|
|
91
|
+
setDateTo(editingDateFrom.toString());
|
|
98
92
|
} else {
|
|
99
|
-
|
|
93
|
+
setDateTo(editingDateTo.toString());
|
|
100
94
|
}
|
|
101
|
-
|
|
102
|
-
|
|
95
|
+
setDateFrom2(dateFrom2.toString());
|
|
96
|
+
setDateTo2(dateTo2.toString());
|
|
103
97
|
|
|
104
98
|
closeDropdown();
|
|
105
99
|
};
|
|
@@ -108,10 +102,6 @@ const DropdownDatePicker = ({
|
|
|
108
102
|
setInternalShow(!!show);
|
|
109
103
|
}, [show]);
|
|
110
104
|
|
|
111
|
-
useEffect(() => {
|
|
112
|
-
console.log('internalShow', internalShow);
|
|
113
|
-
}, []);
|
|
114
|
-
|
|
115
105
|
return (
|
|
116
106
|
<Dropdown
|
|
117
107
|
show={internalShow}
|
|
@@ -124,9 +114,13 @@ const DropdownDatePicker = ({
|
|
|
124
114
|
>
|
|
125
115
|
{variant === 'input' ? (
|
|
126
116
|
<>
|
|
127
|
-
{(
|
|
117
|
+
{(editingDateFrom || editingDateTo) && (
|
|
128
118
|
<span className={'wrapper'}>
|
|
129
|
-
<strong>
|
|
119
|
+
<strong>
|
|
120
|
+
{editingDateFrom ? editingDateFrom.toString().split('00')[0] : ''}
|
|
121
|
+
</strong>
|
|
122
|
+
to
|
|
123
|
+
<strong>{editingDateTo ? editingDateTo.toString().split('00')[0] : ''}</strong>
|
|
130
124
|
</span>
|
|
131
125
|
)}
|
|
132
126
|
<span className='label'>{capitalice(inputLabel)}</span>
|
|
@@ -149,9 +143,10 @@ const DropdownDatePicker = ({
|
|
|
149
143
|
/>
|
|
150
144
|
</div>
|
|
151
145
|
<div className='filter-values'>
|
|
152
|
-
{
|
|
146
|
+
{editingDateFrom || editingDateTo ? (
|
|
153
147
|
<>
|
|
154
|
-
<strong>{
|
|
148
|
+
<strong>{editingDateFrom}</strong> to{' '}
|
|
149
|
+
<strong>{editingDateTo}</strong>
|
|
155
150
|
</>
|
|
156
151
|
) : (
|
|
157
152
|
<>None</>
|
|
@@ -252,10 +247,10 @@ const DropdownDatePicker = ({
|
|
|
252
247
|
|
|
253
248
|
<DatePicker
|
|
254
249
|
className='form-control form-search'
|
|
255
|
-
selected={
|
|
256
|
-
onChange={
|
|
257
|
-
startDate={
|
|
258
|
-
endDate={
|
|
250
|
+
selected={editingDateFrom}
|
|
251
|
+
onChange={onChangeDate1}
|
|
252
|
+
startDate={editingDateFrom}
|
|
253
|
+
endDate={editingDateTo}
|
|
259
254
|
monthsShown={isMobile ? 1 : 2}
|
|
260
255
|
selectsRange
|
|
261
256
|
inline
|
|
@@ -307,14 +302,14 @@ DropdownDatePicker.propTypes = {
|
|
|
307
302
|
locked: PropTypes.bool,
|
|
308
303
|
overflow: PropTypes.bool,
|
|
309
304
|
onRemoveFilter: PropTypes.func,
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
305
|
+
editingDateFrom: PropTypes.string,
|
|
306
|
+
setEditingDateFrom: PropTypes.string,
|
|
307
|
+
editingDateTo1: PropTypes.string,
|
|
308
|
+
setEditingDateTo1: PropTypes.string,
|
|
309
|
+
EditingDateFrom2: PropTypes.string,
|
|
310
|
+
setEditingDateFrom2: PropTypes.string,
|
|
311
|
+
EditingDateTo2: PropTypes.string,
|
|
312
|
+
setEditingDateTo2: PropTypes.string,
|
|
318
313
|
};
|
|
319
314
|
|
|
320
315
|
export default DropdownDatePicker;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { DropdownDatePicker } from '../components/Dropdowns';
|
|
3
3
|
|
|
4
4
|
export default {
|
|
@@ -9,22 +9,21 @@ export default {
|
|
|
9
9
|
const Template = (args) => {
|
|
10
10
|
const [show, setShow] = useState(false);
|
|
11
11
|
|
|
12
|
-
const [
|
|
13
|
-
const [
|
|
12
|
+
const [dateFrom, setDateFrom] = useState('');
|
|
13
|
+
const [dateTo, setDateTo] = useState('');
|
|
14
14
|
|
|
15
|
-
const [
|
|
16
|
-
const [
|
|
15
|
+
const [dateFrom2, setDateFrom2] = useState('');
|
|
16
|
+
const [dateTo2, setDateTo2] = useState('');
|
|
17
17
|
|
|
18
18
|
const handleToggle = () => setShow((prevShow) => !prevShow);
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// const [tableQueryObj, setTableQueryObj] = useState();
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
console.log('dates From:', dateFrom);
|
|
22
|
+
}, [dateFrom]);
|
|
23
|
+
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
console.log('dates To:', dateTo);
|
|
26
|
+
}, [ dateTo ]);
|
|
28
27
|
|
|
29
28
|
return (
|
|
30
29
|
<>
|
|
@@ -35,29 +34,14 @@ const Template = (args) => {
|
|
|
35
34
|
show={show}
|
|
36
35
|
setShow={setShow}
|
|
37
36
|
onToggle={handleToggle}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
// dateFrom={dateFrom}
|
|
47
|
-
// setDateFrom={setDateFrom}
|
|
48
|
-
// dateTo={dateTo}
|
|
49
|
-
// setDateTo={setDateTo}
|
|
50
|
-
// datePicker1StartDate={datePicker1StartDate}
|
|
51
|
-
// setDatePicker1StartDate={setDatePicker1StartDate}
|
|
52
|
-
// datePicker1EndDate={datePicker1EndDate}
|
|
53
|
-
// setDatePicker1EndDate={setDatePicker1EndDate}
|
|
54
|
-
// datePicker2StartDate={datePicker2StartDate}
|
|
55
|
-
// setDatePicker2StartDate={setDatePicker2StartDate}
|
|
56
|
-
// datePicker2EndDate={datePicker2EndDate}
|
|
57
|
-
// setDatePicker2EndDate={setDatePicker2EndDate}
|
|
58
|
-
// tableQueryObj={tableQueryObj}
|
|
59
|
-
// setTableQueryObj={setTableQueryObj}
|
|
60
|
-
// fetchData={() => {}}
|
|
37
|
+
dateFrom={dateFrom}
|
|
38
|
+
setDateFrom={setDateFrom}
|
|
39
|
+
dateTo={dateTo}
|
|
40
|
+
setDateTo={setDateTo}
|
|
41
|
+
dateFrom2={dateFrom2}
|
|
42
|
+
setDateFrom2={setDateFrom2}
|
|
43
|
+
dateTo2={dateTo2}
|
|
44
|
+
setDateTo2={setDateTo2}
|
|
61
45
|
/>
|
|
62
46
|
</div>
|
|
63
47
|
</>
|