contentoh-components-library 21.4.68 → 21.4.69

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 (167) hide show
  1. package/dist/assets/fonts/roboto/LICENSE.txt +202 -0
  2. package/dist/components/atoms/Avatar/index.js +3 -2
  3. package/dist/components/atoms/CheckBox/styles.js +1 -1
  4. package/dist/components/atoms/ImageCarousel/ImgeSlider.stories.js +90 -0
  5. package/dist/components/atoms/ImageCarousel/index.js +120 -0
  6. package/dist/components/atoms/ImageCarousel/styles.js +18 -0
  7. package/dist/components/atoms/InputFormatter/styles.js +1 -1
  8. package/dist/components/atoms/PercentTag/PercentTag.stories.js +31 -0
  9. package/dist/components/atoms/PercentTag/index.js +23 -0
  10. package/dist/components/atoms/PercentTag/styles.js +22 -0
  11. package/dist/components/atoms/RatingStars/RatingStars.stories.js +30 -0
  12. package/dist/components/atoms/RatingStars/index.js +53 -0
  13. package/dist/components/atoms/RatingStars/styles.js +18 -0
  14. package/dist/components/atoms/RetailerCatalog/RetailerCatalog.stories.js +48 -0
  15. package/dist/components/atoms/RetailerCatalog/index.js +69 -0
  16. package/dist/components/atoms/RetailerCatalog/styles.js +20 -0
  17. package/dist/components/atoms/RetailerOption/RetailerOption.stories.js +33 -0
  18. package/dist/components/atoms/RetailerOption/index.js +62 -0
  19. package/dist/components/atoms/RetailerOption/styles.js +20 -0
  20. package/dist/components/atoms/RetailersList/RetailersList.stories.js +45 -0
  21. package/dist/components/atoms/RetailersList/index.js +46 -0
  22. package/dist/components/atoms/RetailersList/styles.js +18 -0
  23. package/dist/components/atoms/SliderToolTip/styles.js +1 -1
  24. package/dist/components/atoms/UserCatalog/UserCatalog.stories.js +73 -0
  25. package/dist/components/atoms/UserCatalog/index.js +101 -0
  26. package/dist/components/atoms/UserCatalog/styles.js +18 -0
  27. package/dist/components/atoms/UserOption/UserOption.stories.js +40 -0
  28. package/dist/components/atoms/UserOption/index.js +130 -0
  29. package/dist/components/atoms/UserOption/styles.js +20 -0
  30. package/dist/components/atoms/UserSelector/UserSelector.stories.js +40 -0
  31. package/dist/components/atoms/UserSelector/index.js +98 -0
  32. package/dist/components/atoms/UserSelector/styles.js +32 -0
  33. package/dist/components/molecules/BoxAttribute/index.js +3 -3
  34. package/dist/components/molecules/BoxAttribute/styles.js +1 -1
  35. package/dist/components/molecules/BoxButtons/index.js +0 -1
  36. package/dist/components/molecules/CarouselImagesLogin/index.js +1 -1
  37. package/dist/components/molecules/GalleryElement/index.js +16 -12
  38. package/dist/components/molecules/GalleryElement/styles.js +1 -1
  39. package/dist/components/molecules/GalleryHeader/index.js +3 -0
  40. package/dist/components/molecules/GalleryHeader/styles.js +1 -1
  41. package/dist/components/molecules/GridItem/GridItem.stories.js +123 -0
  42. package/dist/components/molecules/GridItem/index.js +152 -0
  43. package/dist/components/molecules/GridItem/styles.js +20 -0
  44. package/dist/components/molecules/HeaderItem/ColumnItem.js +23 -0
  45. package/dist/components/molecules/HeaderItem/HeaderItem.stories.js +70 -0
  46. package/dist/components/molecules/HeaderItem/index.js +42 -0
  47. package/dist/components/molecules/HeaderItem/styles.js +30 -0
  48. package/dist/components/molecules/HeaderTop/index.js +68 -11
  49. package/dist/components/molecules/RowItem/ColumnItem.js +23 -0
  50. package/dist/components/molecules/RowItem/RowItem.stories.js +5242 -0
  51. package/dist/components/molecules/RowItem/index.js +58 -0
  52. package/dist/components/molecules/RowItem/styles.js +30 -0
  53. package/dist/components/molecules/SignInLogin/index.js +36 -28
  54. package/dist/components/molecules/StripeCardSelector/CardSelector.stories.js +1 -2
  55. package/dist/components/organisms/Chat/Chat.stories.js +27 -8
  56. package/dist/components/organisms/Chat/ContainerItems/index.js +19 -3
  57. package/dist/components/organisms/Chat/ContainerItems/styles.js +1 -1
  58. package/dist/components/organisms/Chat/ContentChat/index.js +350 -197
  59. package/dist/components/organisms/Chat/Footer/index.js +48 -39
  60. package/dist/components/organisms/Chat/index.js +49 -4
  61. package/dist/components/organisms/Chat/styles.js +1 -1
  62. package/dist/components/organisms/DashboardMetric/index.js +12 -6
  63. package/dist/components/organisms/FullProductNameHeader/index.js +2 -2
  64. package/dist/components/organisms/GridProducts/GridProducts.stories.js +5097 -0
  65. package/dist/components/organisms/GridProducts/index.js +63 -0
  66. package/dist/components/organisms/GridProducts/styles.js +18 -0
  67. package/dist/components/organisms/GridProducts/utils.js +149 -0
  68. package/dist/components/organisms/InputGroup/index.js +1 -10
  69. package/dist/components/organisms/Modal/styles.js +1 -1
  70. package/dist/components/organisms/VersionSelector/index.js +1 -1
  71. package/dist/components/pages/Dashboard/Dashboard.stories.js +33 -36
  72. package/dist/components/pages/Dashboard/index.js +37 -9
  73. package/dist/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +3 -3
  74. package/dist/components/pages/ProviderProductEdition/index.js +120 -144
  75. package/dist/components/pages/ProviderProductEdition/styles.js +1 -1
  76. package/dist/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +7 -3
  77. package/dist/components/pages/RetailerProductEdition/index.js +279 -274
  78. package/dist/components/pages/RetailerProductEdition/styles.js +1 -1
  79. package/dist/components/pages/RetailerProductEdition/utils.js +61 -2
  80. package/dist/global-files/data.js +11 -3
  81. package/dist/global-files/variables.js +5 -1
  82. package/dist/index.js +201 -58
  83. package/package.json +2 -3
  84. package/src/components/atoms/Avatar/index.js +8 -2
  85. package/src/components/atoms/CheckBox/styles.js +2 -0
  86. package/src/components/atoms/ImageCarousel/ImgeSlider.stories.js +76 -0
  87. package/src/components/atoms/ImageCarousel/index.js +103 -0
  88. package/src/components/atoms/ImageCarousel/styles.js +79 -0
  89. package/src/components/atoms/InputFormatter/styles.js +2 -1
  90. package/src/components/atoms/PercentTag/PercentTag.stories.js +7 -0
  91. package/src/components/atoms/PercentTag/index.js +9 -0
  92. package/src/components/atoms/PercentTag/styles.js +69 -0
  93. package/src/components/atoms/RatingStars/RatingStars.stories.js +10 -0
  94. package/src/components/atoms/RatingStars/index.js +31 -0
  95. package/src/components/atoms/RatingStars/styles.js +28 -0
  96. package/src/components/atoms/RetailerCatalog/RetailerCatalog.stories.js +36 -0
  97. package/src/components/atoms/RetailerCatalog/index.js +49 -0
  98. package/src/components/atoms/RetailerCatalog/styles.js +30 -0
  99. package/src/components/atoms/RetailerOption/RetailerOption.stories.js +15 -0
  100. package/src/components/atoms/RetailerOption/index.js +53 -0
  101. package/src/components/atoms/RetailerOption/styles.js +41 -0
  102. package/src/components/atoms/RetailersList/RetailersList.stories.js +33 -0
  103. package/src/components/atoms/RetailersList/index.js +20 -0
  104. package/src/components/atoms/RetailersList/styles.js +19 -0
  105. package/src/components/atoms/SliderToolTip/styles.js +1 -1
  106. package/src/components/atoms/TabSection/styles.js +1 -1
  107. package/src/components/atoms/UserCatalog/UserCatalog.stories.js +67 -0
  108. package/src/components/atoms/UserCatalog/index.js +100 -0
  109. package/src/components/atoms/UserCatalog/styles.js +24 -0
  110. package/src/components/atoms/UserOption/UserOption.stories.js +25 -0
  111. package/src/components/atoms/UserOption/index.js +95 -0
  112. package/src/components/atoms/UserOption/styles.js +61 -0
  113. package/src/components/atoms/UserSelector/UserSelector.stories.js +25 -0
  114. package/src/components/atoms/UserSelector/index.js +86 -0
  115. package/src/components/atoms/UserSelector/styles.js +55 -0
  116. package/src/components/molecules/BoxAttribute/index.js +32 -25
  117. package/src/components/molecules/BoxAttribute/styles.js +1 -1
  118. package/src/components/molecules/BoxButtons/index.js +23 -22
  119. package/src/components/molecules/CarouselImagesLogin/index.js +1 -1
  120. package/src/components/molecules/GalleryElement/index.js +14 -8
  121. package/src/components/molecules/GalleryElement/styles.js +7 -0
  122. package/src/components/molecules/GalleryHeader/index.js +1 -0
  123. package/src/components/molecules/GalleryHeader/styles.js +4 -0
  124. package/src/components/molecules/GridItem/GridItem.stories.js +126 -0
  125. package/src/components/molecules/GridItem/index.js +105 -0
  126. package/src/components/molecules/GridItem/styles.js +104 -0
  127. package/src/components/molecules/HeaderItem/ColumnItem.js +9 -0
  128. package/src/components/molecules/HeaderItem/HeaderItem.stories.js +24 -0
  129. package/src/components/molecules/HeaderItem/index.js +26 -0
  130. package/src/components/molecules/HeaderItem/styles.js +27 -0
  131. package/src/components/molecules/HeaderTop/index.js +52 -6
  132. package/src/components/molecules/RowItem/ColumnItem.js +9 -0
  133. package/src/components/molecules/RowItem/RowItem.stories.js +5660 -0
  134. package/src/components/molecules/RowItem/index.js +45 -0
  135. package/src/components/molecules/RowItem/styles.js +40 -0
  136. package/src/components/molecules/SignInLogin/index.js +11 -11
  137. package/src/components/molecules/StripeCardSelector/CardSelector.stories.js +1 -2
  138. package/src/components/molecules/TagAndInput/index.js +6 -5
  139. package/src/components/organisms/Chat/Chat.stories.js +27 -7
  140. package/src/components/organisms/Chat/ContainerItems/index.js +18 -2
  141. package/src/components/organisms/Chat/ContainerItems/styles.js +14 -2
  142. package/src/components/organisms/Chat/ContentChat/index.js +88 -12
  143. package/src/components/organisms/Chat/Footer/index.js +11 -0
  144. package/src/components/organisms/Chat/index.js +46 -4
  145. package/src/components/organisms/Chat/styles.js +4 -0
  146. package/src/components/organisms/DashboardMetric/index.js +6 -3
  147. package/src/components/organisms/FullProductNameHeader/index.js +1 -1
  148. package/src/components/organisms/GridProducts/GridProducts.stories.js +5485 -0
  149. package/src/components/organisms/GridProducts/index.js +50 -0
  150. package/src/components/organisms/GridProducts/styles.js +14 -0
  151. package/src/components/organisms/GridProducts/utils.js +111 -0
  152. package/src/components/organisms/InputGroup/index.js +131 -119
  153. package/src/components/organisms/Modal/styles.js +4 -1
  154. package/src/components/organisms/OrderDetail/utils/Table/utils.js +6 -16
  155. package/src/components/organisms/VersionSelector/index.js +1 -1
  156. package/src/components/pages/Dashboard/Dashboard.stories.js +33 -38
  157. package/src/components/pages/Dashboard/index.js +36 -7
  158. package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +100 -83
  159. package/src/components/pages/ProviderProductEdition/index.js +100 -131
  160. package/src/components/pages/ProviderProductEdition/styles.js +5 -1
  161. package/src/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +6 -2
  162. package/src/components/pages/RetailerProductEdition/index.js +107 -137
  163. package/src/components/pages/RetailerProductEdition/styles.js +4 -0
  164. package/src/components/pages/RetailerProductEdition/utils.js +37 -0
  165. package/src/global-files/data.js +7 -13
  166. package/src/global-files/variables.js +4 -0
  167. package/src/index.js +11 -0
