ui-soxo-bootstrap-core 2.4.25-dev.9 → 2.4.26

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.
Files changed (29) hide show
  1. package/.github/workflows/npm-publish.yml +15 -37
  2. package/core/components/extra-info/extra-info-details.js +126 -109
  3. package/core/components/landing-api/landing-api.js +30 -22
  4. package/core/lib/Store.js +18 -20
  5. package/core/lib/components/index.js +1 -4
  6. package/core/lib/components/sidemenu/sidemenu.js +256 -153
  7. package/core/lib/components/sidemenu/sidemenu.scss +26 -39
  8. package/core/lib/elements/basic/rangepicker/rangepicker.js +29 -118
  9. package/core/lib/hooks/use-otp-timer.js +0 -19
  10. package/core/lib/pages/login/login.js +2 -2
  11. package/core/lib/pages/login/login.scss +5 -1
  12. package/core/models/dashboard/dashboard.js +0 -14
  13. package/core/models/menus/components/menu-lists/menu-lists.js +89 -126
  14. package/core/models/menus/components/menu-lists/menu-lists.scss +0 -9
  15. package/core/models/menus/menus.js +267 -247
  16. package/core/models/roles/components/role-add/role-add.js +227 -269
  17. package/core/models/roles/components/role-list/role-list.js +6 -8
  18. package/core/models/roles/roles.js +174 -182
  19. package/core/models/users/components/user-add/user-add.js +1 -69
  20. package/core/models/users/users.js +0 -57
  21. package/core/modules/index.js +13 -23
  22. package/core/modules/reporting/components/reporting-dashboard/reporting-dashboard.js +1 -1
  23. package/package.json +2 -2
  24. package/core/models/staff/components/staff-add/staff-add.js +0 -352
  25. package/core/models/staff/components/staff-add/staff-add.scss +0 -0
  26. package/core/modules/steps/action-buttons.js +0 -79
  27. package/core/modules/steps/steps.js +0 -553
  28. package/core/modules/steps/steps.scss +0 -158
  29. package/core/modules/steps/timeline.js +0 -49
@@ -1,89 +1,137 @@
1
1
  /**
2
2
  *
3
3
  * Sidemenu component
4
- *
4
+ *
5
5
  * @author Ashique Mohammed
6
- * @co-author Sneha
7
- *
8
- *
6
+ * @co-author Sneha
7
+ *
8
+ *
9
9
  */
10
10
 
11
- import React, { useState, useEffect, useContext } from 'react';
11
+ import React, { useState, useEffect, useContext } from "react";
12
12
 
13
- import { animationControls, motion, useAnimation } from 'framer-motion';
13
+ import { animationControls, motion, useAnimation } from "framer-motion";
14
14
 
15
- import { GlobalContext } from './../../Store';
15
+ import { GlobalContext } from "./../../Store";
16
16
 
17
- import { Menu, message, Skeleton, Space, Popover } from 'antd';
17
+ import { Menu, message, Skeleton, Space } from "antd";
18
18
 
19
- import FirebaseUtils from './../../utils/firebase.utils';
19
+ import FirebaseUtils from "./../../utils/firebase.utils";
20
20
 
21
- import { useHistory } from 'react-router-dom';
21
+ import { useHistory } from "react-router-dom";
22
22
 
23
23
  import { useTranslation, Trans } from 'react-i18next';
24
24
 
25
- import { Menus } from '../../models';
25
+ import { Menus } from "../../models"
26
+
27
+
26
28
 
27
- import './sidemenu.scss';
29
+
30
+ import "./sidemenu.scss";
28
31
 
29
32
  const { SubMenu } = Menu;
30
33
 
34
+
31
35
  /**
32
- *
33
- * @param {*} collapsed
34
- * @param {*} icon
35
- * @param {*} caption
36
- * @returns
36
+ *
37
+ * @param {*} collapsed
38
+ * @param {*} icon
39
+ * @param {*} caption
40
+ * @returns
37
41
  */
