@griddo/ax 11.14.2-rc.0 → 11.14.2

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 (148) hide show
  1. package/config/jest/reactEasyCropMock.js +15 -0
  2. package/config/jest/reactTimezoneMock.js +13 -0
  3. package/package.json +221 -219
  4. package/public/img/welcome.svg +127 -0
  5. package/src/__tests__/components/Browser/Browser.test.tsx +27 -51
  6. package/src/__tests__/components/CategoryCell/CategoryCell.test.tsx +10 -5
  7. package/src/__tests__/components/ElementsTooltip/ElementsTooltip.test.tsx +27 -14
  8. package/src/__tests__/components/HeadingsPreviewModal/ErrorsBanner/ErrorItem/ErrorItem.test.tsx +2 -0
  9. package/src/__tests__/components/HeadingsPreviewModal/HeadingsPreviewModal.utils.test.tsx +138 -1
  10. package/src/__tests__/components/ImageDragAndDrop/CropStep/CropStep.test.tsx +84 -0
  11. package/src/__tests__/components/ImageDragAndDrop/ImageDragAndDrop.test.tsx +173 -0
  12. package/src/__tests__/components/KeywordsPreviewModal/KeywordsPreviewModal.test.tsx +3 -4
  13. package/src/__tests__/components/ProfileImage/ProfileImage.test.tsx +120 -0
  14. package/src/__tests__/components/ResizePanel/ResizePanel.test.tsx +8 -0
  15. package/src/__tests__/components/UserRolesAndSites/RoleItem/RoleItem.test.tsx +190 -0
  16. package/src/__tests__/components/UserRolesAndSites/UserRolesAndSites.test.tsx +471 -0
  17. package/src/__tests__/modules/FramePreview/HeadingsOverlay/HeadingsOverlay.test.tsx +15 -2
  18. package/src/__tests__/modules/Sites/Sites.test.tsx +68 -224
  19. package/src/__tests__/modules/Sites/SitesList/ListView/BulkHeader/BulkHeader.test.tsx +21 -17
  20. package/src/__tests__/modules/Sites/SitesList/SitesList.test.tsx +65 -565
  21. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/DataStep/DataStep.test.tsx +109 -0
  22. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/FinalStep/FinalStep.test.tsx +157 -0
  23. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/CropView/CropView.test.tsx +51 -0
  24. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/ImageStep.test.tsx +70 -0
  25. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/ImageStep/UploadView/UploadView.test.tsx +92 -0
  26. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/TimezoneStep/TimezoneStep.test.tsx +94 -0
  27. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/WelcomeModal.test.tsx +78 -0
  28. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/WelcomeStep/WelcomeStep.test.tsx +39 -0
  29. package/src/__tests__/modules/Sites/SitesList/WelcomeModal/utils.test.ts +55 -0
  30. package/src/api/sites.tsx +4 -4
  31. package/src/components/Avatar/index.tsx +26 -5
  32. package/src/components/Avatar/style.tsx +20 -10
  33. package/src/components/Browser/index.tsx +7 -1
  34. package/src/components/ConfigPanel/index.tsx +11 -7
  35. package/src/components/ElementsTooltip/index.tsx +96 -34
  36. package/src/components/ElementsTooltip/style.tsx +12 -1
  37. package/src/components/Fields/FileField/index.tsx +16 -18
  38. package/src/components/Fields/HeadingField/index.tsx +1 -1
  39. package/src/components/Fields/ImageField/index.tsx +9 -38
  40. package/src/components/Fields/ImageField/style.tsx +12 -1
  41. package/src/components/Fields/ToggleField/index.tsx +1 -1
  42. package/src/components/Fields/Wysiwyg/index.tsx +25 -20
  43. package/src/components/FileGallery/GalleryPanel/index.tsx +15 -7
  44. package/src/components/FileGallery/index.tsx +33 -28
  45. package/src/components/Gallery/GalleryPanel/index.tsx +5 -16
  46. package/src/components/Gallery/index.tsx +0 -2
  47. package/src/components/HeadingsPreviewModal/ErrorsBanner/ErrorItem/index.tsx +11 -2
  48. package/src/components/HeadingsPreviewModal/ErrorsBanner/index.tsx +21 -3
  49. package/src/components/HeadingsPreviewModal/ErrorsBanner/style.tsx +2 -2
  50. package/src/components/HeadingsPreviewModal/index.tsx +13 -3
  51. package/src/components/HeadingsPreviewModal/style.tsx +18 -0
  52. package/src/components/HeadingsPreviewModal/utils.tsx +31 -3
  53. package/src/components/Image/index.tsx +2 -2
  54. package/src/components/ImageDragAndDrop/CropStep/index.tsx +95 -0
  55. package/src/components/ImageDragAndDrop/CropStep/style.tsx +101 -0
  56. package/src/{modules/MediaGallery → components}/ImageDragAndDrop/index.tsx +103 -40
  57. package/src/{modules/MediaGallery → components}/ImageDragAndDrop/style.tsx +14 -2
  58. package/src/components/KeywordsPreviewModal/atoms.tsx +2 -2
  59. package/src/components/KeywordsPreviewModal/index.tsx +6 -6
  60. package/src/components/KeywordsPreviewModal/utils.tsx +2 -2
  61. package/src/components/ProfileImage/index.tsx +55 -0
  62. package/src/components/ProfileImage/style.tsx +58 -0
  63. package/src/components/ResizePanel/ResizeHandle/index.tsx +44 -6
  64. package/src/components/ResizePanel/ResizeHandle/style.tsx +7 -0
  65. package/src/components/ResizePanel/index.tsx +25 -4
  66. package/src/components/Tabs/style.tsx +1 -1
  67. package/src/components/Tag/index.tsx +0 -1
  68. package/src/components/UserRolesAndSites/RoleItem/index.tsx +42 -0
  69. package/src/components/UserRolesAndSites/RoleItem/style.tsx +29 -0
  70. package/src/components/UserRolesAndSites/index.tsx +102 -0
  71. package/src/components/UserRolesAndSites/style.tsx +67 -0
  72. package/src/components/index.tsx +6 -0
  73. package/src/constants/index.ts +13 -1
  74. package/src/containers/App/actions.tsx +8 -1
  75. package/src/containers/Sites/actions.tsx +26 -0
  76. package/src/containers/Sites/constants.tsx +1 -0
  77. package/src/containers/Sites/interfaces.tsx +6 -0
  78. package/src/containers/Sites/reducer.tsx +5 -1
  79. package/src/containers/Users/reducer.tsx +6 -5
  80. package/src/guards/routeLeaving/index.tsx +9 -11
  81. package/src/helpers/images.tsx +50 -3
  82. package/src/helpers/index.tsx +2 -1
  83. package/src/hooks/forms.tsx +45 -48
  84. package/src/hooks/index.tsx +2 -1
  85. package/src/hooks/modals.tsx +4 -3
  86. package/src/hooks/window.ts +50 -2
  87. package/src/modules/ActivityLog/ItemLogUser/UserItem/index.tsx +1 -1
  88. package/src/modules/App/Routing/Logout/index.tsx +3 -5
  89. package/src/modules/App/Routing/NavMenu/NavItem/index.tsx +73 -52
  90. package/src/modules/App/Routing/NavMenu/NavItem/style.tsx +21 -7
  91. package/src/modules/App/Routing/NavMenu/index.tsx +59 -54
  92. package/src/modules/App/Routing/NavMenu/style.tsx +13 -11
  93. package/src/modules/CreatePass/index.tsx +1 -1
  94. package/src/modules/FileDrive/FileDragAndDrop/index.tsx +11 -8
  95. package/src/modules/FileDrive/FileModal/index.tsx +8 -9
  96. package/src/modules/FileDrive/index.tsx +1 -18
  97. package/src/modules/Forms/FormEditor/index.tsx +1 -1
  98. package/src/modules/FramePreview/HeadingsOverlay/index.tsx +22 -11
  99. package/src/modules/FramePreview/HeadingsOverlay/style.tsx +1 -1
  100. package/src/modules/MediaGallery/ImageModal/index.tsx +1 -5
  101. package/src/modules/MediaGallery/index.tsx +1 -3
  102. package/src/modules/Settings/Globals/constants.tsx +942 -106
  103. package/src/modules/Sites/SitesList/AllSitesHeader/index.tsx +33 -0
  104. package/src/modules/Sites/SitesList/AllSitesHeader/style.tsx +35 -0
  105. package/src/modules/Sites/SitesList/GridView/GridHeaderFilter/index.tsx +5 -5
  106. package/src/modules/Sites/SitesList/GridView/GridSiteItem/index.tsx +23 -119
  107. package/src/modules/Sites/SitesList/ListView/BulkHeader/TableHeader/index.tsx +4 -4
  108. package/src/modules/Sites/SitesList/ListView/BulkHeader/index.tsx +4 -3
  109. package/src/modules/Sites/SitesList/ListView/ListSiteItem/index.tsx +23 -120
  110. package/src/modules/Sites/SitesList/{RecentSiteItem → RecentSites/RecentSiteItem}/index.tsx +4 -5
  111. package/src/modules/Sites/SitesList/RecentSites/index.tsx +49 -0
  112. package/src/modules/Sites/SitesList/RecentSites/style.tsx +92 -0
  113. package/src/modules/Sites/SitesList/SiteModal/index.tsx +8 -7
  114. package/src/modules/Sites/SitesList/WelcomeModal/DataStep/index.tsx +72 -0
  115. package/src/modules/Sites/SitesList/WelcomeModal/DataStep/style.tsx +59 -0
  116. package/src/modules/Sites/SitesList/WelcomeModal/FinalStep/constants.tsx +78 -0
  117. package/src/modules/Sites/SitesList/WelcomeModal/FinalStep/index.tsx +78 -0
  118. package/src/modules/Sites/SitesList/WelcomeModal/FinalStep/style.tsx +141 -0
  119. package/src/modules/Sites/SitesList/WelcomeModal/ImageStep/CropView/index.tsx +93 -0
  120. package/src/modules/Sites/SitesList/WelcomeModal/ImageStep/CropView/style.tsx +77 -0
  121. package/src/modules/Sites/SitesList/WelcomeModal/ImageStep/UploadView/index.tsx +100 -0
  122. package/src/modules/Sites/SitesList/WelcomeModal/ImageStep/UploadView/style.tsx +94 -0
  123. package/src/modules/Sites/SitesList/WelcomeModal/ImageStep/index.tsx +44 -0
  124. package/src/modules/Sites/SitesList/WelcomeModal/ImageStep/style.tsx +31 -0
  125. package/src/modules/Sites/SitesList/WelcomeModal/TimezoneStep/index.tsx +51 -0
  126. package/src/modules/Sites/SitesList/WelcomeModal/TimezoneStep/style.tsx +52 -0
  127. package/src/modules/Sites/SitesList/WelcomeModal/WelcomeStep/index.tsx +40 -0
  128. package/src/modules/Sites/SitesList/WelcomeModal/WelcomeStep/style.tsx +53 -0
  129. package/src/modules/Sites/SitesList/WelcomeModal/index.tsx +215 -0
  130. package/src/modules/Sites/SitesList/WelcomeModal/style.tsx +12 -0
  131. package/src/modules/Sites/SitesList/WelcomeModal/utils.ts +26 -0
  132. package/src/modules/Sites/SitesList/atoms.tsx +4 -4
  133. package/src/modules/Sites/SitesList/hooks.tsx +149 -16
  134. package/src/modules/Sites/SitesList/index.tsx +127 -125
  135. package/src/modules/Sites/SitesList/style.tsx +1 -117
  136. package/src/modules/Sites/SitesList/utils.tsx +9 -2
  137. package/src/modules/Sites/index.tsx +19 -8
  138. package/src/modules/Users/Profile/index.tsx +169 -31
  139. package/src/modules/Users/Profile/style.tsx +81 -1
  140. package/src/modules/Users/Roles/RoleItem/index.tsx +2 -2
  141. package/src/modules/Users/UserCreate/SiteItem/index.tsx +11 -14
  142. package/src/modules/Users/UserForm/atoms.tsx +3 -3
  143. package/src/modules/Users/UserForm/index.tsx +25 -29
  144. package/src/modules/Users/UserForm/style.tsx +15 -2
  145. package/src/modules/Users/UserList/UserItem/index.tsx +4 -4
  146. package/src/routes/index.tsx +1 -0
  147. package/src/types/index.tsx +2 -0
  148. /package/src/modules/Sites/SitesList/{RecentSiteItem → RecentSites/RecentSiteItem}/style.tsx +0 -0
