groovinads-ui 1.2.40 → 1.2.42

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.40",
4
+ "version": "1.2.42",
5
5
  "keywords": [
6
6
  "css",
7
7
  "sass",
@@ -21,7 +21,6 @@ const DropdownFilter = ({
21
21
  onToggle,
22
22
  overflow = false,
23
23
  className = '',
24
-
25
24
  }) => {
26
25
  const [query, setQuery] = useState('');
27
26
 
@@ -37,24 +36,24 @@ const DropdownFilter = ({
37
36
  <p>It looks like this value does not exist.</p>
38
37
  </div>
39
38
  </div>
40
- )
41
- }
39
+ );
40
+ };
42
41
 
43
42
  const handleCheckbox = (value, i) => {
44
- if (value) setValuesSelected([...valuesSelected, values[i]]);
45
- else setValuesSelected(valuesSelected.filter((item) => item !== values[i]));
46
- };
43
+ if (value) setValuesSelected([...valuesSelected, values[i]]);
44
+ else setValuesSelected(valuesSelected.filter((item) => item !== values[i]));
45
+ };
47
46
 
48
47
  const selectAll = () => {
49
48
  setValuesSelected([...values]);
50
- }
49
+ };
51
50
 
52
51
  const clearSelection = () => {
53
52
  setValuesSelected([]);
54
- }
53
+ };
55
54
 
56
55
  const handlePill = (index) =>
57
- setValuesSelected(valuesSelected.filter((item, i) => i !== index));
56
+ setValuesSelected(valuesSelected.filter((item, i) => i !== index));
58
57
 
