imbric-theme 0.2.7 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,84 +1,216 @@
1
1
  export const subItems = {
2
2
 
3
- subItemsActivity: [
3
+ subItemsLegal: [
4
4
  {
5
- href: '/activity/taxi',
6
- title: 'Taxi',
5
+ href: 'https://www.imbric.com/privacypolicy/',
6
+ title: 'Privacy policy',
7
7
  },
8
8
  {
9
- href: '/activity/parking',
10
- title: 'Parking',
9
+ href: 'https://www.imbric.com/general-terms/',
10
+ title: 'General terms',
11
11
  },
12
12
  {
13
- href: '/activity/sharing',
14
- title: 'Sharing',
13
+ href: 'https://www.imbric.com/particular-terms/',
14
+ title: 'Particular terms',
15
15
  },
16
16
  ],
17
17
 
18
- subItemsStaff: [
19
- {
20
- href: '/staff/taxi',
21
- title: 'People Add',
18
+ }
19
+
20
+ export const options = {
21
+ itemsMenu: [
22
+ {
23
+ text: "Home",
24
+ icon: "home",
25
+ href: "/home",
26
+ view: true,
27
+ },
28
+ {
29
+ text: "Activity",
30
+ icon: "activity",
31
+ href: "/home",
32
+ view: true,
33
+ submenu: [
34
+ {
35
+ text: "Taxi",
36
+ href: "/taxi",
37
+ view: true,
38
+ },
39
+ {
40
+ text: "Parking",
41
+ href: "/parking",
42
+ view: true,
43
+ },
44
+ {
45
+ text: "Sharing",
46
+ href: "/sharing",
47
+ view: true,
48
+ },
49
+ {
50
+ text: "Public transport",
51
+ href: "/publictransport ",
52
+ view: true,
53
+ },
54
+ {
55
+ text: "Kilometer sheet",
56
+ href: "/kilometersheet",
57
+ view: true,
58
+ }
59
+ ],
60
+ },
61
+ {
62
+ text: "Staff",
63
+ icon: "staff",
64
+ href: "/home",
65
+ view: true,
66
+ submenu: [
67
+ {
68
+ text: "People Add",
69
+ href: "/staff/taxi",
70
+ view: true,
71
+ },
72
+ {
73
+ text: "People View",
74
+ href: "/staff/taxi",
75
+ view: true,
76
+ },
77
+ {
78
+ text: "People Group",
79
+ href: "/staff/taxi",
80
+ view: true,
81
+ },
82
+
83
+ ],
22
84
  },
23
85
  {
24
- href: '/staff/parking',
25
- title: 'People View',
86
+ text: "Services",
87
+ icon: "travelPrograms",
88
+ href: "/home",
89
+ view: true,
90
+
26
91
  },
27
92
  {
28
- href: '/staff/sharing',
29
- title: 'People Group',
30
- },
31
- ],
93
+ text: "Billing",
94
+ icon: "billing",
95
+ href: "/home",
96
+ view: true,
32
97
 
33
- subItemsSetting: [
34
- {
35
- href: '/staff/taxi',
36
- title: 'People Add',
37
98
  },
38
99
  {
39
- href: '/staff/parking',
40
- title: 'People View',
100
+ text: "Setting",
101
+ icon: "setting",
102
+ href: "/home",
103
+ view: true,
104
+ submenu: [
105
+ {
106
+ text: "Company",
107
+ href: "/company/edit",
108
+ view: true,
109
+ },
110
+ {
111
+ text: "Wallet",
112
+ href: "/company/wallet",
113
+ view: true,
114
+ },
115
+
116
+ ],
117
+
41
118
  },
42
119
  {
43
- href: '/staff/sharing',
44
- title: 'People Group',
45
- },
46
- ],
120
+ text: "Order Taxi",
121
+ icon: "orderTaxi",
122
+ href: "/home",
123
+ view: true,
47
124
 
48
- subItemsPermissions: [
49
- {
50
- href: '/permissions/managestaff',
51
- title: 'Permissions',
52
125
  },
53
- ],
54
-
55
- subItemsAnalytics: [
56
126
  {
57
- href: '/analytics/dashboard',
58
- title: 'Dashboard',
127
+ text: "Dashboards",
128
+ icon: "dashboardsUwa",
129
+ href: "/home",
130
+ view: true,
131
+
59
132
  },
60
133
  {
61
- href: '/analytics/taxi',
62
- title: 'Taxi',
134
+ text: "Projects",
135
+ icon: "projectsUwa",
136
+ href: "/home",
137
+ view: true,
138
+
63
139
  },
64
140
  {
65
- href: '/analytics/tollsparking',
66
- title: 'Parking',
67
- },
68
- ],
141
+ text: "Permissions",
142
+ icon: "permissions",
143
+ href: "/home",
144
+ view: true,
145
+ submenu: [
146
+ {
147
+ text: "Permissions",
148
+ href: "/permissions/managestaff",
149
+ view: true,
150
+ },
151
+
152
+ ],
153
+ },
154
+ {
155
+ text: "Analytics",
156
+ icon: "analytics",
157
+ href: "/home",
158
+ view: true,
159
+ submenu: [
160
+ {
161
+ text: "Dashboard",
162
+ href: "/analytics/dashboard",
163
+ view: true,
164
+ },
165
+ {
166
+ text: "Taxi",
167
+ href: "/analytics/taxi",
168
+ view: true,
169
+ },
170
+ {
171
+ text: "Parking",
172
+ href: "/analytics/tollsparking",
173
+ view: true,
174
+ },
175
+ ],
176
+ },
177
+ {
178
+ text: "Legal",
179
+ icon: "legal",
180
+ href: "/home",
181
+ view: true,
182
+ submenu: [
183
+ {
184
+ text: "Privacy policy",
185
+ href: "/legal/dashboard",
186
+ view: true,
187
+ },
188
+ {
189
+ text: "General terms",
190
+ href: "/legal/taxi",
191
+ view: true,
192
+ },
193
+ {
194
+ text: "Particular terms",
195
+ href: "/legal/tollsparking",
196
+ view: true,
197
+ },
198
+ ],
69
199
 
70
- subItemsLegal: [
71
- {
72
- href: 'https://www.imbric.com/privacypolicy/',
73
- title: 'Privacy policy',
74
200
  },
75
201
  {
76
- href: 'https://www.imbric.com/general-terms/',
77
- title: 'General terms',
202
+ text: "User Guide",
203
+ icon: "info",
204
+ href: "/home",
205
+ view: true,
206
+
78
207
  },
79
208
  {
80
- href: 'https://www.imbric.com/particular-terms/',
81
- title: 'Particular terms',
209
+ text: "My profile",
210
+ icon: "profile",
211
+ href: "/home",
212
+ view: true,
213
+
82
214
  },
83
215
  ],
84
216
 
@@ -1,3 +1,4 @@
1
1
  export { default, Sidebar } from './Sidebar'
2
- export { subItems } from './constants'
2
+ export { subItems, options } from './constants'
3
3
  export { default as styles } from './Sidebar.module.css'
4
+ export { default as SidebarCss } from './Sidebar.css'
@@ -0,0 +1,121 @@
1
+ import React, { useState } from 'react'
2
+ import PropTypes from 'prop-types'
3
+
4
+ import styles from './ItemMenu.module.css'
5
+ import { options } from './constants'
6
+ import withStyles from '../../hocs/withStyles'
7
+
8
+ import Icon from '../../atoms/Icon'
9
+
10
+ export const ItemMenu = ({ children, getStyles, size, icon, color, background, subMenu, itemSubmenu }) => {
11
+
12
+ //create initial menuCollapse state using useState hook
13
+ const [subMenuCollapse, setSubMenuCollapse] = useState(false)
14
+
15
+ //create a custom function that will change menucollapse state from false to true and true to false
16
+ const subMenuIconClick = () => {
17
+ //condition checking to change state from true to false and vice versa
18
+ subMenuCollapse ? setSubMenuCollapse(false) : setSubMenuCollapse(true);
19
+ };
20
+
21
+
22
+ if (!subMenu) {
23
+ return (
24
+ <>
25
+ <li className={getStyles('pro-menu-item')}>
26
+
27
+ <div className={getStyles('pro-inner-item')}>
28
+
29
+ <span className={getStyles('pro-icon-wrapper')}>
30
+
31
+ <span className={getStyles('pro-icon')}>
32
+ <Icon
33
+ size={size}
34
+ name={icon}
35
+ color={color}
36
+ background={background}
37
+ onClick={function noRefCheck() { }}
38
+ />
39
+ </span>
40
+
41
+ </span>
42
+
43
+ <span className={getStyles('pro-item-content', { 'color': color })}>{children}</span>
44
+
45
+ </div>
46
+
47
+ </li>
48
+ </>
49
+ )
50
+ } else {
51
+ return (
52
+ <>
53
+ <li className={getStyles('pro-menu-item', 'pro-sub-menu', { 'open': subMenuCollapse })} title="Home" href="/">
54
+
55
+ <div className={getStyles('pro-inner-item')} onClick={subMenuIconClick}>
56
+
57
+ <span className={getStyles('pro-icon-wrapper')}>
58
+
59
+ <span className={getStyles('pro-icon')}>
60
+ <Icon
61
+ size={size}
62
+ name={icon}
63
+ color={color}
64
+ background={background}
65
+ onClick={function noRefCheck() { }}
66
+ />
67
+ </span>
68
+
69
+ </span>
70
+
71
+ <span className={getStyles('pro-item-content', { 'color': color })}>{children}</span>
72
+
73
+ <span className={getStyles('pro-arrow-wrapper')}>
74
+ <span className={getStyles('pro-arrow')}></span>
75
+ </span>
76
+
77
+ </div>
78
+
79
+ <div className={getStyles('react-slidedown', 'pro-inner-list-item', { 'closed': !subMenuCollapse })}>
80
+ <div>
81
+ <ul>
82
+
83
+ {itemSubmenu.map((item) => (
84
+ <li className={getStyles('pro-menu-item')} href={item.href}>
85
+ <div className={getStyles('pro-inner-item')} role="button">
86
+ <span className={getStyles('pro-item-content')}>{item.text}</span></div>
87
+ </li>
88
+ ))}
89
+ </ul>
90
+ </div>
91
+ </div>
92
+
93
+ </li>
94
+ </>
95
+ )
96
+ }
97
+
98
+
99
+ }
100
+
101
+ ItemMenu.propTypes = {
102
+ children: PropTypes.node.isRequired,
103
+ getStyles: PropTypes.func.isRequired,
104
+ subMenu: PropTypes.bool.isRequired,
105
+ icon: PropTypes.oneOf(options.icons),
106
+ size: PropTypes.oneOf(options.sizes),
107
+ color: PropTypes.oneOf(options.colors),
108
+ background: PropTypes.oneOf(options.backgrounds),
109
+ }
110
+
111
+ ItemMenu.defaultProps = {
112
+ subMenu: false,
113
+ icon: 'home',
114
+ size: 'lg',
115
+ color: 'highlight',
116
+ background: 'transparent',
117
+ getStyles: () => { },
118
+ }
119
+
120
+
121
+ export default withStyles(styles)(ItemMenu)