@universal-tennis/ui-shared 0.1.96 → 0.2.0

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 (227) hide show
  1. package/.eslintignore +1 -1
  2. package/.eslintrc.js +73 -73
  3. package/.storybook/main.js +16 -16
  4. package/.storybook/preview.js +17 -17
  5. package/.storybook/typography.css +5 -26
  6. package/.storybook/variables.css +16 -16
  7. package/README.md +129 -129
  8. package/dist/App.d.ts +1 -1
  9. package/dist/stories/Button.d.ts +27 -0
  10. package/dist/stories/Button.js +51 -0
  11. package/dist/stories/Button.js.map +1 -0
  12. package/dist/stories/Button.stories.d.ts +15 -0
  13. package/dist/stories/Button.stories.js +34 -0
  14. package/dist/stories/Button.stories.js.map +1 -0
  15. package/dist/stories/Header.d.ts +19 -0
  16. package/dist/stories/Header.js +31 -0
  17. package/dist/stories/Header.js.map +1 -0
  18. package/dist/stories/Header.stories.d.ts +11 -0
  19. package/dist/stories/Header.stories.js +20 -0
  20. package/dist/stories/Header.stories.js.map +1 -0
  21. package/dist/stories/Page.d.ts +1 -0
  22. package/dist/stories/Page.js +38 -0
  23. package/dist/stories/Page.js.map +1 -0
  24. package/dist/stories/Page.stories.d.ts +11 -0
  25. package/dist/stories/Page.stories.js +30 -0
  26. package/dist/stories/Page.stories.js.map +1 -0
  27. package/dist/stories/assets/comments.svg +1 -0
  28. package/dist/stories/assets/css/typography.css +5 -26
  29. package/dist/stories/assets/css/variables.css +15 -15
  30. package/dist/stories/assets/direction.svg +1 -0
  31. package/dist/stories/assets/icon-chat-blue.svg +10 -10
  32. package/dist/stories/assets/utr-sports-logo.svg +9 -9
  33. package/dist/stories/atoms/Button/Button.d.ts +1 -1
  34. package/dist/stories/atoms/Button/Button.js.map +1 -1
  35. package/dist/stories/atoms/Button/index.d.ts +1 -0
  36. package/dist/stories/atoms/Button/index.js +2 -0
  37. package/dist/stories/atoms/Button/index.js.map +1 -0
  38. package/dist/stories/atoms/Button.d.ts +7 -0
  39. package/dist/stories/atoms/Button.js +20 -0
  40. package/dist/stories/atoms/Button.js.map +1 -0
  41. package/dist/stories/atoms/Button.stories.d.ts +13 -0
  42. package/dist/stories/atoms/Button.stories.js +22 -0
  43. package/dist/stories/atoms/Button.stories.js.map +1 -0
  44. package/dist/stories/atoms/Icons/AddIcon.d.ts +2 -2
  45. package/dist/stories/atoms/Icons/AvailabilityMaybeIcon.d.ts +2 -2
  46. package/dist/stories/atoms/Icons/AvailabilityNoIcon.d.ts +2 -2
  47. package/dist/stories/atoms/Icons/AvailabilityNotSetIcon.d.ts +2 -2
  48. package/dist/stories/atoms/Icons/AvailabilityYesIcon.d.ts +2 -2
  49. package/dist/stories/atoms/Icons/BallInMotionIcon.d.ts +2 -2
  50. package/dist/stories/atoms/Icons/CalendarIcon.d.ts +2 -2
  51. package/dist/stories/atoms/Icons/ClockIcon.d.ts +2 -2
  52. package/dist/stories/atoms/Icons/CloseIcon.d.ts +2 -2
  53. package/dist/stories/atoms/Icons/DeleteIcon.d.ts +2 -2
  54. package/dist/stories/atoms/Icons/DoublePersonIcon.d.ts +2 -2
  55. package/dist/stories/atoms/Icons/EditIcon.d.ts +2 -2
  56. package/dist/stories/atoms/Icons/LeftChevronIcon.d.ts +2 -2
  57. package/dist/stories/atoms/Icons/LineIcon.d.ts +2 -2
  58. package/dist/stories/atoms/Icons/LocationIcon.d.ts +2 -2
  59. package/dist/stories/atoms/Icons/MessageIcon.d.ts +2 -2
  60. package/dist/stories/atoms/Icons/PickleballBallIcon.d.ts +2 -2
  61. package/dist/stories/atoms/Icons/RightChevronIcon.d.ts +2 -2
  62. package/dist/stories/atoms/Icons/SessionIcon.d.ts +2 -2
  63. package/dist/stories/atoms/Icons/SinglePersonIcon.d.ts +2 -2
  64. package/dist/stories/atoms/Icons/SinglePersonV2Icon.d.ts +2 -2
  65. package/dist/stories/atoms/Icons/SocialMediaFacebookIcon.d.ts +2 -2
  66. package/dist/stories/atoms/Icons/SocialMediaInstagramIcon.d.ts +2 -2
  67. package/dist/stories/atoms/Icons/SocialMediaTikTokIcon.d.ts +2 -2
  68. package/dist/stories/atoms/Icons/SocialMediaXIcon.d.ts +2 -2
  69. package/dist/stories/atoms/Icons/SocialMediaYoutubeIcon.d.ts +2 -2
  70. package/dist/stories/atoms/Icons/SwapIcon.d.ts +2 -2
  71. package/dist/stories/atoms/Icons/SwapNoBorderIcon.d.ts +2 -2
  72. package/dist/stories/atoms/Icons/TennisBallIcon.d.ts +2 -2
  73. package/dist/stories/atoms/Icons/VerifiedIcon.d.ts +2 -2
  74. package/dist/stories/atoms/Icons/VisibilityIcon.d.ts +2 -2
  75. package/dist/stories/atoms/Icons/VisibilityOffIcon.d.ts +2 -2
  76. package/dist/stories/atoms/Icons/WinnerIndicatorIcon.d.ts +2 -2
  77. package/dist/stories/atoms/Typography/Typography.d.ts +2 -2
  78. package/dist/stories/atoms/Typography/Typography.js.map +1 -1
  79. package/dist/stories/atoms/Typography/index.d.ts +1 -0
  80. package/dist/stories/atoms/Typography/index.js +2 -0
  81. package/dist/stories/atoms/Typography/index.js.map +1 -0
  82. package/dist/stories/atoms/UTMap/UTMap.d.ts +2 -2
  83. package/dist/stories/molecules/AvatarWithName/AvatarWithName.d.ts +2 -2
  84. package/dist/stories/molecules/Cards/ContactCard.d.ts +2 -2
  85. package/dist/stories/molecules/Cards/DrawCard.d.ts +2 -2
  86. package/dist/stories/molecules/Cards/DrawCard.js.map +1 -1
  87. package/dist/stories/molecules/Cards/TeamCard.d.ts +2 -2
  88. package/dist/stories/molecules/Cards/TeamDrawCard.d.ts +2 -2
  89. package/dist/stories/molecules/Cards/shared.d.ts +1 -4
  90. package/dist/stories/molecules/FooterSection/FooterSection.d.ts +2 -2
  91. package/dist/stories/molecules/GlobalNavItem/GlobalNavItem.d.ts +2 -2
  92. package/dist/stories/molecules/SquareAvatarWithName/SquareAvatarWithName.d.ts +2 -2
  93. package/dist/stories/organisms/Footer/Footer.d.ts +2 -2
  94. package/dist/stories/organisms/Footer/Footer.js +2 -6
  95. package/dist/stories/organisms/Footer/Footer.js.map +1 -1
  96. package/dist/stories/organisms/GlobalNavigation/GlobalNavigation.d.ts +2 -2
  97. package/dist/stories/organisms/GlobalNavigation/GlobalNavigation.js.map +1 -1
  98. package/dist/stories/organisms/Modals/FullPageModal.d.ts +2 -2
  99. package/dist/stories/organisms/Tables/DrawCardTable.d.ts +2 -2
  100. package/dist/stories/organisms/Tables/DrawCardTable.js +2 -2
  101. package/dist/stories/organisms/Tables/SortableTable.d.ts +2 -2
  102. package/dist/stories/organisms/Tables/SortableTable.js.map +1 -1
  103. package/dist/stories/organisms/Tables/TeamDrawCardTable/DesktopTableRows.d.ts +2 -2
  104. package/dist/stories/organisms/Tables/TeamDrawCardTable/MobileTableRows.d.ts +2 -2
  105. package/dist/stories/organisms/Tables/TeamDrawCardTable/TeamDrawCardTable.d.ts +2 -2
  106. package/dist/stories/organisms/Tables/mockData.d.ts +2 -2
  107. package/dist/stories/utils/constants.js.map +1 -1
  108. package/infrastructure/azure-pipelines.yml +112 -112
  109. package/package.json +99 -99
  110. package/public/index.html +50 -45
  111. package/src/App.js +25 -25
  112. package/src/components.jsx +52 -52
  113. package/src/custom.d.ts +13 -13
  114. package/src/index.js +17 -17
  115. package/src/items.jsx +1 -1
  116. package/src/stories/Introduction.stories.mdx +179 -179
  117. package/src/stories/assets/css/typography.css +5 -26
  118. package/src/stories/assets/css/variables.css +15 -15
  119. package/src/stories/assets/icon-chat-blue.svg +10 -10
  120. package/src/stories/assets/icons/icon-add.svg +7 -7
  121. package/src/stories/assets/icons/icon-availability-maybe.svg +3 -3
  122. package/src/stories/assets/icons/icon-availability-no.svg +3 -3
  123. package/src/stories/assets/icons/icon-availability-not-set.svg +8 -8
  124. package/src/stories/assets/icons/icon-availability-yes.svg +3 -3
  125. package/src/stories/assets/icons/icon-calendar.svg +4 -4
  126. package/src/stories/assets/icons/icon-clock.svg +7 -7
  127. package/src/stories/assets/icons/icon-close.svg +3 -3
  128. package/src/stories/assets/icons/icon-delete.svg +9 -9
  129. package/src/stories/assets/icons/icon-edit.svg +3 -3
  130. package/src/stories/assets/icons/icon-location.svg +6 -6
  131. package/src/stories/assets/icons/icon-message.svg +3 -3
  132. package/src/stories/assets/icons/icon-session.svg +3 -3
  133. package/src/stories/assets/icons/icon-social-media-facebook.svg +10 -10
  134. package/src/stories/assets/icons/icon-social-media-instagram.svg +3 -3
  135. package/src/stories/assets/icons/icon-social-media-tiktok.svg +10 -10
  136. package/src/stories/assets/icons/icon-social-media-x.svg +10 -10
  137. package/src/stories/assets/icons/icon-social-media-youtube.svg +3 -3
  138. package/src/stories/assets/icons/icon-swap.svg +3 -3
  139. package/src/stories/assets/icons/icon-visibility-off.svg +7 -7
  140. package/src/stories/assets/icons/icon-visibility.svg +6 -6
  141. package/src/stories/assets/utr-sports-logo.svg +9 -9
  142. package/src/stories/atoms/Button/Button.stories.tsx +63 -63
  143. package/src/stories/atoms/Button/Button.tsx +145 -145
  144. package/src/stories/atoms/Icons/AddIcon.tsx +13 -13
  145. package/src/stories/atoms/Icons/AvailabilityMaybeIcon.tsx +11 -11
  146. package/src/stories/atoms/Icons/AvailabilityNoIcon.tsx +11 -11
  147. package/src/stories/atoms/Icons/AvailabilityNotSetIcon.tsx +12 -12
  148. package/src/stories/atoms/Icons/AvailabilityYesIcon.tsx +11 -11
  149. package/src/stories/atoms/Icons/BallInMotionIcon.tsx +15 -15
  150. package/src/stories/atoms/Icons/CalendarIcon.tsx +11 -11
  151. package/src/stories/atoms/Icons/ClockIcon.tsx +14 -14
  152. package/src/stories/atoms/Icons/CloseIcon.tsx +11 -11
  153. package/src/stories/atoms/Icons/DeleteIcon.tsx +15 -15
  154. package/src/stories/atoms/Icons/DoublePersonIcon.tsx +20 -20
  155. package/src/stories/atoms/Icons/EditIcon.tsx +11 -11
  156. package/src/stories/atoms/Icons/Icons.stories.tsx +372 -372
  157. package/src/stories/atoms/Icons/LeftChevronIcon.tsx +13 -13
  158. package/src/stories/atoms/Icons/LineIcon.tsx +12 -12
  159. package/src/stories/atoms/Icons/LocationIcon.tsx +12 -12
  160. package/src/stories/atoms/Icons/MessageIcon.tsx +12 -12
  161. package/src/stories/atoms/Icons/PickleballBallIcon.tsx +22 -22
  162. package/src/stories/atoms/Icons/RightChevronIcon.tsx +11 -11
  163. package/src/stories/atoms/Icons/SessionIcon.tsx +16 -16
  164. package/src/stories/atoms/Icons/SinglePersonIcon.tsx +16 -16
  165. package/src/stories/atoms/Icons/SinglePersonV2Icon.tsx +13 -13
  166. package/src/stories/atoms/Icons/SocialMediaFacebookIcon.tsx +19 -19
  167. package/src/stories/atoms/Icons/SocialMediaInstagramIcon.tsx +11 -11
  168. package/src/stories/atoms/Icons/SocialMediaTikTokIcon.tsx +18 -18
  169. package/src/stories/atoms/Icons/SocialMediaXIcon.tsx +18 -18
  170. package/src/stories/atoms/Icons/SocialMediaYoutubeIcon.tsx +11 -11
  171. package/src/stories/atoms/Icons/SwapIcon.tsx +11 -11
  172. package/src/stories/atoms/Icons/SwapNoBorderIcon.tsx +14 -14
  173. package/src/stories/atoms/Icons/TennisBallIcon.tsx +13 -13
  174. package/src/stories/atoms/Icons/VerifiedIcon.tsx +13 -13
  175. package/src/stories/atoms/Icons/VisibilityIcon.tsx +12 -12
  176. package/src/stories/atoms/Icons/VisibilityOffIcon.tsx +13 -13
  177. package/src/stories/atoms/Icons/WinnerIndicatorIcon.tsx +39 -39
  178. package/src/stories/atoms/Icons/sharedTypes.tsx +12 -12
  179. package/src/stories/atoms/Typography/Typography.tsx +185 -185
  180. package/src/stories/atoms/UTMap/UTMap.stories.tsx +43 -43
  181. package/src/stories/atoms/UTMap/UTMap.tsx +25 -25
  182. package/src/stories/molecules/AvatarWithName/AvatarWithName.stories.tsx +86 -86
  183. package/src/stories/molecules/AvatarWithName/AvatarWithName.tsx +68 -68
  184. package/src/stories/molecules/Cards/Cards.stories.tsx +76 -76
  185. package/src/stories/molecules/Cards/ContactCard.tsx +45 -45
  186. package/src/stories/molecules/Cards/DrawCard.tsx +211 -211
  187. package/src/stories/molecules/Cards/Modals.stories.tsx +137 -137
  188. package/src/stories/molecules/Cards/TeamCard.tsx +14 -14
  189. package/src/stories/molecules/Cards/TeamDrawCard.tsx +159 -159
  190. package/src/stories/molecules/Cards/sharedTypes.ts +69 -69
  191. package/src/stories/molecules/FooterSection/FooterSection.stories.tsx +25 -25
  192. package/src/stories/molecules/FooterSection/FooterSection.tsx +34 -34
  193. package/src/stories/molecules/FooterSection/sharedTypes.ts +6 -6
  194. package/src/stories/molecules/GlobalNavItem/GlobalNavItem.stories.tsx +22 -22
  195. package/src/stories/molecules/GlobalNavItem/GlobalNavItem.tsx +51 -51
  196. package/src/stories/molecules/SquareAvatarWithName/SquareAvatarWithName.stories.tsx +96 -96
  197. package/src/stories/molecules/SquareAvatarWithName/SquareAvatarWithName.tsx +112 -112
  198. package/src/stories/organisms/Footer/Footer.stories.tsx +63 -63
  199. package/src/stories/organisms/Footer/Footer.tsx +155 -165
  200. package/src/stories/organisms/Footer/sharedTypes.ts +17 -17
  201. package/src/stories/organisms/GlobalNavigation/GlobalNavigation.stories.tsx +210 -210
  202. package/src/stories/organisms/GlobalNavigation/GlobalNavigation.tsx +120 -120
  203. package/src/stories/organisms/Modals/FullPageModal.tsx +93 -93
  204. package/src/stories/organisms/Modals/Modals.stories.tsx +138 -138
  205. package/src/stories/organisms/Modals/sharedTypes.ts +15 -15
  206. package/src/stories/organisms/Tables/DrawCardTable.tsx +92 -92
  207. package/src/stories/organisms/Tables/SortableTable.tsx +119 -119
  208. package/src/stories/organisms/Tables/Tables.stories.tsx +104 -104
  209. package/src/stories/organisms/Tables/TeamDrawCardTable/DesktopTableRows.tsx +120 -120
  210. package/src/stories/organisms/Tables/TeamDrawCardTable/MobileTableRows.tsx +67 -67
  211. package/src/stories/organisms/Tables/TeamDrawCardTable/TeamDrawCardTable.tsx +24 -24
  212. package/src/stories/organisms/Tables/mockData.tsx +131 -131
  213. package/src/stories/organisms/Tables/sharedTypes.ts +17 -17
  214. package/src/stories/utils/constants.ts +31 -31
  215. package/src/stories/utils/getArrayWithIds.ts +1 -1
  216. package/src/stories/utils/useScreenSize.ts +28 -28
  217. package/src/types/tableDataTypes.ts +42 -42
  218. package/tsconfig.json +23 -23
  219. package/dist/stories/atoms/Map/Map.d.ts +0 -7
  220. package/dist/stories/atoms/Map/Map.js +0 -9
  221. package/dist/stories/atoms/Map/Map.js.map +0 -1
  222. package/dist/stories/atoms/Map/Map.stories.d.ts +0 -9
  223. package/dist/stories/atoms/Map/Map.stories.js +0 -36
  224. package/dist/stories/atoms/Map/Map.stories.js.map +0 -1
  225. package/dist/stories/organisms/Tables/TeamDrawCardTable.d.ts +0 -3
  226. package/dist/stories/organisms/Tables/TeamDrawCardTable.js +0 -126
  227. package/dist/stories/organisms/Tables/TeamDrawCardTable.js.map +0 -1