59
58
  return (
60
59
  <Dropdown
@@ -63,20 +62,13 @@ const DropdownFilter = ({
63
62
  className={`dropdown-filter ${locked ? 'locked' : ''} ${className}`}
64
63
  autoClose={false}
65
64
  >
66
- <Dropdown.Toggle
67
- variant='toggle-filter'
68
- >
65
+ <Dropdown.Toggle variant='toggle-filter'>
69
66
  <div className='filter-heading'>
70
-
71
67
  <div className='filter-title'>
72
68
  <span>{title}</span>
73
69
  {locked && (
74
- <Icon
75
- style={'solid'}
76
- iconName={'lock-keyhole'}
77
- scale={0.7}
78
- />
79
- )}
70
+ <Icon style={'solid'} iconName={'lock-keyhole'} scale={0.7} />
71
+ )}
80
72
  </div>
81
73
  <Icon
82
74
  style={'solid'}
@@ -86,7 +78,11 @@ const DropdownFilter = ({
86
78
  />
87
79
  </div>
88
80
  <div className='filter-values'>
89
- { valuesSelected.length === values.length ? 'All selected' : valuesSelected.length ? valuesSelected.join('; ') : 'None'}
81
+ {valuesSelected.length === values.length
82
+ ? 'All selected'
83
+ : valuesSelected.length
84
+ ? valuesSelected.join('; ')
85
+ : 'None'}
90
86
  </div>
91
87
  </Dropdown.Toggle>
92
88
  {!locked && (
@@ -100,9 +96,17 @@ const DropdownFilter = ({
100
96
  )}
101
97
 
102
98
  {menuType === 'simple' && (
103
- <Dropdown.Menu
99
+ <Dropdown.Menu
104
100
  className='dropdown-menu-simple'
105
- popperConfig={overflow ? { strategy: 'fixed', onFirstUpdate: () => window.dispatchEvent(new CustomEvent('scroll')) } : undefined}
101
+ popperConfig={
102
+ overflow
103
+ ? {
104
+ strategy: 'fixed',
105
+ onFirstUpdate: () =>
106
+ window.dispatchEvent(new CustomEvent('scroll')),
107
+ }
108
+ : undefined
109
+ }
106
110
  >
107
111
  <div className='dropdown-menu-wrapper'>
108
112
  <Input
@@ -111,35 +115,50 @@ const DropdownFilter = ({
111
115
  icon='magnifying-glass'
112
116
  className='w-100'
113
117
  value={query}
114
- onChange={({target}) => setQuery(target.value)}
118
+ onChange={({ target }) => setQuery(target.value)}
115
119
  customRef={show}
116
120
  />
117
- {values.filter( (item) => item.toLowerCase().includes(query.toLowerCase() ) ).length > 0 ? (
121
+ {values.filter((item) =>
122
+ item.toString().toLowerCase().includes(query.toLowerCase()),
123
+ ).length > 0 ? (
118
124
  <ul className='dropdown-filter-list'>
119
125
  {/* List values */}
120
- {values.filter( (item) => item.toLowerCase().includes(query.toLowerCase() ) ).map((value, index) => {
121
- return (
122
- <Checkbox
123
- setStatus={ (status) => {handleCheckbox(status, index)} }
124
- status={valuesSelected.includes(value)}
125
- key={'Dropdown.Simple.Checkbox' + index}
126
- >
127
- {value}
128
- </Checkbox>
126
+ {values
127
+ .filter((item) =>
128
+ item.toString().toLowerCase().includes(query.toLowerCase()),
129
129
  )
130
- })}
130
+ .map((value, index) => {
131
+ return (
132
+ <Checkbox
133
+ setStatus={(status) => {
134
+ handleCheckbox(status, index);
135
+ }}
136
+ status={valuesSelected.includes(value)}
137
+ key={'Dropdown.Simple.Checkbox' + index}
138
+ >
139
+ {value}
140
+ </Checkbox>
141
+ );
142
+ })}
131
143
  </ul>
132
144
  ) : (
133
145
  <EmptySpace />
134
146
  )}
135
147
  </div>
136
-
137
- </Dropdown.Menu>
138
- )}
139
- {menuType === 'selection' && (
140
- <Dropdown.Menu
141
- className='dropdown-menu-selection'
142
- popperConfig={overflow ? { strategy: 'fixed', onFirstUpdate: () => window.dispatchEvent(new CustomEvent('scroll')) } : undefined}
148
+ </Dropdown.Menu>
149
+ )}
150
+ {menuType === 'selection' && (
151
+ <Dropdown.Menu
152
+ className='dropdown-menu-selection'
153
+ popperConfig={
154
+ overflow
155
+ ? {
156
+ strategy: 'fixed',
157
+ onFirstUpdate: () =>
158
+ window.dispatchEvent(new CustomEvent('scroll')),
159
+ }
160
+ : undefined
161
+ }
143
162
  >
144
163
  <div className='dropdown-menu-wrapper'>
145
164
  <div className='dropdown-filter-list-wrapper'>
@@ -149,25 +168,36 @@ const DropdownFilter = ({
149
168
  icon='magnifying-glass'
150
169
  className='w-100'
151
170
  value={query}
152
- onChange={({target}) => setQuery(target.value)}
171
+ onChange={({ target }) => setQuery(target.value)}
153
172
  customRef={show}
154
173
  />
155
174
  <h4>All values ({values.length})</h4>
156
- {values.filter( (item) => item.toLowerCase().includes(query.toLowerCase() ) ).length > 0 ? (
175
+ {values.filter((item) =>
176
+ item.toString().toLowerCase().includes(query.toLowerCase()),
177
+ ).length > 0 ? (
157
178
  <>
158
179
  <ul className='dropdown-filter-list'>
159
180
  {/* List values */}
160
- {values.filter( (item) => item.toLowerCase().includes(query.toLowerCase() ) ).map((value, index) => {
161
- return (
162
- <Checkbox
163
- setStatus={ (status) => {handleCheckbox(status, index)} }
164
- status={valuesSelected.includes(value)}
165
- key={'Dropdown.Selection.Checkbox' + index}
166
- >
167
- {value}
168
- </Checkbox>
181
+ {values
182
+ .filter((item) =>
183
+ item
184
+ .toString()
185
+ .toLowerCase()
186
+ .includes(query.toLowerCase()),
169
187
  )
170
- })}
188
+ .map((value, index) => {
189
+ return (
190
+ <Checkbox
191
+ setStatus={(status) => {
192
+ handleCheckbox(status, index);
193
+ }}
194
+ status={valuesSelected.includes(value)}
195
+ key={'Dropdown.Selection.Checkbox' + index}
196
+ >
197
+ {value}
198
+ </Checkbox>
199
+ );
200
+ })}
171
201
  </ul>
172
202
  </>
173
203
  ) : (
@@ -201,19 +231,20 @@ const DropdownFilter = ({
201
231
  <PillComponent
202
232
  color='light'
203
233
  closeButton={true}
204
- onClick={ () => { handlePill(index) } }
234
+ onClick={() => {
235
+ handlePill(index);
236
+ }}
205
237
  key={'Dropdown.PillComponent' + index}
206
238
  >
207
239
  {value}
208
240
  </PillComponent>
209
- )
241
+ );
210
242
  })}
211
243
  </div>
212
244
  </div>
213
245
  </div>
214
-
215
- </Dropdown.Menu>
216
- )}
246
+ </Dropdown.Menu>
247
+ )}
217
248
  </Dropdown>
218
249
  );
219
250
  };
@@ -232,4 +263,4 @@ DropdownFilter.propTypes = {
232
263
  className: PropTypes.string,
233
264
  };
234
265
 
235
- export default DropdownFilter;
266
+ export default DropdownFilter;
@@ -19,7 +19,6 @@ const DeckDropdown = () => {
19
19
  try {
20
20
  const resp = await ComponentsService.applications();
21
21
  resp.forEach((element) => {
22
- //element.app_icon = `fa-duotone fa-${element.application_icon}`; // Solo para Deck
23
22
  element.app_icon_sm = element.application_icon;
24
23
  element.app_name = element.application_name;
25
24
  });
@@ -34,7 +33,6 @@ const DeckDropdown = () => {
34
33
 
35
34
  const linkToApp = (path, title) => {
36
35
  // if path begins with /, path is a subdomain, linkUrl must be window.location.origin + path + '/'
37
- // else linkUrl must be path
38
36
  let linkUrl;
39
37
  const base_domain = useGetBaseDomain();
40
38
  const nextState = { additionalInformation: 'Updated the URL' };
@@ -43,12 +41,10 @@ const DeckDropdown = () => {
43
41
  if (path.startsWith('/')) {
44
42
  if (base_domain === 'groovinads.com') {
45
43
  linkUrl = window.location.origin + path + '/';
46
- // we update the browser history window.history.pushState({ additionalInformation: 'URL updated' }, title, linkUrl);
47
44
  window.history.pushState(nextState, title, linkUrl);
48
45
  } else {
49
46
  linkUrl = 'https://deck-dev.groovinads.com' + path + '/';
50
47
  }
51
- // Else return complete path
52
48
  } else linkUrl = path;
53
49
 
54
50
  return linkUrl;
@@ -68,8 +64,6 @@ const DeckDropdown = () => {
68
64
  });
69
65
  } catch (error) {
70
66
  console.error('favApp error', error);
71
- //setShowAPIerrorModal(true);
72
- //setErrorModalDetail(`${error}`);
73
67
  }
74
68
  };
75
69
 
@@ -88,8 +82,6 @@ const DeckDropdown = () => {
88
82
  }
89
83
  } catch (error) {
90
84
  console.error('unfavApp error', error);
91
- //setShowAPIerrorModal(true);
92
- //setErrorModalDetail(`${error}`);
93
85
  }
94
86
  };
95
87
 
@@ -144,7 +136,6 @@ const DeckDropdown = () => {
144
136
  className='link-app'
145
137
  >
146
138
  <span className='icon-app'>
147
- {/* <i className={element.app_icon_sm}></i> */}
148
139
  <Icon
149
140
  style={'solid'}
150
141
  iconName={element.app_icon_sm}
@@ -189,7 +180,6 @@ const DeckDropdown = () => {
189
180
  className='link-app'
190
181
  >
191
182
  <span className='icon-app'>
192
- {/* <i className={element.app_icon_sm}></i> */}
193
183
  <Icon
194
184
  style={'solid'}
195
185
  iconName={element.app_icon_sm}
@@ -213,43 +203,6 @@ const DeckDropdown = () => {
213
203
  })}
214
204
  </Dropdown.Menu>
215
205
 
216
- {/* <Dropdown.Menu as={'ul'}>
217
- <Dropdown.Item as={'li'}>
218
- <h4 className='dropdown-header'>Favoritos</h4>
219
- </Dropdown.Item>
220
-
221
- <Dropdown.Item as={'li'}>
222
- <div
223
- onClick={() => {
224
- console.log('link');
225
- }}
226
- className='link-app'
227
- >
228
- <span className='icon-app'>
229
- <Icon
230
- style={'solid'}
231
- iconName={'book'}
232
- scale={1}
233
- />
234
- </span>
235
-
236
- <span>La app va a acá</span>
237
- </div>
238
- <button
239
- className='deck-fav'
240
- onClick={(e) => {
241
- e.stopPropagation();
242
- console.log('fav');
243
- }}
244
- >
245
- <Icon
246
- style={'regular'}
247
- iconName={'star'}
248
- scale={1}
249
- />
250
- </button>
251
- </Dropdown.Item>
252
- </Dropdown.Menu> */}
253
206
  </Dropdown>
254
207
  );
255
208
  };
@@ -13,6 +13,14 @@ const UserDropdown = () => {
13
13
 
14
14
  const [groovinProfile, setGroovinProfile] = useState({});
15
15
 
16
+ const handleLogout = async() => {
17
+ const resp = await ComponentsService.authLogout().then(() => {
18
+ window.location.href = '/';
19
+ }).catch((error) => {
20
+ console.error( error)
21
+ })
22
+ }
23
+
16
24
  useEffect(() => {
17
25
  ComponentsService.authStatus().then((resp) => {
18
26
 
@@ -46,9 +54,7 @@ const UserDropdown = () => {
46
54
  </Dropdown.Toggle>
47
55
  <Dropdown.Menu as={'ul'} align={'end'}>
48
56
  <Dropdown.Item as={'li'}
49
- onClick={() => {
50
- window.location.href = '/logout';
51
- }}
57
+ onClick={handleLogout}
52
58
  >
53
59
  <Icon
54
60
  iconName={'right-from-bracket'}
@@ -3,6 +3,8 @@ import { POST, GET, DELETE } from './helpers';
3
3
 
4
4
  export const authStatus = async () => await GET({ url: urlPath.authStatus });
5
5
 
6
+ export const authLogout = async () => await POST({ url: urlPath.authLogout });
7
+
6
8
  export const applications = async () => await GET({ url: urlPath.applications });
7
9
 
8
10
  export const favApplication = async (appToFav) => await POST({url: `${urlPath.favApps}/${appToFav}`, data: appToFav})
@@ -1,6 +1,8 @@
1
1
  import axios from 'axios';
2
2
  import urlPath from './url.path';
3
3
 
4
+ axios.defaults.withCredentials = true;
5
+
4
6
  export const GET = async ({ url }) => {
5
7
  return await axios
6
8
  .get(url, urlPath.headers)
@@ -9,11 +9,13 @@ export const basePath =
9
9
 
10
10
  export default {
11
11
  authStatus: basePath + 'v2/auth/status',
12
+ authLogout: basePath + 'v2/auth/logout',
12
13
 
13
14
  /* APPS FOR DROPDOWN */
14
15
  applications: basePath + 'v2/applications',
15
16
  favApps: basePath + 'v2/applications/favorite',
16
17
 
18
+
17
19
  headers: {
18
20
  headers: {
19
21
  'Content-Type': 'application/json',