@@ -1,20 +1,19 @@
1
- import { useState, useEffect } from "react";
1
+ import { useEffect, useState } from "react";
2
2
  import { connect } from "react-redux";
3
3
 
4
+ import { Button, ErrorToast, FieldsBehavior, ProfileImage, SearchField } from "@ax/components";
4
5
  import { appActions } from "@ax/containers/App";
5
- import { Button, ErrorToast, FieldsBehavior, SearchField } from "@ax/components";
6
- import type { IImage, IRootState, IUser, ISite, IRole, ISiteRoles } from "@ax/types";
7
- import { useModal } from "@ax/hooks";
8
6
  import { RouteLeavingGuard } from "@ax/guards";
7
+ import { useModal } from "@ax/hooks";
8
+ import type { IImage, IRole, IRootState, ISite, ISiteRoles, IUser } from "@ax/types";
9
9
 
10
10
  import { timezones } from "../../Settings/Globals/constants";
11
- import { PasswordModal, TypeChangeModal } from "./atoms";
12
- import { shouldBeSaved } from "./helpers";
13
-
11
+ import OptionItem from "../UserCreate/OptionItem";
14
12
  import SiteItem from "../UserCreate/SiteItem";
15
13
  import RolesModal from "../UserCreate/SiteItem/RolesModal";
