jornada-ui 0.4.15 → 0.4.17

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 (222) hide show
  1. package/lib/commonjs/common/icons-svg/constants/index.js +2 -1
  2. package/lib/commonjs/common/icons-svg/constants/index.js.map +1 -1
  3. package/lib/commonjs/common/icons-svg/download/index.js +53 -0
  4. package/lib/commonjs/common/icons-svg/download/index.js.map +1 -0
  5. package/lib/commonjs/common/icons-svg/index.js +7 -0
  6. package/lib/commonjs/common/icons-svg/index.js.map +1 -1
  7. package/lib/commonjs/components/inputs/input-date-time/index.js +11 -9
  8. package/lib/commonjs/components/inputs/input-date-time/index.js.map +1 -1
  9. package/lib/commonjs/components/inputs/input-date-time/styles.js +6 -3
  10. package/lib/commonjs/components/inputs/input-date-time/styles.js.map +1 -1
  11. package/lib/commonjs/components/modals/modal-change-activitie-history/helpers/index.js +35 -0
  12. package/lib/commonjs/components/modals/modal-change-activitie-history/helpers/index.js.map +1 -0
  13. package/lib/commonjs/components/modals/modal-change-activitie-history/index.js +203 -0
  14. package/lib/commonjs/components/modals/modal-change-activitie-history/index.js.map +1 -0
  15. package/lib/commonjs/components/modals/modal-change-activitie-history/interface.js +6 -0
  16. package/lib/commonjs/components/modals/modal-change-activitie-history/interface.js.map +1 -0
  17. package/lib/commonjs/components/modals/{modal-journey-rectification → modal-edite-journey-rectification}/index.js +71 -65
  18. package/lib/commonjs/components/modals/modal-edite-journey-rectification/index.js.map +1 -0
  19. package/lib/commonjs/components/modals/modal-edite-journey-rectification/interface.d.js.map +1 -0
  20. package/lib/commonjs/components/notification-card/index.js +142 -0
  21. package/lib/commonjs/components/notification-card/index.js.map +1 -0
  22. package/lib/commonjs/components/notification-card/interface.js +6 -0
  23. package/lib/commonjs/components/notification-card/interface.js.map +1 -0
  24. package/lib/commonjs/components/notification-details-card/index.js +181 -0
  25. package/lib/commonjs/components/notification-details-card/index.js.map +1 -0
  26. package/lib/commonjs/components/notification-details-card/interface.js +6 -0
  27. package/lib/commonjs/components/notification-details-card/interface.js.map +1 -0
  28. package/lib/commonjs/components/step-indicator/index.js +131 -68
  29. package/lib/commonjs/components/step-indicator/index.js.map +1 -1
  30. package/lib/commonjs/components/user-journey-work-card/index.js +44 -4
  31. package/lib/commonjs/components/user-journey-work-card/index.js.map +1 -1
  32. package/lib/commonjs/index.js +19 -5
  33. package/lib/commonjs/index.js.map +1 -1
  34. package/lib/commonjs/stories/button/button.stories.js +0 -2
  35. package/lib/commonjs/stories/button/button.stories.js.map +1 -1
  36. package/lib/commonjs/stories/capture-photo/capture-photo.stories.js +0 -1
  37. package/lib/commonjs/stories/capture-photo/capture-photo.stories.js.map +1 -1
  38. package/lib/commonjs/stories/modal-journey-rectification/modal-journey-rectification.stories.js +3 -3
  39. package/lib/commonjs/stories/modal-journey-rectification/modal-journey-rectification.stories.js.map +1 -1
  40. package/lib/commonjs/stories/notification-card/notification-card.stories.js +100 -0
  41. package/lib/commonjs/stories/notification-card/notification-card.stories.js.map +1 -0
  42. package/lib/commonjs/stories/notification-details-card/notification-details-card.stories.js +112 -0
  43. package/lib/commonjs/stories/notification-details-card/notification-details-card.stories.js.map +1 -0
  44. package/lib/commonjs/stories/user-journey-work-card/user-journey-work-card.stories.js +12 -4
  45. package/lib/commonjs/stories/user-journey-work-card/user-journey-work-card.stories.js.map +1 -1
  46. package/lib/commonjs/styles/theme/theme.js +2 -1
  47. package/lib/commonjs/styles/theme/theme.js.map +1 -1
  48. package/lib/module/common/icons-svg/constants/index.js +2 -1
  49. package/lib/module/common/icons-svg/constants/index.js.map +1 -1
  50. package/lib/module/common/icons-svg/download/index.js +47 -0
  51. package/lib/module/common/icons-svg/download/index.js.map +1 -0
  52. package/lib/module/common/icons-svg/index.js +7 -0
  53. package/lib/module/common/icons-svg/index.js.map +1 -1
  54. package/lib/module/components/inputs/input-date-time/index.js +11 -9
  55. package/lib/module/components/inputs/input-date-time/index.js.map +1 -1
  56. package/lib/module/components/inputs/input-date-time/styles.js +6 -3
  57. package/lib/module/components/inputs/input-date-time/styles.js.map +1 -1
  58. package/lib/module/components/modals/modal-change-activitie-history/helpers/index.js +32 -0
  59. package/lib/module/components/modals/modal-change-activitie-history/helpers/index.js.map +1 -0
  60. package/lib/module/components/modals/modal-change-activitie-history/index.js +196 -0
  61. package/lib/module/components/modals/modal-change-activitie-history/index.js.map +1 -0
  62. package/lib/module/components/modals/modal-change-activitie-history/interface.js +4 -0
  63. package/lib/module/components/modals/modal-change-activitie-history/interface.js.map +1 -0
  64. package/lib/module/components/modals/{modal-journey-rectification → modal-edite-journey-rectification}/index.js +69 -63
  65. package/lib/module/components/modals/modal-edite-journey-rectification/index.js.map +1 -0
  66. package/lib/module/components/modals/modal-edite-journey-rectification/interface.d.js.map +1 -0
  67. package/lib/module/components/notification-card/index.js +135 -0
  68. package/lib/module/components/notification-card/index.js.map +1 -0
  69. package/lib/module/components/notification-card/interface.js +4 -0
  70. package/lib/module/components/notification-card/interface.js.map +1 -0
  71. package/lib/module/components/notification-details-card/index.js +183 -0
  72. package/lib/module/components/notification-details-card/index.js.map +1 -0
  73. package/lib/module/components/notification-details-card/interface.js +4 -0
  74. package/lib/module/components/notification-details-card/interface.js.map +1 -0
  75. package/lib/module/components/step-indicator/index.js +129 -65
  76. package/lib/module/components/step-indicator/index.js.map +1 -1
  77. package/lib/module/components/user-journey-work-card/index.js +44 -4
  78. package/lib/module/components/user-journey-work-card/index.js.map +1 -1
  79. package/lib/module/index.js +3 -1
  80. package/lib/module/index.js.map +1 -1
  81. package/lib/module/stories/button/button.stories.js +0 -1
  82. package/lib/module/stories/button/button.stories.js.map +1 -1
  83. package/lib/module/stories/capture-photo/capture-photo.stories.js +0 -1
  84. package/lib/module/stories/capture-photo/capture-photo.stories.js.map +1 -1
  85. package/lib/module/stories/modal-journey-rectification/modal-journey-rectification.stories.js +3 -3
  86. package/lib/module/stories/modal-journey-rectification/modal-journey-rectification.stories.js.map +1 -1
  87. package/lib/module/stories/notification-card/notification-card.stories.js +95 -0
  88. package/lib/module/stories/notification-card/notification-card.stories.js.map +1 -0
  89. package/lib/module/stories/notification-details-card/notification-details-card.stories.js +107 -0
  90. package/lib/module/stories/notification-details-card/notification-details-card.stories.js.map +1 -0
  91. package/lib/module/stories/user-journey-work-card/user-journey-work-card.stories.js +12 -4
  92. package/lib/module/stories/user-journey-work-card/user-journey-work-card.stories.js.map +1 -1
  93. package/lib/module/styles/theme/theme.js +2 -1
  94. package/lib/module/styles/theme/theme.js.map +1 -1
  95. package/lib/typescript/commonjs/src/common/icons-svg/constants/index.d.ts +1 -0
  96. package/lib/typescript/commonjs/src/common/icons-svg/constants/index.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/src/common/icons-svg/download/index.d.ts +11 -0
  98. package/lib/typescript/commonjs/src/common/icons-svg/download/index.d.ts.map +1 -0
  99. package/lib/typescript/commonjs/src/common/icons-svg/index.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/src/components/card-report/index.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/src/components/card-scheduled-journey/index.d.ts +1 -1
  102. package/lib/typescript/commonjs/src/components/inputs/input-date-time/index.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/src/components/inputs/input-date-time/styles.d.ts +2 -1
  104. package/lib/typescript/commonjs/src/components/inputs/input-date-time/styles.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/components/modals/modal-change-activitie-history/helpers/index.d.ts +13 -0
  106. package/lib/typescript/commonjs/src/components/modals/modal-change-activitie-history/helpers/index.d.ts.map +1 -0
  107. package/lib/typescript/commonjs/src/components/modals/modal-change-activitie-history/index.d.ts +10 -0
  108. package/lib/typescript/commonjs/src/components/modals/modal-change-activitie-history/index.d.ts.map +1 -0
  109. package/lib/typescript/commonjs/src/components/modals/modal-change-activitie-history/interface.d.ts +18 -0
  110. package/lib/typescript/commonjs/src/components/modals/modal-change-activitie-history/interface.d.ts.map +1 -0
  111. package/lib/typescript/commonjs/src/components/modals/{modal-journey-rectification → modal-edite-journey-rectification}/index.d.ts +3 -0
  112. package/lib/typescript/commonjs/src/components/modals/modal-edite-journey-rectification/index.d.ts.map +1 -0
  113. package/lib/typescript/commonjs/src/components/notification-card/index.d.ts +11 -0
  114. package/lib/typescript/commonjs/src/components/notification-card/index.d.ts.map +1 -0
  115. package/lib/typescript/commonjs/src/components/notification-card/interface.d.ts +17 -0
  116. package/lib/typescript/commonjs/src/components/notification-card/interface.d.ts.map +1 -0
  117. package/lib/typescript/commonjs/src/components/notification-details-card/index.d.ts +11 -0
  118. package/lib/typescript/commonjs/src/components/notification-details-card/index.d.ts.map +1 -0
  119. package/lib/typescript/commonjs/src/components/notification-details-card/interface.d.ts +15 -0
  120. package/lib/typescript/commonjs/src/components/notification-details-card/interface.d.ts.map +1 -0
  121. package/lib/typescript/commonjs/src/components/selects/select-date-and-hours/index.d.ts +1 -1
  122. package/lib/typescript/commonjs/src/components/step-indicator/index.d.ts +3 -9
  123. package/lib/typescript/commonjs/src/components/step-indicator/index.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/src/components/travel-history/index.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/src/components/user-journey-work-card/index.d.ts +2 -0
  126. package/lib/typescript/commonjs/src/components/user-journey-work-card/index.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/src/index.d.ts +3 -1
  128. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/src/stories/modal-journey-rectification/modal-journey-rectification.stories.d.ts +1 -1
  130. package/lib/typescript/commonjs/src/stories/modal-journey-rectification/modal-journey-rectification.stories.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/src/stories/notification-card/notification-card.stories.d.ts +14 -0
  132. package/lib/typescript/commonjs/src/stories/notification-card/notification-card.stories.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/src/stories/notification-details-card/notification-details-card.stories.d.ts +16 -0
  134. package/lib/typescript/commonjs/src/stories/notification-details-card/notification-details-card.stories.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/src/stories/user-journey-work-card/user-journey-work-card.stories.d.ts.map +1 -1
  136. package/lib/typescript/commonjs/src/styles/global/theme-provider.d.ts +1 -0
  137. package/lib/typescript/commonjs/src/styles/global/theme-provider.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/src/styles/theme/theme.d.ts +1 -0
  139. package/lib/typescript/commonjs/src/styles/theme/theme.d.ts.map +1 -1
  140. package/lib/typescript/module/src/common/icons-svg/constants/index.d.ts +1 -0
  141. package/lib/typescript/module/src/common/icons-svg/constants/index.d.ts.map +1 -1
  142. package/lib/typescript/module/src/common/icons-svg/download/index.d.ts +11 -0
  143. package/lib/typescript/module/src/common/icons-svg/download/index.d.ts.map +1 -0
  144. package/lib/typescript/module/src/common/icons-svg/index.d.ts.map +1 -1
  145. package/lib/typescript/module/src/components/card-report/index.d.ts.map +1 -1
  146. package/lib/typescript/module/src/components/card-scheduled-journey/index.d.ts +1 -1
  147. package/lib/typescript/module/src/components/inputs/input-date-time/index.d.ts.map +1 -1
  148. package/lib/typescript/module/src/components/inputs/input-date-time/styles.d.ts +2 -1
  149. package/lib/typescript/module/src/components/inputs/input-date-time/styles.d.ts.map +1 -1
  150. package/lib/typescript/module/src/components/modals/modal-change-activitie-history/helpers/index.d.ts +13 -0
  151. package/lib/typescript/module/src/components/modals/modal-change-activitie-history/helpers/index.d.ts.map +1 -0
  152. package/lib/typescript/module/src/components/modals/modal-change-activitie-history/index.d.ts +10 -0
  153. package/lib/typescript/module/src/components/modals/modal-change-activitie-history/index.d.ts.map +1 -0
  154. package/lib/typescript/module/src/components/modals/modal-change-activitie-history/interface.d.ts +18 -0
  155. package/lib/typescript/module/src/components/modals/modal-change-activitie-history/interface.d.ts.map +1 -0
  156. package/lib/typescript/module/src/components/modals/{modal-journey-rectification → modal-edite-journey-rectification}/index.d.ts +3 -0
  157. package/lib/typescript/module/src/components/modals/modal-edite-journey-rectification/index.d.ts.map +1 -0
  158. package/lib/typescript/module/src/components/notification-card/index.d.ts +11 -0
  159. package/lib/typescript/module/src/components/notification-card/index.d.ts.map +1 -0
  160. package/lib/typescript/module/src/components/notification-card/interface.d.ts +17 -0
  161. package/lib/typescript/module/src/components/notification-card/interface.d.ts.map +1 -0
  162. package/lib/typescript/module/src/components/notification-details-card/index.d.ts +11 -0
  163. package/lib/typescript/module/src/components/notification-details-card/index.d.ts.map +1 -0
  164. package/lib/typescript/module/src/components/notification-details-card/interface.d.ts +15 -0
  165. package/lib/typescript/module/src/components/notification-details-card/interface.d.ts.map +1 -0
  166. package/lib/typescript/module/src/components/selects/select-date-and-hours/index.d.ts +1 -1
  167. package/lib/typescript/module/src/components/step-indicator/index.d.ts +3 -9
  168. package/lib/typescript/module/src/components/step-indicator/index.d.ts.map +1 -1
  169. package/lib/typescript/module/src/components/travel-history/index.d.ts.map +1 -1
  170. package/lib/typescript/module/src/components/user-journey-work-card/index.d.ts +2 -0
  171. package/lib/typescript/module/src/components/user-journey-work-card/index.d.ts.map +1 -1
  172. package/lib/typescript/module/src/index.d.ts +3 -1
  173. package/lib/typescript/module/src/index.d.ts.map +1 -1
  174. package/lib/typescript/module/src/stories/modal-journey-rectification/modal-journey-rectification.stories.d.ts +1 -1
  175. package/lib/typescript/module/src/stories/modal-journey-rectification/modal-journey-rectification.stories.d.ts.map +1 -1
  176. package/lib/typescript/module/src/stories/notification-card/notification-card.stories.d.ts +14 -0
  177. package/lib/typescript/module/src/stories/notification-card/notification-card.stories.d.ts.map +1 -0
  178. package/lib/typescript/module/src/stories/notification-details-card/notification-details-card.stories.d.ts +16 -0
  179. package/lib/typescript/module/src/stories/notification-details-card/notification-details-card.stories.d.ts.map +1 -0
  180. package/lib/typescript/module/src/stories/user-journey-work-card/user-journey-work-card.stories.d.ts.map +1 -1
  181. package/lib/typescript/module/src/styles/global/theme-provider.d.ts +1 -0
  182. package/lib/typescript/module/src/styles/global/theme-provider.d.ts.map +1 -1
  183. package/lib/typescript/module/src/styles/theme/theme.d.ts +1 -0
  184. package/lib/typescript/module/src/styles/theme/theme.d.ts.map +1 -1
  185. package/package.json +1 -1
  186. package/src/common/icons-svg/constants/index.ts +1 -0
  187. package/src/common/icons-svg/download/index.tsx +52 -0
  188. package/src/common/icons-svg/index.tsx +4 -0
  189. package/src/components/card-report/interface.d.ts +1 -1
  190. package/src/components/inputs/input-date-time/index.tsx +13 -12
  191. package/src/components/inputs/input-date-time/styles.ts +64 -63
  192. package/src/components/modals/modal-change-activitie-history/helpers/index.ts +15 -0
  193. package/src/components/modals/modal-change-activitie-history/index.tsx +189 -0
  194. package/src/components/modals/modal-change-activitie-history/interface.ts +16 -0
  195. package/src/components/modals/{modal-journey-rectification → modal-edite-journey-rectification}/index.tsx +78 -67
  196. package/src/components/modals/{modal-journey-rectification → modal-edite-journey-rectification}/interface.d.ts +10 -10
  197. package/src/components/monthly-summary-table/interface.d.ts +1 -1
  198. package/src/components/notification-card/index.tsx +123 -0
  199. package/src/components/notification-card/interface.ts +18 -0
  200. package/src/components/notification-details-card/index.tsx +180 -0
  201. package/src/components/notification-details-card/interface.ts +16 -0
  202. package/src/components/step-indicator/index.tsx +226 -155
  203. package/src/components/step-indicator/interface.d.ts +3 -2
  204. package/src/components/travel-history/interface.d.ts +1 -1
  205. package/src/components/user-journey-work-card/index.tsx +28 -1
  206. package/src/components/user-journey-work-card/interface.d.ts +149 -145
  207. package/src/index.tsx +3 -1
  208. package/src/stories/button/button.stories.tsx +1 -1
  209. package/src/stories/capture-photo/capture-photo.stories.tsx +1 -1
  210. package/src/stories/modal-journey-rectification/modal-journey-rectification.stories.tsx +60 -60
  211. package/src/stories/notification-card/notification-card.stories.tsx +93 -0
  212. package/src/stories/notification-details-card/notification-details-card.stories.tsx +109 -0
  213. package/src/stories/user-journey-work-card/user-journey-work-card.stories.tsx +71 -63
  214. package/src/styles/theme/theme.ts +1 -0
  215. package/lib/commonjs/components/modals/modal-journey-rectification/index.js.map +0 -1
  216. package/lib/commonjs/components/modals/modal-journey-rectification/interface.d.js.map +0 -1
  217. package/lib/module/components/modals/modal-journey-rectification/index.js.map +0 -1
  218. package/lib/module/components/modals/modal-journey-rectification/interface.d.js.map +0 -1
  219. package/lib/typescript/commonjs/src/components/modals/modal-journey-rectification/index.d.ts.map +0 -1
  220. package/lib/typescript/module/src/components/modals/modal-journey-rectification/index.d.ts.map +0 -1
  221. /package/lib/commonjs/components/modals/{modal-journey-rectification → modal-edite-journey-rectification}/interface.d.js +0 -0
  222. /package/lib/module/components/modals/{modal-journey-rectification → modal-edite-journey-rectification}/interface.d.js +0 -0