38
42
  function CollapsedIconMenu({ menu, collapsed, icon, caption }) {
43
+
44
+
45
+
39
46
  // Import t and i18n from useTranslation
40
47
  const { t, i18n } = useTranslation();
41
48
  const { state } = useContext(GlobalContext);
42
- const menuText = t(caption);
49
+
50
+
51
+
43
52
  return (
53
+
44
54
  <>
45
- <Popover content={menuText} placement="right">
46
- {/* If value of collapsed is false show caption & icon else hiding caption and showing only icon*/}
47
- {!collapsed ? (
48
- <div className="menu-collapsed">
49
- <div>
50
- {menu && menu.image_path ? <img style={{ width: '25px' }} src={menu.image_path}></img> : <i className={`fa-solid fas ${icon}`} />}
51
- </div>
52
-
53
- <div style={{ color: state.theme.colors.leftSectionColor }}>
54
- <span className="caption">
55
- {/* {caption} */}
56
- {/* <Trans i18nKey="Appointments"></Trans> */}
57
- {t(`${caption}`)}
58
- </span>
59
- </div>
55
+
56
+ {/* If value of collapsed is false show caption & icon else hiding caption and showing only icon*/}
57
+ {!collapsed ? (
58
+
59
+ <div
60
+
61
+ className="menu-collapsed" >
62
+
63
+ <div>
64
+
65
+ {
66
+ menu && menu.image_path ?
67
+ <img style={{ width: '25px' }} src={menu.image_path}></img>
68
+ :
69
+ <i className={`fa-solid fas ${icon}`} />
70
+ }
71
+
60
72
  </div>
61
- ) : (
62
- <div className="menu-collapsed">
63
- <span className="anticon">
64
- {menu && menu.image_path ? <img style={{ width: '25px' }} src={menu.image_path}></img> : <i className={`fa-solid fas ${icon}`} />}
65
- </span>
66
73
 
67
- <span style={{ color: state.theme.colors.colorPrimaryText, paddingLeft: '6px' }}>
68
- {/* <>{caption}</> */}
74
+ <div style={{ color: state.theme.colors.leftSectionColor }}>
75
+
76
+ <span className="caption">
77
+
78
+ {/* {caption} */}
79
+ {/* <Trans i18nKey="Appointments"></Trans> */}
69
80
  {t(`${caption}`)}
81
+
70
82
  </span>
83
+
71
84
  </div>
72
- )}
73
- </Popover>
85
+
86
+ </div>
87
+
88
+ ) : (
89
+
90
+ <div
91
+
92
+ className="menu-collapsed">
93
+
94
+ <span className="anticon">
95
+
96
+ {
97
+ menu && menu.image_path ?
98
+ <img style={{ width: '25px' }} src={menu.image_path}></img>
99
+ :
100
+ <i className={`fa-solid fas ${icon}`} />
101
+ }
102
+
103
+ </span>
104
+
105
+ <span style={{ color: state.theme.colors.colorPrimaryText,paddingLeft: '6px' }}>
106
+
107
+ {/* <>{caption}</> */}
108
+ {t(`${caption}`)}
109
+
110
+ </span>
111
+
112
+ </div>
113
+
114
+ )}
115
+
74
116
  </>
75
- );
117
+
118
+ )
119
+
76
120
  }
77
121
 
78
- export default function SideMenu({ loading, modules = [], callback, appSettings, collapsed }) {
79
- const { brandLogo, footerLogo, renderCustomHeader = () => {} } = appSettings;
122
+ export default function SideMenu({
123
+ loading,
124
+ modules = [],
125
+ callback,
126
+ appSettings,
127
+ collapsed,
128
+ }) {
129
+ const { brandLogo, footerLogo, renderCustomHeader = () => { } } = appSettings;
80
130
 
81
- let history = useHistory();
131
+ let history = useHistory();
82
132
 
83
- // const [selected, setSelected] = useState([1]);
133
+ const [selected, setSelected] = useState([1]);
84
134
 
85
- const [selectedKeys, setSelectedKeys] = useState([]);
86
- const [openKeys, setOpenKeys] = useState([]);
87
135
  const [menu, setMenu] = useState({});
88
136
 
89
137
  const { user = { locations: [] }, dispatch, state } = useContext(GlobalContext);
@@ -99,16 +147,11 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
99
147
  // }
100
148
  }, [user]);
101
149
 
