l-min-components 1.0.244 → 1.0.248

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,6 +1,6 @@
1
1
  {
2
2
  "name": "l-min-components",
3
- "version": "1.0.244",
3
+ "version": "1.0.248",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "src/assets",
Binary file
@@ -24,9 +24,26 @@ export const LeftLayout = styled.div`
24
24
  export const CenterLayout = styled.div`
25
25
  width: 100%;
26
26
  /* max-width: 900px; */
27
- margin: ${({ isOpen }) => (isOpen ? "0px 252px 0 336px" : "0px 252px 0 145px")};
27
+ margin: ${({ isOpen }) =>
28
+ isOpen ? "0px 252px 0 336px" : "0px 252px 0 145px"};
28
29
  overflow-y: scroll;
29
30
  transition: all 0.3s;
31
+ scrollbar-width: thin;
32
+ /* "auto" or "thin" depending on browser support */
33
+ scrollbar-color: transparent transparent;
34
+ /* color values for thumb and track */
35
+
36
+ &::-webkit-scrollbar {
37
+ width: 6px;
38
+ /* adjust as needed */
39
+ background-color: transparent;
40
+ /* color value for track */
41
+ }
42
+
43
+ &::-webkit-scrollbar-thumb {
44
+ background-color: transparent;
45
+ /* color value for thumb */
46
+ }
30
47
  `;
31
48
 
32
49
  export const RightLayout = styled.div`
@@ -18,81 +18,77 @@ import { useLocation, useNavigate } from "react-router-dom";
18
18
  *
19
19
  */
20
20
  const AccountDropdown = (props) => {
21
- const [personalAccountData, setPersonalAccountData] = useState([]);
22
- const [developerAccountData, setDeveloperAccountData] = useState([]);
23
- const [instructorAccountData, setInstructorAccountData] = useState([]);
24
- const [enterpriseAccountData, setEnterpriseAccountData] = useState([]);
25
21
  // const [selectedAccount, setSelectedAccount] = useState();
26
22
  const navigate = useNavigate();
27
23
  const { pathname } = useLocation();
28
24
  useEffect(() => {}, [pathname]);
29
- useEffect(() => {
30
- if (props?.data?.data) {
31
- let personalArray = [];
32
- let developerArray = [];
33
- let instructorArray = [];
34
- let enterpriseArray = [];
35
- const cookies = document.cookie;
36
- const cookieArray = cookies.split(";");
37
- let activeDeveloperAccount;
38
- for (let i = 0; i < cookieArray.length; i++) {
39
- const cookie = cookieArray[i].trim();
40
- if (cookie.startsWith("activeDeveloperAccount=")) {
41
- activeDeveloperAccount = cookie.substring(
42
- "activeDeveloperAccount=".length,
43
- cookie.length
44
- );
45
- break;
46
- }
47
- }
48
- props?.data?.data?.results?.map((accountItem, idx) => {
49
- if (
50
- accountItem?.type === "PERSONAL" &&
51
- !personalAccountData?.includes(accountItem)
52
- ) {
53
- personalArray.push(accountItem);
54
- setPersonalAccountData(personalArray);
55
- }
56
- if (
57
- accountItem?.type === "DEVELOPER" &&
58
- !developerAccountData?.includes(accountItem)
59
- ) {
60
- developerArray.push(accountItem);
61
- setDeveloperAccountData(developerArray);
62
- }
63
- if (
64
- accountItem?.type === "INSTRUCTOR" &&
65
- !instructorAccountData?.includes(accountItem)
66
- ) {
67
- instructorArray.push(accountItem);
68
- setInstructorAccountData(instructorArray);
69
- }
70
- if (
71
- accountItem?.type === "ENTERPRISE" &&
72
- !enterpriseAccountData?.includes(accountItem)
73
- ) {
74
- enterpriseArray.push(accountItem);
75
- setEnterpriseAccountData(enterpriseArray);
76
- }
77
- });
25
+ // useEffect(() => {
26
+ // if (props?.data?.data) {
27
+ // let personalArray = [];
28
+ // let developerArray = [];
29
+ // let instructorArray = [];
30
+ // let enterpriseArray = [];
31
+ // const cookies = document.cookie;
32
+ // const cookieArray = cookies.split(";");
33
+ // let activeDeveloperAccount;
34
+ // for (let i = 0; i < cookieArray.length; i++) {
35
+ // const cookie = cookieArray[i].trim();
36
+ // if (cookie.startsWith("activeDeveloperAccount=")) {
37
+ // activeDeveloperAccount = cookie.substring(
38
+ // "activeDeveloperAccount=".length,
39
+ // cookie.length
40
+ // );
41
+ // break;
42
+ // }
43
+ // }
44
+ // props?.data?.data?.results?.map((accountItem, idx) => {
45
+ // if (
46
+ // accountItem?.type === "PERSONAL" &&
47
+ // !props?.personalAccountData?.includes(accountItem)
48
+ // ) {
49
+ // personalArray.push(accountItem);
50
+ // props?.setPersonalAccountData(personalArray);
51
+ // }
52
+ // if (
53
+ // accountItem?.type === "DEVELOPER" &&
54
+ // !props?.developerAccountData?.includes(accountItem)
55
+ // ) {
56
+ // developerArray.push(accountItem);
57
+ // props?.setDeveloperAccountData(developerArray);
58
+ // }
59
+ // if (
60
+ // accountItem?.type === "INSTRUCTOR" &&
61
+ // !props?.instructorAccountData?.includes(accountItem)
62
+ // ) {
63
+ // instructorArray.push(accountItem);
64
+ // props?.setInstructorAccountData(instructorArray);
65
+ // }
66
+ // if (
67
+ // accountItem?.type === "ENTERPRISE" &&
68
+ // !props?.enterpriseAccountData?.includes(accountItem)
69
+ // ) {
70
+ // enterpriseArray.push(accountItem);
71
+ // props?.setEnterpriseAccountData(enterpriseArray);
72
+ // }
73
+ // });
78
74
 
79
- if (pathname?.includes("personal")) {
80
- props?.setSelectedAccount(personalArray[0]);
81
- }
82
- if (window.location.host?.includes("developer")) {
83
- props?.setSelectedAccount(
84
- developerArray.find((item) => item.id === activeDeveloperAccount) ??
85
- {}
86
- );
87
- }
88
- if (pathname?.includes("instructor")) {
89
- props?.setSelectedAccount(instructorArray[0]);
90
- }
91
- if (pathname?.includes("enterprise")) {
92
- props?.setSelectedAccount(enterpriseArray[0]);
93
- }
94
- }
95
- }, [props?.data?.data]);
75
+ // if (pathname?.includes("personal")) {
76
+ // props?.setSelectedAccount(personalArray[0]);
77
+ // }
78
+ // if (window.location.host?.includes("developer")) {
79
+ // props?.setSelectedAccount(
80
+ // developerArray.find((item) => item.id === activeDeveloperAccount) ??
81
+ // item
82
+ // );
83
+ // }
84
+ // if (pathname?.includes("instructor")) {
85
+ // props?.setSelectedAccount(instructorArray[0]);
86
+ // }
87
+ // if (pathname?.includes("enterprise")) {
88
+ // props?.setSelectedAccount(enterpriseArray[0]);
89
+ // }
90
+ // }
91
+ // }, [props?.data?.data]);
96
92
  useEffect(() => {
97
93
  if (props?.selectedAccount?.type === "DEVELOPER") {
98
94
  const date = new Date();
@@ -113,7 +109,7 @@ const AccountDropdown = (props) => {
113
109
  <AccountDropdownHeader>
114
110
  <div className="img_div">
115
111
  <img
116
- src={props?.selectedAccount?.profile_photo || props?.avatar}
112
+ src={props?.selectedAccount?.profile_photo?.url || props?.avatar}
117
113
  alt="account photo"
118
114
  />
119
115
  </div>
@@ -162,10 +158,10 @@ const AccountDropdown = (props) => {
162
158
  ))}
163
159
  </div>
164
160
  )} */}
165
- {developerAccountData.length > 0 && (
161
+ {props?.developerAccountData.length > 0 && (
166
162
  <div>
167
163
  <h3>Developer account</h3>
168
- {developerAccountData?.map((developerItem, idx) => (
164
+ {props?.developerAccountData?.map((developerItem, idx) => (
169
165
  <div
170
166
  className="account-info"
171
167
  onClick={() => {
@@ -187,22 +183,22 @@ const AccountDropdown = (props) => {
187
183
  >
188
184
  <div className="avatar-container">
189
185
  <img
190
- src={developerItem?.profile_photo || props.avatar}
186
+ src={developerItem?.profile_photo?.url || props.avatar}
191
187
  alt="account photo"
192
188
  />
193
189
  </div>
194
190
  <div className="account-details">
195
191
  <h1> {developerItem?.display_name || props.accountName}</h1>
196
- <span>{props.notificationCount} </span>
192
+ {/* <span>{props.notificationCount} </span> */}
197
193
  </div>
198
194
  </div>
199
195
  ))}
200
196
  </div>
201
197
  )}
202
- {instructorAccountData?.length > 0 && (
198
+ {props?.instructorAccountData?.length > 0 && (
203
199
  <div>
204
200
  <h3>Instructor account</h3>
205
- {instructorAccountData?.map((instructorItem, idx) => (
201
+ {props?.instructorAccountData?.map((instructorItem, idx) => (
206
202
  <div
207
203
  className="account-info"
208
204
  onClick={() => {
@@ -217,7 +213,7 @@ const AccountDropdown = (props) => {
217
213
  >
218
214
  <div className="avatar-container">
219
215
  <img
220
- src={instructorItem?.profile_photo || props.avatar}
216
+ src={instructorItem?.profile_photo?.url || props.avatar}
221
217
  alt="account photo"
222
218
  />
223
219
  </div>
@@ -232,10 +228,10 @@ const AccountDropdown = (props) => {
232
228
  ))}
233
229
  </div>
234
230
  )}
235
- {enterpriseAccountData?.length > 0 && (
231
+ {props?.enterpriseAccountData?.length > 0 && (
236
232
  <div>
237
233
  <h3>Enterprise account</h3>
238
- {enterpriseAccountData?.map((enterpriseItem, idx) => (
234
+ {props?.enterpriseAccountData?.map((enterpriseItem, idx) => (
239
235
  <div
240
236
  className="account-info"
241
237
  onClick={() => {
@@ -250,7 +246,7 @@ const AccountDropdown = (props) => {
250
246
  >
251
247
  <div className="avatar-container">
252
248
  <img
253
- src={enterpriseItem?.profile_photo || props.avatar}
249
+ src={enterpriseItem?.profile_photo?.url || props.avatar}
254
250
  alt="account photo"
255
251
  />
256
252
  </div>
@@ -269,7 +265,13 @@ const AccountDropdown = (props) => {
269
265
  </AccountDropdownBody>
270
266
 
271
267
  <AccountDropdownFooter>
272
- <button>
268
+ <button
269
+ onClick={() => {
270
+ window.location.href =
271
+ "https://559staging.learngual.com/auth/sign-up/developer/organization-details";
272
+ }}
273
+ style={{ cursor: "pointer" }}
274
+ >
273
275
  <AddIcon /> Add Account
274
276
  </button>
275
277
  </AccountDropdownFooter>
@@ -22,7 +22,7 @@ import {
22
22
  import useHeader from "./getHeaderDetails";
23
23
  import { OutletContext } from "..";
24
24
  import { useLocation } from "react-router-dom";
25
-
25
+ import usFlag from "../../assets/images/18165.jpg";
26
26
  /**
27
27
  * @param {{
28
28
  * type: string,
@@ -33,7 +33,11 @@ import { useLocation } from "react-router-dom";
33
33
  *
34
34
  */
35
35
  const HeaderComponent = (props) => {
36
- const [selected, setSelected] = useState("ES");
36
+ const [personalAccountData, setPersonalAccountData] = useState([]);
37
+ const [developerAccountData, setDeveloperAccountData] = useState([]);
38
+ const [instructorAccountData, setInstructorAccountData] = useState([]);
39
+ const [enterpriseAccountData, setEnterpriseAccountData] = useState([]);
40
+ const [languageDropdown, setLanguageDropdown] = useState();
37
41
  const [isOpen, setIsOpen] = useState(false);
38
42
  const [searchResultOpen, setSearchResultOpen] = useState(false);
39
43
  const {
@@ -75,40 +79,44 @@ const HeaderComponent = (props) => {
75
79
  let developerArray = [];
76
80
  let instructorArray = [];
77
81
  let enterpriseArray = [];
78
- props?.data?.data?.results?.map((accountItem, idx) => {
82
+ userAccountsDetail?.data?.results?.map((accountItem, idx) => {
79
83
  if (
80
84
  accountItem?.type === "PERSONAL" &&
81
85
  !personalAccountData?.includes(accountItem)
82
86
  ) {
83
87
  personalArray.push(accountItem);
88
+ setPersonalAccountData(personalArray);
84
89
  }
85
- if (
86
- accountItem?.type === "DEVELOPER" &&
87
- !developerAccountData?.includes(accountItem)
88
- ) {
90
+ if (accountItem?.type === "DEVELOPER") {
89
91
  developerArray.push(accountItem);
92
+ setDeveloperAccountData(developerArray);
90
93
  }
91
94
  if (
92
95
  accountItem?.type === "INSTRUCTOR" &&
93
96
  !instructorAccountData?.includes(accountItem)
94
97
  ) {
95
98
  instructorArray.push(accountItem);
99
+ setInstructorAccountData(instructorArray);
96
100
  }
97
101
  if (
98
102
  accountItem?.type === "ENTERPRISE" &&
99
103
  !enterpriseAccountData?.includes(accountItem)
100
104
  ) {
101
105
  enterpriseArray.push(accountItem);
106
+ setEnterpriseAccountData(enterpriseArray);
102
107
  }
103
108
  });
104
109
 
105
110
  if (pathname?.includes("personal")) {
106
111
  setSelectedAccount(personalArray[0]);
107
112
  }
108
- if (window.location.host?.includes("developer")) {
113
+ if (
114
+ window.location.host?.includes("developer") ||
115
+ window.location.host?.includes("localhost")
116
+ ) {
109
117
  setSelectedAccount(
110
- developerArray.find((item) => item.id === activeDeveloperAccount) ??
111
- {}
118
+ developerArray.find((item) => item?.id === activeDeveloperAccount) ??
119
+ item
112
120
  );
113
121
  }
114
122
  if (pathname?.includes("instructor")) {
@@ -179,33 +187,43 @@ const HeaderComponent = (props) => {
179
187
  )}
180
188
  </SearchInputGroup>
181
189
 
182
- <CountryFlagGroup>
183
- <ReactFlagsSelect
184
- // disabled
185
- // countries={["US", "GB", "FR", "DE", "IT"]}
186
- countries={["US",]}
187
- selected={"US"}
188
- onSelect={(code) => setSelected(code)}
189
- showOptionLabel={true}
190
- />
191
- <ArrowDownIcon />
192
- </CountryFlagGroup>
193
-
194
- <UserProfile onClick={() => setIsOpen(!isOpen)}>
195
- <div className="user-img-container">
196
- <img src={props.avatar} alt="profile" />
197
- </div>
198
- <div className="user-info-container">
199
- <h5>
200
- {selectedAccount?.display_name ||
201
- selectedAccount?.metadata?.organization_name}
202
- </h5>
203
- <h6 style={{ textTransform: "capitalize" }}>
204
- {selectedAccount?.type}
205
- </h6>
190
+ <div className="language_dropdown">
191
+ <div
192
+ className="drop_holder"
193
+ onClick={() => setLanguageDropdown(!languageDropdown)}
194
+ >
195
+ <img src={usFlag} alt="" />
196
+ <ArrowDownIcon />
206
197
  </div>
207
- <ArrowDownIcon width={16} height={10} />
208
- </UserProfile>
198
+ {languageDropdown && (
199
+ <ul className="dropdown_list">
200
+ <li onClick={() => setLanguageDropdown()}>
201
+ <img src={usFlag} alt="" /> <span>English</span>
202
+ </li>
203
+ </ul>
204
+ )}
205
+ </div>
206
+
207
+ {selectedAccount && (
208
+ <UserProfile onClick={() => setIsOpen(!isOpen)}>
209
+ <div className="user-img-container">
210
+ <img
211
+ src={selectedAccount?.profile_photo?.url || avatar}
212
+ alt="profile"
213
+ />
214
+ </div>
215
+ <div className="user-info-container">
216
+ <h5>
217
+ {selectedAccount?.display_name ||
218
+ selectedAccount?.metadata?.organization_name}
219
+ </h5>
220
+ <h6 style={{ textTransform: "capitalize" }}>
221
+ {selectedAccount?.type?.toLowerCase()}
222
+ </h6>
223
+ </div>
224
+ <ArrowDownIcon width={16} height={10} />
225
+ </UserProfile>
226
+ )}
209
227
  </NavGroup>
210
228
 
211
229
  {isOpen && (
@@ -221,6 +239,14 @@ const HeaderComponent = (props) => {
221
239
  data={userAccountsDetail}
222
240
  selectedAccount={selectedAccount}
223
241
  setSelectedAccount={setSelectedAccount}
242
+ developerAccountData={developerAccountData}
243
+ setDeveloperAccountData={setDeveloperAccountData}
244
+ personalAccountData={personalAccountData}
245
+ setPersonalAccountData={setPersonalAccountData}
246
+ instructorAccountData={instructorAccountData}
247
+ setInstructorAccountData={setInstructorAccountData}
248
+ enterpriseAccountData={enterpriseAccountData}
249
+ setEnterpriseAccountData={setEnterpriseAccountData}
224
250
  />
225
251
  )}
226
252
  </Navbar>
@@ -13,9 +13,51 @@ export const Navbar = styled.nav`
13
13
  `;
14
14
 
15
15
  export const NavGroup = styled.div`
16
- width: 40%;
16
+ width: 44%;
17
17
  display: flex;
18
18
  justify-content: end;
19
+ .language_dropdown {
20
+ display: flex;
21
+ align-items: center;
22
+ position: relative;
23
+ .drop_holder {
24
+ display: flex;
25
+ align-items: center;
26
+ border: 1px solid rgba(173, 178, 178, 1);
27
+ padding: 9px 12px;
28
+ border-radius: 37px;
29
+ cursor: pointer;
30
+ img {
31
+ width: 24px;
32
+ height: 16px;
33
+ margin-right: 10px;
34
+ }
35
+ }
36
+ .dropdown_list {
37
+ position: absolute;
38
+ top: 40px;
39
+ width: fit-content;
40
+ background: white;
41
+ padding: 5px;
42
+ border-radius: 5px;
43
+ li {
44
+ list-style-type: none;
45
+ display: flex;
46
+ align-items: center;
47
+ cursor: pointer;
48
+ padding: 5px 10px;
49
+ font-size: 12px;
50
+ &:hover {
51
+ background: rgba(173, 178, 178, 0.3);
52
+ }
53
+ img {
54
+ width: 20px;
55
+ height: 11px;
56
+ margin-right: 10px;
57
+ }
58
+ }
59
+ }
60
+ }
19
61
  `;
20
62
 
21
63
  export const Nav = styled.ul`
@@ -135,7 +177,14 @@ export const UserProfile = styled.div`
135
177
  display: flex;
136
178
  align-items: center;
137
179
  cursor: pointer;
138
-
180
+ .user-img-container {
181
+ width: 37px;
182
+ height: 37px;
183
+ img {
184
+ width: 100%;
185
+ height: 100%;
186
+ }
187
+ }
139
188
  & h5 {
140
189
  margin: 0;
141
190
  color: rgba(49, 51, 51, 1);
@@ -9,6 +9,7 @@ import {
9
9
  } from "./styles";
10
10
  import useHeader from "../../header/getHeaderDetails";
11
11
  import Loader from "../../loader";
12
+ import avatar from "../../../assets/images/avatar.png";
12
13
 
13
14
  const UserCard = ({ user, isOpen }) => {
14
15
  const { handleGetUserDetails, userDetails } = useHeader();
@@ -21,7 +22,10 @@ const UserCard = ({ user, isOpen }) => {
21
22
  <Loader zoom={0.3} />
22
23
  ) : (
23
24
  <>
24
- <Avatar src={user.avatar} isOpen={isOpen} />
25
+ <Avatar
26
+ src={userDetails?.data?.profile_picture?.url || avatar}
27
+ isOpen={isOpen}
28
+ />
25
29
  <UserDetail isOpen={isOpen}>
26
30
  <UserName>
27
31
  {userDetails?.data?.first_name +