16
14
  import RoleItem from "../UserCreate/SiteItem/RolesModal/RoleItem";
17
- import OptionItem from "../UserCreate/OptionItem";
15
+ import { PasswordModal, TypeChangeModal } from "./atoms";
16
+ import { shouldBeSaved } from "./helpers";
18
17
 
19
18
  import * as S from "./style";
20
19
 
@@ -32,7 +31,7 @@ const UserForm = (props: IProps) => {
32
31
  site,
33
32
  } = props;
34
33
 
35
- const { id, username, name, email, image, company, description, timezone, isSuperAdmin } = form;
34
+ const { id, username, name, email, image, company, position, timezone, isSuperAdmin } = form;
36
35
 
37
36
  const getSortedItemsByName = (items: ISite[]) =>
38
37
  items.sort((item1: ISite, item2: ISite) => item1.name.localeCompare(item2.name));
@@ -62,7 +61,7 @@ const UserForm = (props: IProps) => {
62
61
  const handleEmailChange = (value: string) => setForm({ ...form, email: value });
63
62
  const handleUsernameChange = (value: string) => setForm({ ...form, username: value });
64
63
  const handleCompanyChange = (value: string) => setForm({ ...form, company: value });
65
- const handleDescriptionChange = (value: string) => setForm({ ...form, description: value });
64
+ const handlePositionChange = (value: string) => setForm({ ...form, position: value });
66
65
  const handleTimezoneChange = (value: string) => setForm({ ...form, timezone: value });
67
66
 
68
67
  const toggleSuperAdmin = () => {
@@ -188,20 +187,17 @@ const UserForm = (props: IProps) => {
188
187
  <>
189
188
  <RouteLeavingGuard when={isDirty} action={action} text={text} allowedRoutes={allowedRoutes} />
190
189
  {!isOpen && <ErrorToast size="l" />}
190
+
191
191
  <S.Wrapper>
192
- <S.SubTitle>USER DATA</S.SubTitle>
193
- <S.NameTitle>{user.name}</S.NameTitle>
194
- <FieldsBehavior
195
- title="Avatar profile"
196
- name="image"
197
- value={image}
198
- fieldType="ImageField"
199
- onChange={handleImageChange}
200
- helptext="Customize how people see you."
201
- disabled={isEditDisabled}
202
- site={site}
203
- noGallery={true}
204
- />
192
+ <S.Header>
193
+ <S.AvatarWrapper>
194
+ <ProfileImage imageUrl={image?.url} handleImage={handleImageChange} />
195
+ </S.AvatarWrapper>
196
+ <S.UserName>
197
+ <S.SubTitle>USER DATA</S.SubTitle>
198
+ <S.NameTitle>{user.name}</S.NameTitle>
199
+ </S.UserName>
200
+ </S.Header>
205
201
  <FieldsBehavior
206
202
  title="Name"
207
203
  name="name"
@@ -257,12 +253,12 @@ const UserForm = (props: IProps) => {
257
253
  />
258
254
  )}
259
255
  <FieldsBehavior
260
- title="Description"
261
- name="description"
256
+ title="Job title"
257
+ name="position"
262
258
  fieldType="TextField"
263
- placeholder="Type a description"
264
- value={description || ""}
265
- onChange={handleDescriptionChange}
259
+ placeholder="Type a job"
260
+ value={position || ""}
261
+ onChange={handlePositionChange}
266
262
  disabled={isEditDisabled}
267
263
  />
268
264
  <FieldsBehavior
@@ -500,7 +496,7 @@ const mapStateToProps = (state: IRootState) => ({
500
496
  isSaving: state.app.isSaving,
501
497
  isLoading: state.app.isLoading,
502
498
  currentUser: state.users.currentUser,
503
- sites: state.sites.sites,
499
+ sites: state.sites.allSites,
504
500
  roles: state.users.roles,
505
501
  });
506
502
 
@@ -6,16 +6,26 @@ const Wrapper = styled.section`
6
6
  padding-bottom: calc(${(p) => p.theme.spacing.xl} * 2);
7
7
  `;
8
8
 
9
+ const Header = styled.div`
10
+ display: flex;
11
+ align-items: center;
12
+ gap: ${(p) => p.theme.spacing.m};
13
+ margin-bottom: ${(p) => p.theme.spacing.m};
14
+ `;
15
+
16
+ const AvatarWrapper = styled.div``;
17
+
18
+ const UserName = styled.div``;
19
+
9
20
  const NameTitle = styled.div`
10
21
  ${(p) => p.theme.textStyle.headingM};
11
22
  color: ${(p) => p.theme.color.textHighEmphasis};
12
- margin-bottom: ${(p) => p.theme.spacing.m};
13
23
  `;
14
24
 
15
25
  const SubTitle = styled.div`
16
26
  ${(p) => p.theme.textStyle.headingXS};
17
27
  color: ${(p) => p.theme.color.textMediumEmphasis};
18
- margin-bottom: ${(p) => p.theme.spacing.xs};
28
+ margin-bottom: ${(p) => p.theme.spacing.xxs};
19
29
  `;
20
30
 
21
31
  const ModalContent = styled.div`
@@ -112,6 +122,9 @@ const HelpText = styled.div`
112
122
 
113
123
  export {
114
124
  Wrapper,
125
+ Header,
126
+ AvatarWrapper,
127
+ UserName,
115
128
  NameTitle,
116
129
  SubTitle,
117
130
  ModalContent,
@@ -137,14 +137,14 @@ const UserItem = (props: IUserItemProps): JSX.Element => {
137
137
 
138
138
  const rolesString = user.isSuperAdmin
139
139
  ? ["Super - admin"]
140
- : roles && roles.filter((role: IRole) => rolesIds && rolesIds.includes(role.id)).map((role: IRole) => role.name);
140
+ : roles?.filter((role: IRole) => rolesIds?.includes(role.id)).map((role: IRole) => role.name);
141
141
 
142
142
  const colors = user.isSuperAdmin
143
143
  ? { "Super - admin": "#E7CBFE" }
144
- : rolesString &&
145
- rolesString.reduce((prev, current) => {
144
+ : rolesString?.reduce((prev: Record<string, string | undefined>, current) => {
146
145
  const color: IRole | undefined = roles.find((role: IRole) => role.name === current);
147
- return { ...prev, [current]: color?.hex };
146
+ prev[current] = color?.hex;
147
+ return prev;
148
148
  }, {});
149
149
 
150
150
  return (
@@ -23,6 +23,7 @@ export interface IRouter {
23
23
  url?: string;
24
24
  target?: string;
25
25
  permission?: string | string[];
26
+ avatar?: { image?: string; name?: string };
26
27
  }
27
28
 
28
29
  export { privateRoutes, publicRoutes, routes, history, multisite, site };
@@ -721,6 +721,8 @@ export interface IUser {
721
721
  status?: string;
722
722
  roles: ISiteRoles[];
723
723
  isSuperAdmin: boolean;
724
+ position?: string | null;
725
+ profileCreated?: boolean;
724
726
  }
725
727
 
726
728
  export interface IEmptyStateProps {