@@ -10,6 +10,7 @@ import Typography from "../../typography";
10
10
  import Button from "../../button";
11
11
  import SelectOption from "../../selects/select-option";
12
12
  import InputDateTime from "../../inputs/input-date-time";
13
+ import MaintenanceDescriptionInput from "../../maintenance-description-input";
13
14
 
14
15
  // commons / svg
15
16
  import { Icons } from "../../../common/icons-svg";
@@ -22,44 +23,53 @@ import { asBaseComponent } from "../../../@types/as-base-component";
22
23
  import { theme } from "../../../styles/theme/theme";
23
24
 
24
25
  const options = [
25
- { label: "Disp com veículo parado", value: "option1" },
26
- { label: "Operação com veículo", value: "option2" },
27
- { label: "Em carga", value: "option3" },
28
- { label: "Em descarga", value: "option4" },
26
+ { label: "Disp com veículo parado", value: "8" },
27
+ { label: "Operação com veículo", value: "1" },
28
+ { label: "Em carga", value: "2" },
29
+ { label: "Em descarga", value: "3" },
29
30
  ];
30
31
 
32
+ /**
33
+ * Componente modal para edição de atividade para interação do usuário.
34
+ */
31
35
  const ModalJourneyRectification: React.FC<IModalJourneyRectificationProps> = ({
32
36
  visible,
33
37
  onClose,
34
38
  modalConfirm,
35
39
  textTitle,
40
+ isLoading,
36
41
  }) => {
37
- const [isLoading] = React.useState(false);
38
-
39
- // *** DEFAULTS: já começa com um motivo, data e hora atuais
40
42
  const defaultReason = options[0]?.value ?? null;
41
- const [selectedReason, setSelectedReason] = useState<string | null>(defaultReason); // ***
42
- const [selectedDate, setSelectedDate] = useState<Date>(new Date()); // ***
43
- const [selectedTime, setSelectedTime] = useState<Date>(new Date()); // ***
44
43
 
45
- // helpers de formatação
44
+ const [selectedReason, setSelectedReason] = useState<string | null>(defaultReason);
45
+ const [selectedDate, setSelectedDate] = useState<Date>(new Date());
46
+ const [selectedTime, setSelectedTime] = useState<Date>(new Date());
47
+
48
+ // motivo digitado pelo usuário
49
+ const [editReason, setEditReason] = useState<string>("");
50
+ const [errorReason, setErrorReason] = useState<string>("");
51
+
52
+ // helpers
46
53
  const fmtDate = (d: Date) =>
47
54
  `${String(d.getDate()).padStart(2, "0")}/${String(d.getMonth() + 1).padStart(2, "0")}/${d.getFullYear()}`;
48
-
49
55
  const fmtTime = (d: Date) =>
50
56
  `${String(d.getHours()).padStart(2, "0")}:${String(d.getMinutes()).padStart(2, "0")}`;
51
57
 
52
- // junta data + hora
53
- const mergeDateTime = (date: Date | null, time: Date | null): Date | null => {
54
- if (!date) return null;
55
- const out = new Date(date);
56
- if (time) {
57
- out.setHours(time.getHours());
58
- out.setMinutes(time.getMinutes());
59
- out.setSeconds(0);
60
- out.setMilliseconds(0);
58
+ const handleConfirm = () => {
59
+ if (!editReason.trim()) {
60
+ setErrorReason("Informe o motivo da edição!");
61
+ return;
61
62
  }
62
- return out;
63
+
64
+ const payload = {
65
+ jr_tipo_atividade_id: selectedReason,
66
+ description: options.find((o) => o.value === selectedReason)?.label ?? null,
67
+ date_start: selectedDate ? fmtDate(selectedDate) : null,
68
+ hours_start: selectedTime ? fmtTime(selectedTime) : null,
69
+ edit_reason: editReason.trim(),
70
+ };
71
+
72
+ modalConfirm(payload);
63
73
  };
64
74
 
65
75
  return (
@@ -73,11 +83,9 @@ const ModalJourneyRectification: React.FC<IModalJourneyRectificationProps> = ({
73
83
  }}
74
84
  >
75
85
  <Box
76
- width={"90%"}
86
+ width="90%"
77
87
  backgroundColor={theme.colors.orange[500]}
78
- borderStyled={{
79
- borderRadius: theme.borderWidths.thick_medium,
80
- }}
88
+ borderStyled={{ borderRadius: theme.borderWidths.thick_medium }}
81
89
  paddingStyle={{
82
90
  paddingLeft: theme.paddings["2xs"],
83
91
  paddingRight: theme.paddings["2xs"],
@@ -85,6 +93,7 @@ const ModalJourneyRectification: React.FC<IModalJourneyRectificationProps> = ({
85
93
  paddingBottom: theme.paddings.sm,
86
94
  }}
87
95
  >
96
+ {/* Header */}
88
97
  <Box
89
98
  marginStyle={{ marginBottom: 10, marginLeft: 4 }}
90
99
  flexStyle={{ flexDirection: "row", alignItems: "center" }}
@@ -96,28 +105,28 @@ const ModalJourneyRectification: React.FC<IModalJourneyRectificationProps> = ({
96
105
  size={22}
97
106
  />
98
107
  <Typography
99
- text={`${textTitle ?? "Incluir atividade"}`}
108
+ text={textTitle ?? "Editar atividade"}
100
109
  color={theme.colors.neutral[25]}
101
110
  marginLeft={theme.margins["2xs"]}
102
- fontFamily={theme.fonts.inter_bold_700}
111
+ fontFamily={theme.fonts.inter_bold}
112
+ fontWeight="700"
103
113
  size={theme.fontSizes.lg}
104
114
  />
105
115
  </Box>
106
116
 
117
+ {/* Content */}
107
118
  <Box
108
119
  backgroundColor={theme.colors.neutral[300]}
109
- paddingStyle={{
110
- padding: theme.paddings.xs,
111
- }}
112
- borderStyled={{
113
- borderRadius: theme.borderWidths.thick_medium,
114
- }}
120
+ paddingStyle={{ padding: theme.paddings.xs }}
121
+ borderStyled={{ borderRadius: theme.borderWidths.thick_medium }}
115
122
  >
116
123
  <Typography
117
- text={"Confirme as alterações antes de salvar."}
118
- color={theme.colors.black[25]}
124
+ text="Confirme as alterações antes de salvar."
125
+ color={theme.colors.black[100]}
119
126
  fontFamily={theme.fonts.inter_regular_400}
120
- size={theme.fontSizes.md}
127
+ fontWeight="400"
128
+ lineHeight={theme.lineHeight["2xl"]}
129
+ size={theme.fontSizes.sm}
121
130
  marginBottom={16}
122
131
  />
123
132
 
@@ -125,17 +134,15 @@ const ModalJourneyRectification: React.FC<IModalJourneyRectificationProps> = ({
125
134
  titleLabel="Selecione atividade"
126
135
  sizeTitleLabel={18}
127
136
  dataOption={options}
128
- // Onde o motivo é RECEBIDO: aqui no callback
129
- handleSelectDown={(value) => setSelectedReason(value)} // ***
137
+ handleSelectDown={(value) => setSelectedReason(value)}
130
138
  backgroundColor={theme.colors.neutral[300]}
131
139
  />
132
140
 
133
141
  <InputDateTime
134
142
  mode="date"
135
143
  titleLabel="Data"
136
- // Onde a data é RECEBIDA: no onChange abaixo
137
- value={selectedDate} // *** controlado
138
- onChange={(d) => setSelectedDate(d)} // ***
144
+ value={selectedDate}
145
+ onChange={(d) => setSelectedDate(d)}
139
146
  backgroundColor="#f5f5f5"
140
147
  colortitleLabel="#333"
141
148
  />
@@ -143,13 +150,27 @@ const ModalJourneyRectification: React.FC<IModalJourneyRectificationProps> = ({
143
150
  <InputDateTime
144
151
  mode="time"
145
152
  titleLabel="Horário"
146
- // Onde a hora é RECEBIDA: no onChange abaixo
147
- value={selectedTime} // *** controlado
148
- onChange={(d) => setSelectedTime(d)} // ***
153
+ value={selectedTime}
154
+ onChange={(d) => setSelectedTime(d)}
149
155
  backgroundColor="#f5f5f5"
150
156
  colortitleLabel="#333"
151
157
  />
152
158
 
159
+ <Box width="100%">
160
+ <MaintenanceDescriptionInput
161
+ label="Motivo da edição"
162
+ placeholderTextColor={theme.colors.gray[700]}
163
+ placeholder="Informe o motivo da edição"
164
+ value={editReason}
165
+ onChangeText={(text) => {
166
+ setEditReason(text);
167
+ if (text.trim()) setErrorReason("");
168
+ }}
169
+ error={errorReason}
170
+ />
171
+ </Box>
172
+
173
+ {/* Actions */}
153
174
  <Box
154
175
  marginStyle={{ marginTop: 4 }}
155
176
  flexStyle={{
@@ -160,14 +181,14 @@ const ModalJourneyRectification: React.FC<IModalJourneyRectificationProps> = ({
160
181
  <Button
161
182
  title="CANCELAR"
162
183
  onPress={onClose}
163
- width={"48%"}
184
+ width="48%"
164
185
  height={40}
165
- isLoading={isLoading}
186
+ isLoading={isLoading!}
166
187
  disabled={isLoading}
167
188
  backgroundColor={theme.colors.neutral[300]}
168
189
  buttonTextStyle={{
169
- color: theme.colors.blue[100],
170
- fontFamily: "Inter-Medium",
190
+ color: theme.colors.blue[500],
191
+ fontFamily: theme.fonts.inter_medium_500,
171
192
  fontSize: theme.fontSizes.xs,
172
193
  fontWeight: "500",
173
194
  }}
@@ -185,29 +206,16 @@ const ModalJourneyRectification: React.FC<IModalJourneyRectificationProps> = ({
185
206
  />
186
207
 
187
208
  <Button
188
- title="CONFIRMAR"
189
- onPress={() => {
190
- const merged = mergeDateTime(selectedDate, selectedTime);
191
-
192
- const payload = {
193
- reasonValue: selectedReason,
194
- reasonLabel: options.find((o) => o.value === selectedReason)?.label ?? null,
195
- date: selectedDate ? fmtDate(selectedDate) : null,
196
- time: selectedTime ? fmtTime(selectedTime) : null,
197
- dateTimeISO: merged ? merged.toISOString() : null,
198
- };
199
-
200
- modalConfirm(payload);
201
- onClose();
202
- }}
203
- width={"48%"}
209
+ title="ALTERAR"
210
+ onPress={handleConfirm}
211
+ width="48%"
204
212
  height={40}
205
- isLoading={isLoading}
213
+ isLoading={isLoading!}
206
214
  disabled={isLoading}
207
215
  backgroundColor={theme.colors.blue[500]}
208
216
  buttonTextStyle={{
209
217
  color: theme.colors.neutral[25],
210
- fontFamily: "Inter-Medium",
218
+ fontFamily: theme.fonts.inter_medium_500,
211
219
  fontSize: theme.fontSizes.xs,
212
220
  fontWeight: "500",
213
221
  }}
@@ -233,4 +241,7 @@ const ModalJourneyRectification: React.FC<IModalJourneyRectificationProps> = ({
233
241
 
234
242
  ModalJourneyRectification.displayName = "ModalJourneyRectification";
235
243
 
244
+ /**
245
+ * EXPORTS
246
+ */
236
247
  export default asBaseComponent(ModalJourneyRectification);
@@ -1,10 +1,10 @@
1
- /* eslint-disable no-undef */
2
- /* eslint-disable no-unused-vars */
3
- interface IModalJourneyRectificationProps {
4
- visible: boolean;
5
- onClose: () => void;
6
- modalConfirm: (value: T) => void;
7
- textTitle?: string;
8
- }
9
-
10
- export type { IModalJourneyRectificationProps };
1
+ /* eslint-disable no-unused-vars */
2
+ interface IModalJourneyRectificationProps {
3
+ visible: boolean;
4
+ onClose: () => void;
5
+ modalConfirm: (value: T) => void;
6
+ textTitle?: string;
7
+ isLoading?: boolean;
8
+ }
9
+
10
+ export type { IModalJourneyRectificationProps };
@@ -1,4 +1,4 @@
1
- /* eslint-disable no-undef */
1
+
2
2
  /* eslint-disable no-unused-vars */
3
3
  export interface DayInfo {
4
4
  semana?: string;
@@ -0,0 +1,123 @@
1
+ /**
2
+ * IMPORTS
3
+ */
4
+ import React, { forwardRef } from "react";
5
+ import { TouchableOpacity, View } from "react-native";
6
+
7
+ // commons / icons
8
+ import { Icons } from "../../common/icons-svg";
9
+
10
+ // components
11
+ import Box from "../box";
12
+ import Typography from "../typography";
13
+ import Button from "../button";
14
+
15
+ // styles / theme
16
+ import { theme } from "../../styles/theme/theme";
17
+
18
+ // typings
19
+ import { asBaseComponent } from "../../@types/as-base-component";
20
+ import type { INotificationCardProps } from "./interface";
21
+
22
+ /**
23
+ * Componente NotificationCard
24
+ */
25
+ const NotificationCard: React.FC<INotificationCardProps> = forwardRef<View, INotificationCardProps>(
26
+ ({ variant = "read", title, description, actionLabel, onPress, onPressAction, testID }, ref) => {
27
+ const isWarning = variant === "unread";
28
+
29
+ // cor da borda lateral
30
+ const borderColor = isWarning ? theme.colors.orange[150] : theme.colors.blue[525];
31
+
32
+ return (
33
+ <TouchableOpacity onPress={onPress} activeOpacity={0.7}>
34
+ <Box
35
+ ref={ref}
36
+ testID={testID ?? "notification-card"}
37
+ flexStyle={{ flexDirection: "row" }}
38
+ borderStyled={{
39
+ borderWidth: 1,
40
+ borderColor: isWarning ? theme.colors.orange[150] : theme.colors.neutral[200],
41
+ borderRadius: theme.borderWidths.thick_medium,
42
+ }}
43
+ marginStyle={{ marginBottom: 12 }}
44
+ backgroundColor={isWarning ? theme.colors.neutral[500] : theme.colors.neutral[25]}
45
+ >
46
+ {/* borda fixa lateral esquerda */}
47
+ <Box
48
+ width={8}
49
+ backgroundColor={borderColor}
50
+ borderStyled={{
51
+ borderTopLeftRadius: theme.borderWidths.thick_medium,
52
+ borderBottomLeftRadius: theme.borderWidths.thick_medium,
53
+ }}
54
+ />
55
+
56
+ {/* Conteúdo do card */}
57
+ <Box flexStyle={{ flex: 1 }} paddingStyle={{ padding: theme.paddings.sm }}>
58
+ {/* Header */}
59
+ <Box
60
+ flexStyle={{ flexDirection: "row", alignItems: "center" }}
61
+ marginStyle={{ marginBottom: 6 }}
62
+ >
63
+ <Icons icon="BELL" color={borderColor} size={20} />
64
+ <Typography
65
+ text={title}
66
+ fontFamily={theme.fonts.inter_bold}
67
+ fontWeight="700"
68
+ size={theme.fontSizes.md}
69
+ color={theme.colors.black[100]}
70
+ marginLeft={8}
71
+ />
72
+ </Box>
73
+
74
+ {/* Texto */}
75
+ <Typography
76
+ text={description}
77
+ numberOfLines={isWarning ? 2 : 4}
78
+ ellipsizeMode="tail"
79
+ size={theme.fontSizes.sm}
80
+ lineHeight={theme.lineHeight.md}
81
+ fontFamily={theme.fonts.inter_regular_400}
82
+ color={theme.colors.gray[700]}
83
+ marginBottom={isWarning && actionLabel ? 12 : 0}
84
+ />
85
+
86
+ {/* Ação opcional */}
87
+ {actionLabel && onPressAction && (
88
+ <Button
89
+ isLoading={false}
90
+ title={actionLabel}
91
+ onPress={onPressAction}
92
+ backgroundColor={theme.colors.neutral[25]}
93
+ borderStyled={{
94
+ borderWidth: 1,
95
+ borderColor: theme.colors.red[500],
96
+ borderRadius: 12,
97
+ }}
98
+ buttonTextStyle={{
99
+ color: theme.colors.red[500],
100
+ fontSize: theme.fontSizes.sm,
101
+ fontFamily: theme.fonts.inter_medium_500,
102
+ }}
103
+ flexStyle={{
104
+ flexDirection: "row",
105
+ alignItems: "center",
106
+ justifyContent: "center",
107
+ }}
108
+ style={{ alignSelf: "flex-start", paddingHorizontal: 12 }}
109
+ />
110
+ )}
111
+ </Box>
112
+ </Box>
113
+ </TouchableOpacity>
114
+ );
115
+ }
116
+ );
117
+
118
+ NotificationCard.displayName = "NotificationCard";
119
+
120
+ /**
121
+ * EXPORTS
122
+ */
123
+ export default asBaseComponent(NotificationCard);
@@ -0,0 +1,18 @@
1
+ /**
2
+ * IMPORTS
3
+ */
4
+
5
+ interface INotificationCardProps {
6
+ variant?: "read" | "unread";
7
+ title: string;
8
+ description: string;
9
+ actionLabel?: string;
10
+ onPress?: () => void;
11
+ onPressAction?: () => void;
12
+ testID?: string;
13
+ }
14
+
15
+ /**
16
+ * EXPORTS
17
+ */
18
+ export { type INotificationCardProps };
@@ -0,0 +1,180 @@
1
+ /**
2
+ * IMPORTS
3
+ */
4
+ import React, { forwardRef, useState } from "react";
5
+ import { Modal, TouchableOpacity, Image, View } from "react-native";
6
+
7
+ // commons / icons
8
+ import { Icons } from "../../common/icons-svg";
9
+
10
+ // components
11
+ import Box from "../box";
12
+ import Typography from "../typography";
13
+
14
+ // typings
15
+ import type { INotificationDetailCardProps } from "./interface";
16
+ import { asBaseComponent } from "../../@types/as-base-component";
17
+
18
+ // styles / theme
19
+ import { theme } from "../../styles/theme/theme";
20
+
21
+ /**
22
+ * Componente NotificationDetailCard
23
+ */
24
+ const NotificationDetailCard: React.FC<INotificationDetailCardProps> = forwardRef<
25
+ View,
26
+ INotificationDetailCardProps
27
+ >(({ title, description, fileUrl, fileType = "image", testID }, ref) => {
28
+ const [visible, setVisible] = useState(false);
29
+
30
+ function openFile() {
31
+ if (fileType === "image") {
32
+ setVisible(true);
33
+ } else if (fileUrl) {
34
+ import("react-native").then(({ Linking }) => {
35
+ Linking.openURL(fileUrl).catch((err) => console.warn("Erro ao abrir arquivo:", err));
36
+ });
37
+ }
38
+ }
39
+
40
+ const borderColor = theme.colors.blue[500];
41
+
42
+ return (
43
+ <Box
44
+ ref={ref}
45
+ testID={testID ?? "notification-detail-card"}
46
+ flexStyle={{ flexDirection: "row" }}
47
+ borderStyled={{
48
+ borderWidth: 1,
49
+ borderColor: theme.colors.neutral[200],
50
+ borderRadius: theme.borderWidths.thick_medium,
51
+ }}
52
+ marginStyle={{ marginBottom: 16 }}
53
+ backgroundColor={theme.colors.neutral[25]}
54
+ >
55
+ {/* borda fixa lateral esquerda */}
56
+ <Box
57
+ width={8}
58
+ backgroundColor={borderColor}
59
+ borderStyled={{
60
+ borderTopLeftRadius: theme.borderWidths.thick_medium,
61
+ borderBottomLeftRadius: theme.borderWidths.thick_medium,
62
+ }}
63
+ />
64
+
65
+ {/* Conteúdo do card */}
66
+ <Box flexStyle={{ flex: 1 }} paddingStyle={{ padding: theme.paddings.md }}>
67
+ {/* header */}
68
+ <Typography
69
+ text={title}
70
+ fontFamily={theme.fonts.inter_bold}
71
+ fontWeight="700"
72
+ size={theme.fontSizes.md}
73
+ color={theme.colors.black[100]}
74
+ marginBottom={8}
75
+ />
76
+
77
+ {/* texto */}
78
+ <Typography
79
+ text={description}
80
+ size={theme.fontSizes.sm}
81
+ lineHeight={theme.lineHeight.md}
82
+ color={theme.colors.gray[700]}
83
+ marginBottom={fileUrl ? 12 : 0}
84
+ />
85
+
86
+ {/* arquivo (se existir) */}
87
+ {fileUrl && (
88
+ <TouchableOpacity
89
+ testID="button"
90
+ onPress={openFile}
91
+ activeOpacity={0.8}
92
+ style={{
93
+ borderRadius: theme.borderWidths.thick_medium,
94
+ overflow: "hidden",
95
+ borderWidth: 1,
96
+ borderColor: theme.colors.gray[300],
97
+ }}
98
+ >
99
+ {fileType === "image" ? (
100
+ <Box
101
+ borderStyled={{
102
+ borderWidth: 2,
103
+ borderColor: theme.colors.blue[525],
104
+ borderRadius: theme.borderWidths.thick_medium,
105
+ }}
106
+ >
107
+ <Image
108
+ source={{ uri: fileUrl }}
109
+ style={{
110
+ width: "100%",
111
+ height: 180,
112
+ borderRadius: theme.borderWidths.thick_medium,
113
+ borderWidth: 2,
114
+ borderColor: theme.colors.blue[525],
115
+ }}
116
+ resizeMode="cover"
117
+ />
118
+ </Box>
119
+ ) : (
120
+ <Box
121
+ flexStyle={{
122
+ flexDirection: "row",
123
+ alignItems: "center",
124
+ justifyContent: "space-between",
125
+ }}
126
+ paddingStyle={{ padding: theme.paddings.sm }}
127
+ >
128
+ <Typography
129
+ text={`Abrir arquivo (${fileType.toUpperCase()})`}
130
+ fontFamily={theme.fonts.inter_medium_500}
131
+ color={theme.colors.blue[500]}
132
+ size={theme.fontSizes.md}
133
+ />
134
+ <Icons icon="FILES" size={20} color={theme.colors.blue[500]} />
135
+ </Box>
136
+ )}
137
+ </TouchableOpacity>
138
+ )}
139
+ </Box>
140
+
141
+ {/* modal para zoom da imagem */}
142
+ {fileType === "image" && (
143
+ <Modal visible={visible} transparent animationType="fade">
144
+ <View
145
+ style={{
146
+ flex: 1,
147
+ backgroundColor: "rgba(0,0,0,0.9)",
148
+ justifyContent: "center",
149
+ alignItems: "center",
150
+ }}
151
+ >
152
+ <TouchableOpacity
153
+ onPress={() => setVisible(false)}
154
+ style={{ position: "absolute", top: 40, right: 20 }}
155
+ >
156
+ <Icons icon="CLOSED" size={28} color={theme.colors.neutral[25]} />
157
+ </TouchableOpacity>
158
+
159
+ <Image
160
+ source={{ uri: fileUrl }}
161
+ style={{
162
+ width: "90%",
163
+ height: "70%",
164
+ borderRadius: theme.borderWidths.thick_medium,
165
+ }}
166
+ resizeMode="contain"
167
+ />
168
+ </View>
169
+ </Modal>
170
+ )}
171
+ </Box>
172
+ );
173
+ });
174
+
175
+ NotificationDetailCard.displayName = "NotificationDetailCard";
176
+
177
+ /**
178
+ * EXPORTS
179
+ */
180
+ export default asBaseComponent(NotificationDetailCard);
@@ -0,0 +1,16 @@
1
+ /**
2
+ * IMPORTS
3
+ */
4
+
5
+ interface INotificationDetailCardProps {
6
+ title: string;
7
+ description: string;
8
+ fileUrl?: string; // link para arquivo (png, pdf, csv, etc.)
9
+ fileType?: "image" | "pdf" | "csv" | "other";
10
+ testID?: string;
11
+ }
12
+
13
+ /**
14
+ * EXPORTS
15
+ */
16
+ export { type INotificationDetailCardProps };