102
- // Keep current menu item selected after reload or navigation
103
- useEffect(() => {
104
- const currentPath = history.location.pathname;
105
- setSelectedKeys([currentPath]);
106
- }, [history.location.pathname]);
107
-
108
150
  /**
109
151
  * Logout Function
110
152
  */
111
153
  async function handleLogout() {
154
+
112
155
  let dbPtrValue = appSettings.headers.db_ptr;
113
156
  const isEnvThemeTrue = process.env.REACT_APP_THEME === 'true';
114
157
 
@@ -119,9 +162,11 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
119
162
 
120
163
  // localStorage.clear();
121
164
 
122
- if (process.env.REACT_APP_PRIMARY_BACKEND === 'SQL') {
165
+ if (process.env.REACT_APP_PRIMARY_BACKEND === "SQL") {
166
+
123
167
  // const result = Users.logout()
124
168
  localStorage.clear();
169
+
125
170
 
126
171
  localStorage.setItem('db_ptr', dbPtrValue);
127
172
 
@@ -131,16 +176,16 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
131
176
  ...{ loggedCheckDone: true },
132
177
  };
133
178
 
134
- dispatch({ type: 'user', payload: userInfo });
179
+ dispatch({ type: "user", payload: userInfo });
135
180
 
136
- history.push('/login');
181
+ history.push("/login");
137
182
 
138
- message.success('You have logged out successfully.');
183
+ message.success("You have logged out successfully.");
139
184
  } else {
140
185
  FirebaseUtils.logout().then(() => {
141
- history.push('/login');
186
+ history.push("/login");
142
187
 
143
- message.success('You have logged out successfully.');
188
+ message.success("You have logged out successfully.");
144
189
  });
145
190
  }
146
191
  }
@@ -149,38 +194,15 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
149
194
  * Menu Click Function
150
195
  */
151
196
 
152
- // const onMenuClick = (menu, index) => {
153
- // setSelected([index]);
154
-
155
- // history.push(menu.path);
156
-
157
- // setMenu(menu);
158
-
159
- // callback();
160
- // };
161
-
162
197
  const onMenuClick = (menu, index) => {
163
- const key = menu.path || `menu-${menu.id || index}`;
164
- const parentKey = menu.parentKey;
165
-
166
- // Keep submenu highlighted
167
- setSelectedKeys([key]);
168
-
169
- // Keep parent open
170
- if (parentKey) {
171
- setOpenKeys([parentKey]);
172
- }
198
+ setSelected([index]);
173
199
 
174
200
  history.push(menu.path);
175
- setMenu(menu);
176
201
 
177
- if (callback) callback();
178
- };
202
+ setMenu(menu);
179
203
 
180
- const onOpenChange = (keys) => {
181
- setOpenKeys(keys);
204
+ callback();
182
205
  };
183
-
184
206
  /**
185
207
  * Function renders the footer logo
186
208
  *
@@ -188,14 +210,15 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
188
210
  */
189
211
  function renderFooter(footerLogo) {
190
212
  return (
191
- <div className={`sidebar-footer ${!collapsed ? 'open' : 'close'}`}>
192
- <img className="footer-logo" src={footerLogo} alt={'footer-logo'} />
213
+ <div className={`sidebar-footer ${!collapsed ? "open" : "close"}`}>
214
+ <img className="footer-logo" src={footerLogo} alt={"footer-logo"} />
193
215
  </div>
194
216
  );
195
217
  }
196
218
 
197
219
  let icon;
198
220
 
221
+
199
222
  let index = 0;
200
223
 
201
224
  useEffect(() => {
@@ -204,6 +227,7 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
204
227
  // document.documentElement.style.setProperty('--custom-text-color', state.theme.colors.colorText);
205
228
  }, [state.theme]);
206
229
 