@@ -27,7 +27,7 @@ export const CarouselImagesLogin = ({
27
27
  img2.src = images[i];
28
28
  const circulo_actual = Array.from(circulos).find((el) => el.id === i);
29
29
  Array.from(circulos).forEach((cir) => cir.classList.remove("resaltado"));
30
- circulo_actual.classList.add("resaltado");
30
+ circulo_actual?.classList.add("resaltado");
31
31
  img1.classList.add("right");
32
32
  img2.classList.add("active");
33
33
  i++;
@@ -7,7 +7,6 @@ import { useState, useEffect } from "react";
7
7
  import Select from "../../atoms/Select";
8
8
 
9
9
  export const GalleryElement = ({
10
- validation = "null-button",
11
10
  image,
12
11
  gridLayout = false,
13
12
  id = "chk-default",
@@ -16,7 +15,6 @@ export const GalleryElement = ({
16
15
  imageInputs,
17
16
  imageType,
18
17
  imagePackagingType,
19
- imageShotType,
20
18
  changeImage,
21
19
  selectedImages,
22
20
  setSelectedImages,
@@ -24,7 +22,6 @@ export const GalleryElement = ({
24
22
  auditImages,
25
23
  compare,
26
24
  }) => {
27
- const [statusValidation, setStatusValidation] = useState(validation);
28
25
  const [showValidationPanel, setShowValidationPanel] = useState(false);
29
26
 
30
27
  const closeValidationPanel = (e) => {
@@ -62,7 +59,6 @@ export const GalleryElement = ({
62
59
  };
63
60
 
64
61
  return (
65
-
66
62
  <Container
67
63
  className={`${gridLayout ? "grid-gallery" : "row-gallery"} ${
68
64
  compare && !isEquals(image?.uuid, auditImages?.values[number]?.uuid)
@@ -70,8 +66,6 @@ export const GalleryElement = ({
70
66
  : ""
71
67
  }`}
72
68
  >
73
-
74
-
75
69
  <div className="buttons-container">
76
70
  <CheckBox id={id} label={label} onChange={(e) => checkOnChange(e)} />
77
71
  </div>
@@ -89,6 +83,19 @@ export const GalleryElement = ({
89
83
  {image.width}x{image.height}
90
84
  </p>
91
85
  <p>{image.ext}</p>
86
+ <CheckBox
87
+ className="center"
88
+ id={`has-description-${image.id}`}
89
+ defaultChecked={image.has_leyend}
90
+ onChange={(e) => {
91
+ changeImage({
92
+ action: "changeImageInfo",
93
+ attribute: "has_leyend",
94
+ value: e.target.checked,
95
+ index: number,
96
+ });
97
+ }}
98
+ />
92
99
  <Select
93
100
  width="100%"
94
101
  placeholder="Tipo de toma"
@@ -102,7 +109,6 @@ export const GalleryElement = ({
102
109
  attribute: "image_id",
103
110
  value: +e.target.value,
104
111
  index: number,
105
-
106
112
  });
107
113
  }}
108
114
  />
@@ -120,7 +126,7 @@ export const GalleryElement = ({
120
126
  });
121
127
  }}
122
128
  />
123
-
129
+
124
130
  <Select
125
131
  width="100%"
126
132
  placeholder="Tipo de empaque"
@@ -57,6 +57,13 @@ export const Container = styled.div`
57
57
  display: flex;
58
58
  flex: 1;
59
59
 
60
+ .center {
61
+ max-width: 120px;
62
+ display: flex;
63
+ justify-content: center;
64
+ align-items: center;
65
+ }
66
+
60
67
  p {
61
68
  font-family: ${FontFamily.Lato};
62
69
  color: ${GlobalColors.s4};
@@ -17,6 +17,7 @@ export const GalleryHeader = ({ setCheckAll, setSelectedImages, shotThd }) => {
17
17
  <p className="image-name">Nombre</p>
18
18
  <p className="image-size">Tamaño</p>
19
19
  <p className="image-format">Formato</p>
20
+ <p className="image-description">¿Tiene leyenda?</p>
20
21
  <p className="">Tipo de toma</p>
21
22
  <p className="">Tipo de imagen</p>
22
23
  <p className="">Tipo de empaque</p>
@@ -41,5 +41,9 @@ export const Container = styled.div`
41
41
  &.image-identifier {
42
42
  max-width: 80px;
43
43
  }
44
+
45
+ &.image-description {
46
+ max-width: 120px;
47
+ }
44
48
  }
45
49
  `;
@@ -0,0 +1,126 @@
1
+ import { GridItem } from ".";
2
+
3
+ export default { title: "Components/molecules/GridItem", component: GridItem };
4
+
5
+ const Template = (args) => <GridItem {...args} />;
6
+ export const GridItemDefault = Template.bind({});
7
+ GridItemDefault.args = {
8
+ article: {
9
+ services: {
10
+ datasheets: 1,
11
+ descriptions: 1,
12
+ images: 1,
13
+ },
14
+ orderId: 15254,
15
+ status: "Ex",
16
+ datasheet_status: "Ex",
17
+ prio: "none",
18
+ version: 15,
19
+ description_status: "Ex",
20
+ images_status: "Ex",
21
+ statusByRetailer: {
22
+ 70: {
23
+ datasheet: "Ex",
24
+ description: "Ex",
25
+ images: "Ex",
26
+ },
27
+ },
28
+ id_article: 38443,
29
+ id_category: "4319",
30
+ name: "Im Polvo Compacto Natural 2",
31
+ upc: "7501611823017",
32
+ timestamp: "2023-03-15T05:54:54.000Z",
33
+ id_user: 133,
34
+ status: "Ex",
35
+ active: 1,
36
+ company_id: 912,
37
+ company_name: "GRUPO BRAHMA",
38
+ country: "México",
39
+ id_order: 15254,
40
+ id_datasheet_especialist: 1841,
41
+ id_datasheet_facilitator: null,
42
+ id_description_especialist: 509,
43
+ id_description_facilitator: null,
44
+ id_images_especialist: 289,
45
+ id_images_facilitator: 160,
46
+ id_auditor: 493,
47
+ id_recepcionist: null,
48
+ category: "Salud y Belleza|Cosméticos|Cosméticos",
49
+ missingAttributes: 0,
50
+ missingDescriptions: 0,
51
+ missingImages: 0,
52
+ retailers: [
53
+ {
54
+ id: 70,
55
+ name: "Bodega Aurrera",
56
+ },
57
+ ],
58
+ country: "México",
59
+ upc: "7501611823017",
60
+ imageArray: [
61
+ {
62
+ id: 35596,
63
+ status: null,
64
+ image_id: 1,
65
+ packing_type: "3",
66
+ image_type: "1",
67
+ article_id: "38443",
68
+ src: "https://d24s337exbt5zr.cloudfront.net/eyJidWNrZXQiOiJjb250ZW50LW1hbmFnZW1lbnQtaW1hZ2VzIiwia2V5IjoiaWQtMzg0NDMvMTUvMS1kNDQ2ZjIwNy0wYTkzLTQyNzgtYWZjNi01MTY2ZjIyY2EzNDMucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoxMDAwLCJoZWlnaHQiOjEwMDAsImZpdCI6ImNvbnRhaW4iLCJiYWNrZ3JvdW5kIjp7InIiOjI1NSwiZyI6MjU1LCJiIjoyNTUsImFscGhhIjoxfX19fQ==",
69
+ timestamp: "2023-05-30T03:01:12.000Z",
70
+ id_version: 15,
71
+ width: null,
72
+ height: null,
73
+ scene_type: null,
74
+ image_shot_type: null,
75
+ last_modified: "2023-06-05T23:49:49.000Z",
76
+ name: "Central (Frente Comercial)",
77
+ version: 15,
78
+ ext: "png",
79
+ uuid: "d446f207-0a93-4278-afc6-5166f22ca343",
80
+ srcDB: "id-38443/15/1-d446f207-0a93-4278-afc6-5166f22ca343.png",
81
+ },
82
+ {
83
+ id: 35597,
84
+ status: null,
85
+ image_id: 3,
86
+ packing_type: "3",
87
+ image_type: "1",
88
+ article_id: "38443",
89
+ src: "https://d24s337exbt5zr.cloudfront.net/eyJidWNrZXQiOiJjb250ZW50LW1hbmFnZW1lbnQtaW1hZ2VzIiwia2V5IjoiaWQtMzg0NDMvMTUvMy0yOTZkMzU3ZC00OTUzLTRiMzktYjFjMy04YWZmZDI2NDgwMWIucG5nIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoxMDAwLCJoZWlnaHQiOjEwMDAsImZpdCI6ImNvbnRhaW4iLCJiYWNrZ3JvdW5kIjp7InIiOjI1NSwiZyI6MjU1LCJiIjoyNTUsImFscGhhIjoxfX19fQ==",
90
+ timestamp: "2023-05-30T03:01:12.000Z",
91
+ id_version: 15,
92
+ width: null,
93
+ height: null,
94
+ scene_type: null,
95
+ image_shot_type: null,
96
+ last_modified: "2023-06-05T23:49:49.000Z",
97
+ name: "Trasera (Back)",
98
+ version: 15,
99
+ ext: "png",
100
+ uuid: "296d357d-4953-4b39-b1c3-8affd264801b",
101
+ srcDB: "id-38443/15/3-296d357d-4953-4b39-b1c3-8affd264801b.png",
102
+ },
103
+ {
104
+ id: 35598,
105
+ status: null,
106
+ image_id: 16,
107
+ packing_type: "3",
108
+ image_type: "1",
109
+ article_id: "38443",
110
+ src: "https://d24s337exbt5zr.cloudfront.net/eyJidWNrZXQiOiJjb250ZW50LW1hbmFnZW1lbnQtaW1hZ2VzIiwia2V5IjoiaWQtMzg0NDMvMTUvMTYtOGMzNDIzM2YtZTRiMC00MjU0LWFlYzUtZjEyN2ZiYjhkYmVkLnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6MTAwMCwiaGVpZ2h0IjoxMDAwLCJmaXQiOiJjb250YWluIiwiYmFja2dyb3VuZCI6eyJyIjoyNTUsImciOjI1NSwiYiI6MjU1LCJhbHBoYSI6MX19fX0=",
111
+ timestamp: "2023-05-30T03:01:12.000Z",
112
+ id_version: 15,
113
+ width: null,
114
+ height: null,
115
+ scene_type: null,
116
+ image_shot_type: null,
117
+ last_modified: "2023-06-05T23:49:49.000Z",
118
+ name: "Detalle / Características 1",
119
+ version: 15,
120
+ ext: "png",
121
+ uuid: "8c34233f-e4b0-4254-aec5-f127fbb8dbed",
122
+ srcDB: "id-38443/15/16-8c34233f-e4b0-4254-aec5-f127fbb8dbed.png",
123
+ },
124
+ ],
125
+ },
126
+ };
@@ -0,0 +1,105 @@
1
+ import { Container } from "./styles";
2
+ import { ImageCarousel } from "../../atoms/ImageCarousel";
3
+ import { Status } from "../../atoms/Status";
4
+ import { PercentTag } from "../../atoms/PercentTag";
5
+ import { ButtonV2 } from "../../atoms/ButtonV2";
6
+ import { faStar as starIcon } from "@fortawesome/free-regular-svg-icons";
7
+ import { faCartPlus as cartIcon } from "@fortawesome/free-solid-svg-icons";
8
+ import { RatingStars } from "../../atoms/RatingStars";
9
+ import { CheckBox } from "../../atoms/CheckBox";
10
+
11
+ export const GridItem = ({
12
+ gridElement = {},
13
+ product,
14
+ id,
15
+ isMerchans,
16
+ chkOnChange,
17
+ onGridClick,
18
+ chkChecked,
19
+ index,
20
+ }) => {
21
+ const { images = [], info = [], status = [], catalogs = {} } = gridElement;
22
+
23
+ const getSrvName = (srv) => {
24
+ switch (srv) {
25
+ case "datasheet":
26
+ return "F.T.";
27
+ case "description":
28
+ return "D.C.";
29
+ case "images":
30
+ return "IMG";
31
+ case "general":
32
+ return "S.G.";
33
+ default:
34
+ return srv;
35
+ }
36
+ };
37
+
38
+ return (
39
+ <Container onClick={(e) => onGridClick && onGridClick(e, product, index)}>
40
+ <div className="chk-container" onClick={(e) => e.stopPropagation()}>
41
+ <CheckBox
42
+ id={"chk-" + id}
43
+ name={"chk-" + id}
44
+ className="chk-absolute"
45
+ onChange={(e) => chkOnChange && chkOnChange(e, product)}
46
+ defaultChecked={chkChecked && chkChecked(product)}
47
+ />
48
+ </div>
49
+ <ImageCarousel imageArray={images} />
50
+ <div className="data-body">
51
+ {info?.map((item, i) =>
52
+ i === 0 ? <h3 key={i}>{item.value}</h3> : <p key={i}>{item.value}</p>
53
+ )}
54
+ </div>
55
+ <div className="status-slider">
56
+ {status?.map(({ title, value, percent }) => (
57
+ <div className="status-element">
58
+ {title && (
59
+ <div className="srv-name">
60
+ <p>{getSrvName(title)}</p>
61
+ </div>
62
+ )}
63
+ {value && <Status statusType={value} />}
64
+ {percent && (
65
+ <PercentTag percent={percent} progressBarType={value} />
66
+ )}
67
+ </div>
68
+ ))}
69
+ </div>
70
+ {isMerchans ? (
71
+ <div className="cart-and-raiting">
72
+ <ButtonV2
73
+ borderType="circle"
74
+ type="whiteS2"
75
+ icon={starIcon}
76
+ size={10}
77
+ className="star-button"
78
+ />
79
+ <ButtonV2
80
+ borderType="circle"
81
+ type="whiteS2"
82
+ icon={cartIcon}
83
+ size={10}
84
+ className="star-button"
85
+ />
86
+ <ButtonV2
87
+ borderType="circle"
88
+ type="whiteS2"
89
+ icon={cartIcon}
90
+ size={10}
91
+ className="star-button"
92
+ />
93
+ <RatingStars ratingValue={4} />
94
+ </div>
95
+ ) : (
96
+ catalogs && (
97
+ <div className="retailers-and-user">
98
+ <div className="retailers-container">{catalogs.leftSide}</div>
99
+ <div className="users-container">{catalogs.rightSide}</div>
100
+ </div>
101
+ )
102
+ )}
103
+ </Container>
104
+ );
105
+ };
@@ -0,0 +1,104 @@
1
+ import styled from "styled-components";
2
+ import { FontFamily } from "../../../global-files/variables";
3
+
4
+ export const Container = styled.div`
5
+ width: 175px;
6
+ border: 1px solid #f0f0f0;
7
+ position: relative;
8
+ height: fit-content;
9
+
10
+ .chk-container {
11
+ position: absolute;
12
+ top: 5px;
13
+ left: 5px;
14
+ z-index: 5;
15
+ height: 16px;
16
+ }
17
+
18
+ .data-body {
19
+ padding: 10px;
20
+ border-bottom: 1px solid #f0f0f0;
21
+
22
+ & > h3,
23
+ & > p {
24
+ color: #262626;
25
+ font-family: ${FontFamily.Lato};
26
+ font-size: 12px;
27
+ line-height: 16px;
28
+ overflow: hidden;
29
+ white-space: nowrap;
30
+ text-overflow: ellipsis;
31
+
32
+ & + p {
33
+ margin-top: 5px;
34
+ }
35
+ }
36
+ p {
37
+ font-size: 10px;
38
+ line-height: 12px;
39
+ color: #808080;
40
+ }
41
+ }
42
+
43
+ .status-slider {
44
+ display: flex;
45
+ padding: 5px 10px;
46
+ overflow: auto;
47
+ border-bottom: 1px solid #f0f0f0;
48
+ flex-wrap: nowrap;
49
+
50
+ .status-element {
51
+ display: flex;
52
+
53
+ .srv-name {
54
+ background-color: #808080;
55
+ padding: 0 10px;
56
+ border-radius: 5px;
57
+ p {
58
+ font-family: ${FontFamily.AvenirNext};
59
+ font-size: 12px;
60
+ line-height: 20px;
61
+ font-weight: 700;
62
+ color: #fff;
63
+ }
64
+ }
65
+ }
66
+
67
+ * + * {
68
+ margin-left: 10px;
69
+ }
70
+ }
71
+
72
+ .cart-and-raiting,
73
+ .retailers-and-user {
74
+ display: flex;
75
+ align-items: center;
76
+ justify-content: space-between;
77
+ padding: 5px 10px;
78
+ .star-button {
79
+ button {
80
+ padding: 3px;
81
+ color: transparent;
82
+ -webkit-text-stroke: 1px #808080;
83
+ }
84
+ }
85
+ }
86
+
87
+ .retailers-and-user {
88
+ padding: 0;
89
+ > * {
90
+ flex: 1 0 50%;
91
+ display: flex;
92
+ padding: 5px;
93
+ height: 36px;
94
+ }
95
+ .retailers-container {
96
+ border-right: 1px solid #f0f0f0;
97
+ }
98
+ }
99
+
100
+ &:hover {
101
+ cursor: pointer;
102
+ box-shadow: 1px 2px 5px black;
103
+ }
104
+ `;
@@ -0,0 +1,9 @@
1
+ import { Column } from "./styles";
2
+
3
+ export const ColumnItem = ({ name, flex, minWidth }) => {
4
+ return (
5
+ <Column flex={flex} minWidth={minWidth}>
6
+ {name}
7
+ </Column>
8
+ );
9
+ };
@@ -0,0 +1,24 @@
1
+ import { HeaderItem } from ".";
2
+
3
+ export default {
4
+ title: "Components/molecules/HeaderItem",
5
+ component: HeaderItem,
6
+ };
7
+
8
+ const Template = (args) => <HeaderItem {...args} />;
9
+ export const HeaderItemDefault = Template.bind({});
10
+
11
+ HeaderItemDefault.args = {
12
+ columnsArray: [
13
+ { name: "Reg", flex: 1, minWidth: 100 },
14
+ { name: "Orden", flex: 1, minWidth: 100 },
15
+ { name: "UPC", flex: 1, minWidth: 100 },
16
+ { name: "Nombre", flex: 1, minWidth: 100 },
17
+ { name: "Marca", flex: 1, minWidth: 100 },
18
+ { name: "Estatus", flex: 1, minWidth: 100 },
19
+ { name: "Cadenas", flex: 1, minWidth: 100 },
20
+ { name: "Prio", flex: 1, minWidth: 100 },
21
+ { name: "E.D", flex: 1, minWidth: 100 },
22
+ { name: "Cont.", flex: 1, minWidth: 100 },
23
+ ],
24
+ };
@@ -0,0 +1,26 @@
1
+ import { Container } from "./styles";
2
+ import { ColumnItem } from "./ColumnItem";
3
+ import { CheckBox } from "../../atoms/CheckBox";
4
+
5
+ export const HeaderItem = ({ columnsArray = [], checkAll, chkCheckedAll }) => {
6
+ return (
7
+ <Container>
8
+ <div className="chk-global-container">
9
+ <CheckBox
10
+ id={"chk-global"}
11
+ name={"chk-global"}
12
+ onChange={(e) => checkAll && checkAll(e)}
13
+ checked={chkCheckedAll && chkCheckedAll()}
14
+ />
15
+ </div>
16
+ {columnsArray.map((col, i) => (
17
+ <ColumnItem
18
+ key={i}
19
+ flex={col.flex}
20
+ name={col.name}
21
+ minWidth={col.minWidth}
22
+ />
23
+ ))}
24
+ </Container>
25
+ );
26
+ };
@@ -0,0 +1,27 @@
1
+ import styled from "styled-components";
2
+ import { FontFamily } from "../../../global-files/variables";
3
+
4
+ export const Container = styled.div`
5
+ background-color: #f0f0f0;
6
+ display: flex;
7
+ width: 100%;
8
+ min-width: fit-content;
9
+
10
+ .chk-global-container {
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ min-width: 30px;
15
+ }
16
+ `;
17
+
18
+ export const Column = styled.div`
19
+ flex: ${({ flex }) => (flex ? flex : 1)};
20
+ min-width: ${({ minWidth }) => (minWidth ? minWidth : 100)}px;
21
+ text-align: center;
22
+ color: #262626;
23
+ font-family: ${FontFamily.Lato};
24
+ font-size: 12px;
25
+ line-height: 16px;
26
+ padding: 10px 5px;
27
+ `;
@@ -4,10 +4,13 @@ import { Button } from "../../atoms/GeneralButton/index";
4
4
  import { useEffect, useRef } from "react";
5
5
  import { Chat } from "../../organisms/Chat";
6
6
  import auditIcon from "../../../../src/assets/images/generalButton/Icono AB.svg";
7
+ import { useState } from "react";
8
+ import { render } from "@testing-library/react";
7
9
 
8
10
  export const HeaderTop = ({
9
11
  setHeaderTop,
10
12
  withChat,
13
+ chatType,
11
14
  productSelected,
12
15
  token,
13
16
  auditableVersion,
@@ -16,16 +19,51 @@ export const HeaderTop = ({
16
19
  activeRetailer,
17
20
  }) => {
18
21
  const headerTop = useRef();
22
+ const [chat, setChat] = useState(null);
23
+ const [chatData, setChatData] = useState(null);
24
+
25
+ useEffect(() => {
26
+ if (activeRetailer.id && productSelected && token.length) {
27
+ setChatData({
28
+ id: productSelected?.article?.id_article || productSelected?.id_article,
29
+ version: productSelected?.version,
30
+ retailerId: activeRetailer?.id,
31
+ status: productSelected?.status,
32
+ userToken: token,
33
+ });
34
+ }
35
+ }, [activeRetailer, productSelected, token]);
36
+
37
+ useEffect(() => {
38
+ if (chatType) renderChat(chatType);
39
+ }, [chatData, chatType]);
19
40
 
20
41
  useEffect(() => {
21
42
  setHeaderTop && setHeaderTop(headerTop.current.clientHeight);
22
43
  }, []);
23
44
 
24
- return (
25
- <Container ref={headerTop}>
26
- <ScreenHeader text="Edición de producto" />
27
- <div className="buttons-container">
28
- {withChat && (
45
+ const renderChat = (chatType) => {
46
+ switch (chatType) {
47
+ case "product_status":
48
+ chatData &&
49
+ setChat(
50
+ <Chat
51
+ chatType="product_status"
52
+ chatContainerType="popUp"
53
+ chatData={{
54
+ id: chatData?.id,
55
+ version: chatData?.version,
56
+ retailerId: chatData?.retailerId,
57
+ status: chatData?.status,
58
+ userToken: chatData?.userToken,
59
+ }}
60
+ size={18}
61
+ activeRetailer={activeRetailer}
62
+ />
63
+ );
64
+ break;
65
+ default:
66
+ setChat(
29
67
  <Chat
30
68
  chatType="merchant_product"
31
69
  chatContainerType="popUp"
@@ -37,8 +75,16 @@ export const HeaderTop = ({
37
75
  size={18}
38
76
  activeRetailer={activeRetailer}
39
77
  />
40
- )}
78
+ );
79
+ break;
80
+ }
81
+ };
41
82
 
83
+ return (
84
+ <Container ref={headerTop}>
85
+ <ScreenHeader text="Edición de producto" />
86
+ <div className="buttons-container">
87
+ {withChat && chat}
42
88
  {isAuditor && auditableVersion && (
43
89
  <Button
44
90
  buttonType="general-white-button circular-button"
@@ -0,0 +1,9 @@
1
+ import { Column } from "./styles";
2
+
3
+ export const ColumnItem = ({ element, flex, minWidth }) => {
4
+ return (
5
+ <Column flex={flex} minWidth={minWidth}>
6
+ {element}
7
+ </Column>
8
+ );
9
+ };