@@ -1,120 +1,120 @@
1
- import React, { ReactNode } from "react";
2
- import { styled } from "@mui/material/styles";
3
- import Grid from "@mui/material/Grid";
4
- import Box from "@mui/material/Box";
5
-
6
- import { getArrayWithIds } from '../../../utils/getArrayWithIds';
7
- import { TableRowProps } from '../sharedTypes';
8
- import Typography from "../../../atoms/Typography/Typography";
9
- import { teamDrawCardSideMargin, standardSideMargin } from "../../../utils/constants";
10
-
11
- type IndexedRow = {
12
- [key: number]: ReactNode;
13
- };
14
-
15
- const StyledHeader = styled(Grid)({
16
- alignItems: "center",
17
- justifyContent: "center",
18
- display: "flex"
19
- });
20
-
21
- const gridCommonStyles = {
22
- content: "''",
23
- position: "absolute",
24
- backgroundColor: "var(--cool-grey-600)",
25
- };
26
-
27
- const horizontalLineCommonStyles = {
28
- height: "1px",
29
- top: "50%",
30
- };
31
-
32
- const StyledGrid = styled(Grid)({
33
- position: "relative",
34
- '&:first-of-type .team-draw-card': {
35
- marginLeft: 0,
36
- '&:before': {
37
- display: 'none'
38
- }
39
- },
40
- '&:last-child .team-draw-card': {
41
- marginRight: 0,
42
- '&:after': {
43
- display: 'none'
44
- }
45
- },
46
- "&:nth-last-of-type(-n+2) .team-draw-card": {
47
- "&:before": {
48
- ...gridCommonStyles,
49
- ...horizontalLineCommonStyles,
50
- width: `${teamDrawCardSideMargin}`,
51
- left: 0,
52
- transform: "translateX(-100%)"
53
- }
54
- },
55
- "&:nth-of-type(-n+2) .team-draw-card": {
56
- "&:after": {
57
- ...gridCommonStyles,
58
- ...horizontalLineCommonStyles,
59
- width: `calc(${standardSideMargin + 1}px)`,
60
- right: 0,
61
- transform: "translateX(100%)"
62
- }
63
- }
64
- });
65
-
66
- const GridSections = styled(Box)({
67
- display: "flex",
68
- alignItems: "center",
69
- position: 'relative',
70
- });
71
-
72
- export default function DesktopTableRows({
73
- headerRows = [], totalColumns, tableRows = []
74
- }: Readonly <TableRowProps>) {
75
- const tableRowsArray = getArrayWithIds(tableRows);
76
- const formatTableRows = tableRowsArray?.map((row, index) => {
77
- if (index > 2) return; // Table can only support 3 columns
78
- const rowSectionsHeight = `${100 / tableRows[index].length}%`;
79
- const sectionAmount = tableRows[index].length;
80
- const isFirstRow = index === 0;
81
- const sectionArray = getArrayWithIds([...Array(sectionAmount)]);
82
-
83
- return (
84
- <StyledGrid key={row.id} xs={totalColumns}>
85
- {sectionArray?.map((section, idx) => (
86
- <GridSections
87
- key={section.id}
88
- sx={{
89
- height: rowSectionsHeight,
90
- '&:before': {
91
- display: isFirstRow ? 'none' : 'block',
92
- ...gridCommonStyles,
93
- height: `calc(50% + 1px)`,
94
- width: "1px",
95
- top: `calc(25% - 4px)`
96
- },
97
- }}
98
- >
99
- {(row as IndexedRow)[idx]}
100
- </GridSections>
101
- ))}
102
- </StyledGrid>
103
- );
104
- });
105
-
106
- return (
107
- <>
108
- <Grid container sx={{ height: "60px" }}>
109
- {headerRows.map((row) => (
110
- <StyledHeader key={row.name} xs={totalColumns}>
111
- <Typography category="secondary" size="small-medium-cap">
112
- {row.name}
113
- </Typography>
114
- </StyledHeader>
115
- ))}
116
- </Grid>
117
- <Grid container>{formatTableRows}</Grid>
118
- </>
119
- );
120
- }
1
+ import React, { ReactNode } from "react";
2
+ import { styled } from "@mui/material/styles";
3
+ import Grid from "@mui/material/Grid";
4
+ import Box from "@mui/material/Box";
5
+
6
+ import { getArrayWithIds } from '../../../utils/getArrayWithIds';
7
+ import { TableRowProps } from '../sharedTypes';
8
+ import Typography from "../../../atoms/Typography/Typography";
9
+ import { teamDrawCardSideMargin, standardSideMargin } from "../../../utils/constants";
10
+
11
+ type IndexedRow = {
12
+ [key: number]: ReactNode;
13
+ };
14
+
15
+ const StyledHeader = styled(Grid)({
16
+ alignItems: "center",
17
+ justifyContent: "center",
18
+ display: "flex"
19
+ });
20
+
21
+ const gridCommonStyles = {
22
+ content: "''",
23
+ position: "absolute",
24
+ backgroundColor: "var(--cool-grey-600)",
25
+ };
26
+
27
+ const horizontalLineCommonStyles = {
28
+ height: "1px",
29
+ top: "50%",
30
+ };
31
+
32
+ const StyledGrid = styled(Grid)({
33
+ position: "relative",
34
+ '&:first-of-type .team-draw-card': {
35
+ marginLeft: 0,
36
+ '&:before': {
37
+ display: 'none'
38
+ }
39
+ },
40
+ '&:last-child .team-draw-card': {
41
+ marginRight: 0,
42
+ '&:after': {
43
+ display: 'none'
44
+ }
45
+ },
46
+ "&:nth-last-of-type(-n+2) .team-draw-card": {
47
+ "&:before": {
48
+ ...gridCommonStyles,
49
+ ...horizontalLineCommonStyles,
50
+ width: `${teamDrawCardSideMargin}`,
51
+ left: 0,
52
+ transform: "translateX(-100%)"
53
+ }
54
+ },
55
+ "&:nth-of-type(-n+2) .team-draw-card": {
56
+ "&:after": {
57
+ ...gridCommonStyles,
58
+ ...horizontalLineCommonStyles,
59
+ width: `calc(${standardSideMargin + 1}px)`,
60
+ right: 0,
61
+ transform: "translateX(100%)"
62
+ }
63
+ }
64
+ });
65
+
66
+ const GridSections = styled(Box)({
67
+ display: "flex",
68
+ alignItems: "center",
69
+ position: 'relative',
70
+ });
71
+
72
+ export default function DesktopTableRows({
73
+ headerRows = [], totalColumns, tableRows = []
74
+ }: Readonly <TableRowProps>) {
75
+ const tableRowsArray = getArrayWithIds(tableRows);
76
+ const formatTableRows = tableRowsArray?.map((row, index) => {
77
+ if (index > 2) return; // Table can only support 3 columns
78
+ const rowSectionsHeight = `${100 / tableRows[index].length}%`;
79
+ const sectionAmount = tableRows[index].length;
80
+ const isFirstRow = index === 0;
81
+ const sectionArray = getArrayWithIds([...Array(sectionAmount)]);
82
+
83
+ return (
84
+ <StyledGrid key={row.id} xs={totalColumns}>
85
+ {sectionArray?.map((section, idx) => (
86
+ <GridSections
87
+ key={section.id}
88
+ sx={{
89
+ height: rowSectionsHeight,
90
+ '&:before': {
91
+ display: isFirstRow ? 'none' : 'block',
92
+ ...gridCommonStyles,
93
+ height: `calc(50% + 1px)`,
94
+ width: "1px",
95
+ top: `calc(25% - 4px)`
96
+ },
97
+ }}
98
+ >
99
+ {(row as IndexedRow)[idx]}
100
+ </GridSections>
101
+ ))}
102
+ </StyledGrid>
103
+ );
104
+ });
105
+
106
+ return (
107
+ <>
108
+ <Grid container sx={{ height: "60px" }}>
109
+ {headerRows.map((row) => (
110
+ <StyledHeader key={row.name} xs={totalColumns}>
111
+ <Typography category="secondary" size="small-medium-cap">
112
+ {row.name}
113
+ </Typography>
114
+ </StyledHeader>
115
+ ))}
116
+ </Grid>
117
+ <Grid container>{formatTableRows}</Grid>
118
+ </>
119
+ );
120
+ }
@@ -1,67 +1,67 @@
1
- import React, { useState } from "react";
2
- import Box from "@mui/material/Box";
3
- import Button from "@mui/material/Button";
4
- import { styled } from "@mui/material/styles";
5
- import Grid from "@mui/material/Grid";
6
-
7
- import { TableRowProps } from '../sharedTypes';
8
- import RightChevronIcon from '../../../atoms/Icons/RightChevronIcon';
9
- import LeftChevronIcon from '../../../atoms/Icons/LeftChevronIcon';
10
- import Typography from "../../../atoms/Typography/Typography";
11
-
12
- const StyledHeader = styled(Grid)({
13
- alignItems: "center",
14
- justifyContent: "center",
15
- display: "flex"
16
- });
17
-
18
- const GridSections = styled(Box)({
19
- display: "flex",
20
- alignItems: "center",
21
- position: 'relative',
22
- });
23
-
24
- export default function MobileTableRows({
25
- totalColumns, headerRows = [], tableRows = []
26
- }: Readonly <TableRowProps>) {
27
- const [activeStep, setActiveStep] = useState<number>(0);
28
-
29
- const handleNext = () => {
30
- setActiveStep((prevActiveStep) => prevActiveStep + 1);
31
- };
32
-
33
- const handleBack = () => {
34
- setActiveStep((prevActiveStep) => prevActiveStep - 1);
35
- };
36
-
37
- const disabledBackButton = activeStep === 0;
38
- const disabledForwardButton = tableRows && activeStep === tableRows.length - 1;
39
-
40
- return (
41
- <Box>
42
- <Grid container justifyContent="space-between" mb={1}>
43
- <Button color="inherit" disabled={disabledBackButton} onClick={handleBack} sx={{ mr: 1, alignSelf: "flex-start" }}>
44
- <LeftChevronIcon size={16} color={disabledBackButton ? "transparent" : "var(--primary)"} />
45
- </Button>
46
- <StyledHeader xs={totalColumns}>
47
- <Typography category="secondary" size="small-medium-cap">
48
- {headerRows[activeStep]?.name}
49
- </Typography>
50
- </StyledHeader>
51
- <Button onClick={handleNext} disabled={disabledForwardButton}>
52
- <RightChevronIcon size={16} color={disabledForwardButton ? "transparent" : "var(--primary)"} />
53
- </Button>
54
- </Grid>
55
- <Grid flexDirection="column" container>
56
- <GridSections
57
- sx={{
58
- flexDirection: "column",
59
- gap: "10px",
60
- }}
61
- >
62
- {tableRows[activeStep]}
63
- </GridSections>
64
- </Grid>
65
- </Box>
66
- );
67
- }
1
+ import React, { useState } from "react";
2
+ import Box from "@mui/material/Box";
3
+ import Button from "@mui/material/Button";
4
+ import { styled } from "@mui/material/styles";
5
+ import Grid from "@mui/material/Grid";
6
+
7
+ import { TableRowProps } from '../sharedTypes';
8
+ import RightChevronIcon from '../../../atoms/Icons/RightChevronIcon';
9
+ import LeftChevronIcon from '../../../atoms/Icons/LeftChevronIcon';
10
+ import Typography from "../../../atoms/Typography/Typography";
11
+
12
+ const StyledHeader = styled(Grid)({
13
+ alignItems: "center",
14
+ justifyContent: "center",
15
+ display: "flex"
16
+ });
17
+
18
+ const GridSections = styled(Box)({
19
+ display: "flex",
20
+ alignItems: "center",
21
+ position: 'relative',
22
+ });
23
+
24
+ export default function MobileTableRows({
25
+ totalColumns, headerRows = [], tableRows = []
26
+ }: Readonly <TableRowProps>) {
27
+ const [activeStep, setActiveStep] = useState<number>(0);
28
+
29
+ const handleNext = () => {
30
+ setActiveStep((prevActiveStep) => prevActiveStep + 1);
31
+ };
32
+
33
+ const handleBack = () => {
34
+ setActiveStep((prevActiveStep) => prevActiveStep - 1);
35
+ };
36
+
37
+ const disabledBackButton = activeStep === 0;
38
+ const disabledForwardButton = tableRows && activeStep === tableRows.length - 1;
39
+
40
+ return (
41
+ <Box>
42
+ <Grid container justifyContent="space-between" mb={1}>
43
+ <Button color="inherit" disabled={disabledBackButton} onClick={handleBack} sx={{ mr: 1, alignSelf: "flex-start" }}>
44
+ <LeftChevronIcon size={16} color={disabledBackButton ? "transparent" : "var(--primary)"} />
45
+ </Button>
46
+ <StyledHeader xs={totalColumns}>
47
+ <Typography category="secondary" size="small-medium-cap">
48
+ {headerRows[activeStep]?.name}
49
+ </Typography>
50
+ </StyledHeader>
51
+ <Button onClick={handleNext} disabled={disabledForwardButton}>
52
+ <RightChevronIcon size={16} color={disabledForwardButton ? "transparent" : "var(--primary)"} />
53
+ </Button>
54
+ </Grid>
55
+ <Grid flexDirection="column" container>
56
+ <GridSections
57
+ sx={{
58
+ flexDirection: "column",
59
+ gap: "10px",
60
+ }}
61
+ >
62
+ {tableRows[activeStep]}
63
+ </GridSections>
64
+ </Grid>
65
+ </Box>
66
+ );
67
+ }
@@ -1,24 +1,24 @@
1
- import React from "react";
2
- import Box from "@mui/material/Box";
3
-
4
- import DesktopTableRows from './DesktopTableRows';
5
- import MobileTableRows from './MobileTableRows';
6
- import { DrawCardTableProps } from "../sharedTypes";
7
-
8
- export default function TeamDrawCardTable({
9
- headerRows, tableRows, isMobile, ...props
10
- }: DrawCardTableProps) {
11
- if (!headerRows || !tableRows) return null;
12
-
13
- const totalColumns = Math.floor(12 / headerRows.length);
14
-
15
- return (
16
- <Box {...props} sx={{ flexGrow: 1 }} aria-label="draw table">
17
- {isMobile ? (
18
- <MobileTableRows totalColumns={totalColumns} tableRows={tableRows} headerRows={headerRows} />
19
- ) : (
20
- <DesktopTableRows totalColumns={totalColumns} tableRows={tableRows} headerRows={headerRows} />
21
- )}
22
- </Box>
23
- );
24
- }
1
+ import React from "react";
2
+ import Box from "@mui/material/Box";
3
+
4
+ import DesktopTableRows from './DesktopTableRows';
5
+ import MobileTableRows from './MobileTableRows';
6
+ import { DrawCardTableProps } from "../sharedTypes";
7
+
8
+ export default function TeamDrawCardTable({
9
+ headerRows, tableRows, isMobile, ...props
10
+ }: DrawCardTableProps) {
11
+ if (!headerRows || !tableRows) return null;
12
+
13
+ const totalColumns = Math.floor(12 / headerRows.length);
14
+
15
+ return (
16
+ <Box {...props} sx={{ flexGrow: 1 }} aria-label="draw table">
17
+ {isMobile ? (
18
+ <MobileTableRows totalColumns={totalColumns} tableRows={tableRows} headerRows={headerRows} />
19
+ ) : (
20
+ <DesktopTableRows totalColumns={totalColumns} tableRows={tableRows} headerRows={headerRows} />
21
+ )}
22
+ </Box>
23
+ );
24
+ }