230
+
207
231
  return (
208
232
  <div className="sidemenu">
209
233
  {loading ? (
@@ -211,19 +235,16 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
211
235
  <Skeleton.Avatar />
212
236
  <Skeleton.Button />
213
237
  {/* <Skeleton.Input /> */}
214
- </Space>
215
- ) : (
216
- <div
217
- className="intro"
218
- style={{ backgroundColor: state.theme.colors.leftSectionBackground, borderBottom: `2px solid ${state.theme.colors.borderColor}` }}
219
- >
238
+ </Space>) :
239
+
240
+ <div className="intro" style={{ backgroundColor: state.theme.colors.leftSectionBackground ,borderBottom: `2px solid ${state.theme.colors.borderColor}`}}>
220
241
  {/* Logo Bar */}
221
242
  <div className="logo-wrapper">
222
243
  {/* Changing the size of logo bar according to the value of collapsed */}
223
244
  <img
224
- className={`sidemenu-brand-logo ${!collapsed ? 'open' : 'close'}`}
245
+ className={`sidemenu-brand-logo ${!collapsed ? "open" : "close"}`}
225
246
  onClick={() => {
226
- history.push('/');
247
+ history.push("/");
227
248
  }}
228
249
  src={brandLogo}
229
250
  alt="Logo"
@@ -234,26 +255,25 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
234
255
  {/* If value of collapsed is true show version else not showing */}
235
256
 
236
257
  {!collapsed && process.env.REACT_APP_package_version && (
237
- <small
238
- style={{
239
- color: state.theme.colors.leftSectionColor,
240
- }}
241
- >
242
- {process.env.REACT_APP_package_version}
243
- </small>
244
- )}
258
+ <small style={{
259
+
260
+ color: state.theme.colors.leftSectionColor,
261
+ }}>{process.env.REACT_APP_package_version}</small>
262
+ )}
245
263
  </div>
246
264
  {/* Logo Bar Ends */}
247
265
 
248
266
  {/* If value of collapsed is true render header else not rendering */}
249
267
 
250
- {!collapsed ? renderCustomHeader() : ''}
268
+ {!collapsed ? renderCustomHeader() : ""}
269
+
251
270
  </div>
252
- )}
271
+ }
253
272
 
254
273
  {/* Intro Component */}
255
274
  {/* Intro Component Ends */}
256
275
 
276
+
257
277
  {/* Search for Queries */}
258
278
 
259
279
  {/* <div className="menu-search">
@@ -265,11 +285,15 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
265
285
 
266
286
  {/* Search for Queries Ends */}
267
287
 
268
- <div className={`menu-item ${!collapsed ? 'open' : 'close'}`} style={{ backgroundColor: state.theme.colors.leftSectionBackground }}>
288
+ <div className={`menu-item ${!collapsed ? "open" : "close"}`} style={{ backgroundColor: state.theme.colors.leftSectionBackground}}>
289
+
269
290
  {loading ? (
270
291
  <></>
271
292
  ) : (
293
+
294
+
272
295
  <Menu
296
+
273
297
  // selectedKeys={[selected]}
274
298
  // style={{ width: 256 }}
275
299
  // defaultSelectedKeys={selected}
@@ -277,12 +301,10 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
277
301
  inlineCollapsed={collapsed}
278
302
  mode="inline"
279
303
  theme={process.env.REACT_APP_THEME}
280
- selectedKeys={selectedKeys}
281
- openKeys={openKeys}
282
- onOpenChange={onOpenChange}
283
- style={{ backgroundColor: state.theme.colors.leftSectionBackground, color: state.theme.colors.leftSectionColor }}
284
- // theme={''}
304
+ style={{ backgroundColor: state.theme.colors.leftSectionBackground ,color:state.theme.colors.leftSectionColor}}
305
+ // theme={''}
285
306
  >
307
+
286
308
  {/* <Menu.Item
287
309
  onClick={() => {
288
310
  setSelected([1]);
@@ -302,6 +324,7 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
302
324
  />
303
325
  </Menu.Item> */}
304
326
 
327
+
305
328
  {/* {
306
329
  Menus.screenMenus(modules).map((menu, index) => {
307
330
 
@@ -309,7 +332,7 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
309
332
  })
310
333
  } */}
311
334
 
312
- {Menus.screenMenus(modules, 'order')
335
+ {Menus.screenMenus(modules, "order")
313
336
 
314
337
  .filter((record) => {
315
338
  icon = record;
@@ -331,133 +354,207 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
331
354
  .map((menu, index) => {
332
355
  // return <MenuItem menu={menu} index={index} />
333
356
 
334
- let sub_menus = menu && menu.sub_menus ? Menus.screenMenus(menu.sub_menus) : [];
357
+ let sub_menus =
358
+ menu && menu.sub_menus
359
+ ? Menus.screenMenus(menu.sub_menus)
360
+ : [];
335
361
 
336
362
  if (menu && sub_menus && sub_menus.length) {
363
+
337
364
  let randomIndex = parseInt(Math.random() * 10000000000);
338
365
 
339
366
  return (
367
+
340
368
  <SubMenu
369
+
341
370
  className="popup"
342
- style={{ color: state.theme.colors.leftSectionColor }}
343
- // key={`first-level-${randomIndex}-${menu.caption}`}
371
+ style={{ color:state.theme.colors.leftSectionColor}}
372
+
373
+ key={`first-level-${randomIndex}-${menu.caption}`}
344
374
 
345
- key={menu.path || menu.caption}
346
375
  title={
376
+
347
377
  <>
378
+
348
379
  <CollapsedIconMenu
380
+
349
381
  menu={menu}
382
+
350
383
  caption={menu.caption}
384
+
351
385
  icon={menu.icon_name || 'fa-solid fas fa-user'}
386
+
387
+
352
388
  collapsed={collapsed}
389
+
353
390
  />
391
+
392
+
393
+
354
394
  </>
395
+
355
396
  }
397
+
356
398
  >
357
399
  {sub_menus.map((submenu, innerIndex) => {
358
400
  let randomIndex = parseInt(Math.random() * 10000000000);
359
401
 
360
- let third_menus = submenu && submenu.sub_menus ? Menus.screenMenus(submenu.sub_menus) : [];
402
+ let third_menus =
403
+ submenu && submenu.sub_menus
404
+ ? Menus.screenMenus(submenu.sub_menus)
405
+ : [];
361
406
 
362
407
  if (third_menus && third_menus.length) {
363
408
  return (
364
409
  <SubMenu
410
+
365
411
  className="popup"
366
- // key={`second-level-${randomIndex}-${submenu.id}`}
367
412
 
368
- key={submenu.path || submenu.caption}
413
+ key={`second-level-${randomIndex}-${submenu.id}`}
414
+
369
415
  title={
416
+
370
417
  <span>
418
+
371
419
  <CollapsedIconMenu
420
+
372
421
  menu={menu}
422
+
373
423
  caption={submenu.caption}
424
+
374
425
  icon={submenu.icon_name || 'fa-solid fas fa-user'}
426
+
375
427
  collapsed={collapsed}
428
+
376
429
  />
430
+
431
+
377
432
  </span>
378
433
  }
379
434
  >
380
435
  {third_menus.map((menu) => {
381
- let randomIndex = parseInt(Math.random() * 10000000000);
436
+ let randomIndex = parseInt(
437
+ Math.random() * 10000000000
438
+ );
382
439
 
383
440
  return (
384
441
  <Menu.Item
385
- // onClick={() => {
386
- // onMenuClick(menu, index);
387
- // }}
388
442
  onClick={() => {
389
- onMenuClick({ ...menu, parentKey: submenu.path || submenu.caption }, index);
443
+ onMenuClick(menu, index);
390
444
  }}
391
- // key={`second-level-${randomIndex}-${index}`}
392
-
393
- key={menu.path || menu.caption}
445
+ key={`second-level-${randomIndex}-${index}`}
394
446
  >
447
+
395
448
  <CollapsedIconMenu
449
+
396
450
  menu={menu}
451
+
397
452
  caption={menu.caption}
453
+
398
454
  icon={menu.icon_name || 'fa-solid fas fa-user'}
455
+
456
+
399
457
  collapsed={collapsed}
458
+
400
459
  />
460
+
401
461
  </Menu.Item>
402
462
  );
403
463
  })}
404
464
  </SubMenu>
405
465
  );
406
466
  } else {
407
- let randomIndex = parseInt(Math.random() * 10000000000);
467
+ let randomIndex = parseInt(
468
+ Math.random() * 10000000000
469
+ );
408
470
 
409
471
  return (
410
472
  <Menu.Item
411
- // onClick={() => {
412
- // onMenuClick(submenu, index);
413
- // }}
414
473
  onClick={() => {
415
- onMenuClick({ ...submenu, parentKey: menu.path || menu.caption }, index);
474
+ onMenuClick(submenu, index);
416
475
  }}
417
- // key={`first-level-${randomIndex}-${innerIndex}`}
418
- key={submenu.path || submenu.caption}
476
+ key={`first-level-${randomIndex}-${innerIndex}`}
419
477
  >
478
+
420
479
  <CollapsedIconMenu
480
+
421
481
  menu={menu}
482
+
422
483
  caption={submenu.caption}
484
+
423
485
  icon={submenu.icon_name || 'fa-solid fas fa-user'}
486
+
487
+
424
488
  collapsed={collapsed}
489
+
425
490
  />
491
+
426
492
  </Menu.Item>
493
+
427
494
  );
495
+
428
496
  }
497
+
429
498
  })}
499
+
430
500
  </SubMenu>
501
+
431
502
  );
432
503
  } else {
433
504
  let randomIndex = parseInt(Math.random() * 10000000000);
434
505
 
435
506
  return (
436
- <Menu.Item
437
- // onClick={() => {
438
- // onMenuClick(menu, index);
439
- // }}
440
507
 
508
+ <Menu.Item
441
509
  onClick={() => {
442
- onMenuClick({ ...menu, parentKey: menu.path || menu.caption }, index);
510
+ onMenuClick(menu, index);
443
511
  }}
444
- // key={`${menu.id}-${randomIndex}`}
445
- key={menu.path || menu.caption}
512
+ key={`${menu.id}-${randomIndex}`}
446
513
  >
447
- <CollapsedIconMenu menu={menu} caption={menu.caption} icon={menu.icon_name || 'fa-solid fas fa-user'} collapsed={collapsed} />
514
+
515
+ <CollapsedIconMenu
516
+
517
+ menu={menu}
518
+
519
+ caption={menu.caption}
520
+
521
+ icon={menu.icon_name || 'fa-solid fas fa-user'}
522
+
523
+
524
+ collapsed={collapsed}
525
+
526
+ />
527
+
528
+
448
529
  </Menu.Item>
530
+
449
531
  );
450
532
  }
451
533
  })}
452
534
 
453
- {loading ? (
454
- <div class="skeleton-wrapper"></div>
455
- ) : (
456
- <Menu.Item onClick={handleLogout} key="logout-button">
457
- <CollapsedIconMenu caption="Logout" icon="fa-solid fas fa-user" collapsed={collapsed} />
535
+
536
+ {
537
+ loading ? <div class="skeleton-wrapper"></div> : <Menu.Item onClick={handleLogout} key="logout-button">
538
+
539
+ <CollapsedIconMenu
540
+
541
+ caption="Logout"
542
+
543
+ icon='fa-solid fas fa-user'
544
+
545
+ collapsed={collapsed}
546
+
547
+ />
548
+
549
+
458
550
  </Menu.Item>
459
- )}
551
+ }
552
+
553
+
554
+
555
+
460
556
  </Menu>
557
+
461
558
  )}
462
559
 
463
560
  {/* Footer Logo */}
@@ -473,14 +570,16 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
473
570
  * sub menus
474
571
  */
475
572
  function MenuItem({ menu, index, history }) {
573
+
476
574
  function renderMenus({ menu, index }) {
477
575
  let sub_menus = [];
478
576
 
479
577
  if (menu.sub_menus) {
480
- sub_menus = Menus.screenMenus(menu.sub_menus);
578
+ sub_menus = Menus.screenMenus(menu.sub_menus)
481
579
  }
482
580
 
483
581
  if (menu && sub_menus && sub_menus.length) {
582
+
484
583
  // return 'hello';
485
584
  return (
486
585
  <SubMenu
@@ -492,7 +591,9 @@ function MenuItem({ menu, index, history }) {
492
591
  }
493
592
  >
494
593
  {menu.sub_menus.map((menu, index) => {
495
- return <MenuItem menu={menu} index={menu.id} />;
594
+ return (
595
+ <MenuItem menu={menu} index={menu.id} />
596
+ );
496
597
  })}
497
598
  </SubMenu>
498
599
  );
@@ -510,5 +611,7 @@ function MenuItem({ menu, index, history }) {
510
611
  }
511
612
  }
512
613
 
614
+
513
615
  return renderMenus({ menu, index });
514
- }
616
+
617
+ }