@licklist/design 0.44.486-dev.3 → 0.44.486-dev.30

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 (276) hide show
  1. package/dist/assets/iframe/available.svg.js +1 -0
  2. package/dist/assets/iframe/limited.svg.js +1 -0
  3. package/dist/assets/iframe/soldOut.svg.js +1 -0
  4. package/dist/assets/logo/bookedit.svg +9 -11
  5. package/dist/assets/logo/bookedit.svg.js +1 -1
  6. package/dist/assets/logo/favicon.svg +12 -0
  7. package/dist/assets/logo/licklist.svg +0 -2
  8. package/dist/assets/logo/licklist.svg.js +1 -1
  9. package/dist/calendar/Calendar.d.ts +16 -0
  10. package/dist/calendar/Calendar.d.ts.map +1 -0
  11. package/dist/calendar/Calendar.js +1 -0
  12. package/dist/calendar/components/CalendarButtons/CalendarButtons.d.ts +6 -0
  13. package/dist/calendar/components/CalendarButtons/CalendarButtons.d.ts.map +1 -0
  14. package/dist/calendar/components/CalendarButtons/CalendarButtons.js +1 -0
  15. package/dist/calendar/components/CalendarButtons/index.d.ts.map +1 -0
  16. package/dist/{iframe/event/event-calendar → calendar}/components/CalendarDate/CalendarDate.d.ts +3 -2
  17. package/dist/calendar/components/CalendarDate/CalendarDate.d.ts.map +1 -0
  18. package/dist/calendar/components/CalendarDate/CalendarDate.js +1 -0
  19. package/dist/calendar/components/CalendarDate/index.d.ts.map +1 -0
  20. package/dist/calendar/components/CalendarDates/CalendarDates.d.ts +8 -0
  21. package/dist/calendar/components/CalendarDates/CalendarDates.d.ts.map +1 -0
  22. package/dist/calendar/components/CalendarDates/CalendarDates.js +1 -0
  23. package/dist/calendar/components/CalendarDates/index.d.ts.map +1 -0
  24. package/dist/calendar/components/CalendarSelect/CalendarSelect.d.ts.map +1 -0
  25. package/dist/calendar/components/CalendarSelect/CalendarSelect.js +1 -0
  26. package/dist/calendar/components/CalendarSelect/index.d.ts.map +1 -0
  27. package/dist/calendar/components/CalendarWeekdays/CalendarWeekdays.d.ts.map +1 -0
  28. package/dist/calendar/components/CalendarWeekdays/index.d.ts.map +1 -0
  29. package/dist/calendar/index.d.ts +4 -0
  30. package/dist/calendar/index.d.ts.map +1 -0
  31. package/dist/calendar/utils/index.d.ts +5 -0
  32. package/dist/calendar/utils/index.d.ts.map +1 -0
  33. package/dist/calendar/utils/index.js +1 -0
  34. package/dist/date-time-button/DateTimeButton.d.ts +5 -1
  35. package/dist/date-time-button/DateTimeButton.d.ts.map +1 -1
  36. package/dist/date-time-button/DateTimeButton.js +1 -1
  37. package/dist/events/edit-event-modal/IntervalInput.d.ts.map +1 -1
  38. package/dist/events/edit-event-modal/IntervalInput.js +1 -1
  39. package/dist/events/event-venue-map/hooks/useImage.d.ts.map +1 -1
  40. package/dist/events/event-venue-map/hooks/useImage.js +1 -1
  41. package/dist/file-upload/FileUpload.d.ts.map +1 -1
  42. package/dist/file-upload/FileUpload.js +1 -1
  43. package/dist/iframe/activity-card/ActivityCard.d.ts +17 -0
  44. package/dist/iframe/activity-card/ActivityCard.d.ts.map +1 -0
  45. package/dist/iframe/activity-card/ActivityCard.js +1 -0
  46. package/dist/iframe/activity-card/index.d.ts +2 -0
  47. package/dist/iframe/activity-card/index.d.ts.map +1 -0
  48. package/dist/iframe/event/index.d.ts +0 -1
  49. package/dist/iframe/event/index.d.ts.map +1 -1
  50. package/dist/iframe/index.d.ts +2 -2
  51. package/dist/iframe/index.d.ts.map +1 -1
  52. package/dist/iframe/order-process/components/BookingSummary/BookingSummary.d.ts +1 -1
  53. package/dist/iframe/order-process/components/BookingSummary/BookingSummary.d.ts.map +1 -1
  54. package/dist/iframe/order-process/components/BookingSummary/BookingSummary.js +1 -1
  55. package/dist/iframe/order-process/components/BookingSummary/components/BookingSummaryAccordion/BookingSummaryAccordion.js +1 -1
  56. package/dist/iframe/order-process/components/BookingSummary/types/index.d.ts +1 -0
  57. package/dist/iframe/order-process/components/BookingSummary/types/index.d.ts.map +1 -1
  58. package/dist/iframe/order-process/components/BookingSummary/utils/index.d.ts.map +1 -1
  59. package/dist/iframe/order-process/components/BookingSummary/utils/index.js +1 -1
  60. package/dist/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.d.ts +1 -1
  61. package/dist/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.d.ts.map +1 -1
  62. package/dist/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.js +1 -1
  63. package/dist/iframe/order-process/components/Timer/utils/index.d.ts +1 -1
  64. package/dist/iframe/order-process/components/Timer/utils/index.d.ts.map +1 -1
  65. package/dist/iframe/order-process/components/Timer/utils/index.js +1 -1
  66. package/dist/iframe/order-process/components/utils/useCategoryVerification.d.ts +3 -2
  67. package/dist/iframe/order-process/components/utils/useCategoryVerification.d.ts.map +1 -1
  68. package/dist/iframe/order-process/components/utils/useCategoryVerification.js +1 -1
  69. package/dist/iframe/page/components/PageBody/components/LeftBlock/LeftBlock.d.ts.map +1 -1
  70. package/dist/iframe/page/components/PageBody/components/LeftBlock/LeftBlock.js +1 -1
  71. package/dist/iframe/payment/order-items-table/hooks/useTableData.d.ts.map +1 -1
  72. package/dist/iframe/payment/order-items-table/hooks/useTableData.js +1 -1
  73. package/dist/iframe/payment/order-items-table/types/index.d.ts +7 -1
  74. package/dist/iframe/payment/order-items-table/types/index.d.ts.map +1 -1
  75. package/dist/iframe/payment/order-items-table/types/index.js +1 -0
  76. package/dist/iframe/payment/order-items-table/utils/paymentSummary.d.ts +3 -0
  77. package/dist/iframe/payment/order-items-table/utils/paymentSummary.d.ts.map +1 -0
  78. package/dist/iframe/payment/order-items-table/utils/paymentSummary.js +1 -0
  79. package/dist/index.d.ts +1 -0
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +1 -1
  82. package/dist/notification/email-template/control/EmailTemplateControl.d.ts.map +1 -1
  83. package/dist/notification/email-template/control/EmailTemplateControl.js +1 -1
  84. package/dist/product-set/form/ProductCategoriesControl.d.ts.map +1 -1
  85. package/dist/product-set/form/ProductCategoriesControl.js +1 -1
  86. package/dist/product-set/form/ProductsControl.d.ts +3 -1
  87. package/dist/product-set/form/ProductsControl.d.ts.map +1 -1
  88. package/dist/product-set/form/ProductsControl.js +1 -1
  89. package/dist/product-set/product/ProductControl.d.ts +2 -1
  90. package/dist/product-set/product/ProductControl.d.ts.map +1 -1
  91. package/dist/product-set/product/ProductControl.js +1 -1
  92. package/dist/product-set/product/duration/ProductDurationControl.js +1 -1
  93. package/dist/product-set/product-category/ProductCategoryControl.d.ts.map +1 -1
  94. package/dist/product-set/product-category/ProductCategoryControl.js +1 -1
  95. package/dist/provider/working-hours-input/WorkingHoursInputDescription.d.ts.map +1 -1
  96. package/dist/provider/working-hours-input/WorkingHoursInputDescription.js +1 -1
  97. package/dist/recurrence-input/RecurrenceEndInput.d.ts +8 -1
  98. package/dist/recurrence-input/RecurrenceEndInput.d.ts.map +1 -1
  99. package/dist/recurrence-input/RecurrenceEndInput.js +1 -1
  100. package/dist/recurrence-input/RecurrenceInput.d.ts +2 -1
  101. package/dist/recurrence-input/RecurrenceInput.d.ts.map +1 -1
  102. package/dist/recurrence-input/RecurrenceInput.js +1 -1
  103. package/dist/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.d.ts +4 -1
  104. package/dist/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.d.ts.map +1 -1
  105. package/dist/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.js +1 -1
  106. package/dist/report/form/ReportForm.d.ts.map +1 -1
  107. package/dist/sales/booking/results/components/ResultCard.d.ts.map +1 -1
  108. package/dist/sales/booking/results/components/ResultCard.js +1 -1
  109. package/dist/snippet/snippet-template/preview/Preview.d.ts.map +1 -1
  110. package/dist/snippet/snippet-template/preview/Preview.js +1 -1
  111. package/dist/static/RestrictedAccess.d.ts.map +1 -1
  112. package/dist/static/form-number-input/FormNumberInput.d.ts +2 -1
  113. package/dist/static/form-number-input/FormNumberInput.d.ts.map +1 -1
  114. package/dist/static/form-number-input/FormNumberInput.js +1 -1
  115. package/dist/styles/{iframe-customers-journey/ActivitiesCard.scss → activity-card/GridActivitiesCard.scss} +1 -1
  116. package/dist/styles/{iframe-customers-journey/ActivitiesSelectedCard.scss → activity-card/ListActivitiesCard.scss} +2 -1
  117. package/dist/styles/activity-card/_index.scss +2 -0
  118. package/{src/styles/iframe-customers-journey → dist/styles/date-time-button}/DateTimeButton.scss +3 -6
  119. package/dist/styles/date-time-button/_index.scss +1 -0
  120. package/dist/styles/header/Header.scss +0 -4
  121. package/dist/styles/iframe-events/Calendar.scss +14 -14
  122. package/dist/styles/iframe-events/Card.scss +1 -0
  123. package/dist/styles/iframe-page/PageBody.scss +3 -2
  124. package/dist/styles/notification/Notification.scss +4 -0
  125. package/dist/styles/packages.scss +2 -1
  126. package/dist/styles/resources-blocking/_index.scss +5 -0
  127. package/dist/styles/themes/bookedit/_index.scss +1 -0
  128. package/dist/zone/form/components/AvailableTimesControl.d.ts.map +1 -1
  129. package/dist/zone/form/components/AvailableTimesControl.js +1 -1
  130. package/dist/zone/form/components/GameDurationControl.d.ts +7 -0
  131. package/dist/zone/form/components/GameDurationControl.d.ts.map +1 -0
  132. package/dist/zone/form/components/GameDurationControl.js +1 -0
  133. package/dist/zone/form/components/ZoneControl.d.ts.map +1 -1
  134. package/dist/zone/form/components/ZoneControl.js +1 -1
  135. package/dist/zone/form/components/ZoneRecurrencesControl.d.ts.map +1 -1
  136. package/dist/zone/form/components/ZoneRecurrencesControl.js +1 -1
  137. package/dist/zone/form/utils/dates.d.ts.map +1 -1
  138. package/dist/zone/form/utils/dates.js +1 -1
  139. package/package.json +2 -2
  140. package/src/assets/logo/bookedit.svg +9 -11
  141. package/src/assets/logo/favicon.svg +12 -0
  142. package/src/assets/logo/licklist.svg +0 -2
  143. package/src/calendar/Calendar.stories.tsx +33 -0
  144. package/src/calendar/Calendar.tsx +59 -0
  145. package/src/{iframe/event/event-calendar → calendar}/components/CalendarButtons/CalendarButtons.tsx +31 -14
  146. package/src/{iframe/event/event-calendar → calendar}/components/CalendarDate/CalendarDate.tsx +10 -2
  147. package/src/{iframe/event/event-calendar → calendar}/components/CalendarDates/CalendarDates.tsx +17 -13
  148. package/src/{iframe/event/event-calendar → calendar}/components/CalendarSelect/CalendarSelect.tsx +1 -1
  149. package/src/calendar/index.ts +3 -0
  150. package/src/calendar/utils/index.ts +28 -0
  151. package/src/date-time-button/DateTimeButton.stories.tsx +17 -0
  152. package/src/date-time-button/DateTimeButton.tsx +42 -20
  153. package/src/events/edit-event-modal/IntervalInput.tsx +3 -0
  154. package/src/events/event-venue-map/hooks/useImage.tsx +17 -8
  155. package/src/file-upload/FileUpload.tsx +3 -1
  156. package/src/iframe/{activity-cards/activity-card → activity-card}/ActivityCard.stories.tsx +24 -1
  157. package/src/iframe/activity-card/ActivityCard.tsx +77 -0
  158. package/src/iframe/activity-card/index.ts +1 -0
  159. package/src/iframe/event/event-venue-map/IframeEventVenueMap.stories.tsx +1 -1
  160. package/src/iframe/event/index.ts +0 -6
  161. package/src/iframe/index.ts +1 -2
  162. package/src/iframe/order-process/components/BookingSummary/BookingSummary.tsx +2 -0
  163. package/src/iframe/order-process/components/BookingSummary/types/index.ts +1 -0
  164. package/src/iframe/order-process/components/BookingSummary/utils/index.ts +2 -0
  165. package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.tsx +5 -3
  166. package/src/iframe/order-process/components/Timer/utils/index.ts +6 -9
  167. package/src/iframe/order-process/components/utils/useCategoryVerification.ts +28 -29
  168. package/src/iframe/page/Page.stories.tsx +2 -2
  169. package/src/iframe/page/components/PageBody/components/LeftBlock/LeftBlock.tsx +6 -1
  170. package/src/iframe/payment/order-items-table/hooks/useTableData.tsx +11 -99
  171. package/src/iframe/payment/order-items-table/types/index.ts +18 -1
  172. package/src/iframe/payment/order-items-table/utils/paymentSummary.tsx +118 -0
  173. package/src/iframe/payment/payment-page/PaymentPage.tsx +4 -4
  174. package/src/index.ts +1 -0
  175. package/src/notification/email-template/control/EmailTemplateControl.tsx +26 -1
  176. package/src/product-set/form/ProductCategoriesControl.tsx +2 -0
  177. package/src/product-set/form/ProductSetForm.stories.tsx +1 -0
  178. package/src/product-set/form/ProductsControl.tsx +10 -0
  179. package/src/product-set/product/ProductControl.tsx +30 -8
  180. package/src/product-set/product/duration/ProductDurationControl.tsx +1 -1
  181. package/src/product-set/product-category/ProductCategoryControl.tsx +15 -5
  182. package/src/provider/location-input/LocationInputDescription.tsx +2 -2
  183. package/src/provider/working-hours-input/WorkingHoursInputDescription.tsx +10 -8
  184. package/src/recurrence-input/RecurrenceEndInput.tsx +28 -10
  185. package/src/recurrence-input/RecurrenceInput.tsx +12 -2
  186. package/src/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.tsx +24 -21
  187. package/src/report/form/ReportForm.tsx +1 -1
  188. package/src/sales/booking/results/components/ResultCard.tsx +3 -2
  189. package/src/snippet/snippet-template/preview/Preview.tsx +14 -2
  190. package/src/static/CountryCodeSelect.tsx +3 -3
  191. package/src/static/RestrictedAccess.tsx +1 -1
  192. package/src/static/form-number-input/FormNumberInput.tsx +8 -1
  193. package/src/styles/{iframe-customers-journey/ActivitiesCard.scss → activity-card/GridActivitiesCard.scss} +1 -1
  194. package/src/styles/{iframe-customers-journey/ActivitiesSelectedCard.scss → activity-card/ListActivitiesCard.scss} +2 -1
  195. package/src/styles/activity-card/_index.scss +2 -0
  196. package/{dist/styles/iframe-customers-journey → src/styles/date-time-button}/DateTimeButton.scss +3 -6
  197. package/src/styles/date-time-button/_index.scss +1 -0
  198. package/src/styles/header/Header.scss +0 -4
  199. package/src/styles/iframe-events/Calendar.scss +14 -14
  200. package/src/styles/iframe-events/Card.scss +1 -0
  201. package/src/styles/iframe-page/PageBody.scss +3 -2
  202. package/src/styles/notification/Notification.scss +4 -0
  203. package/src/styles/packages.scss +2 -1
  204. package/src/styles/resources-blocking/_index.scss +5 -0
  205. package/src/styles/themes/bookedit/_index.scss +1 -0
  206. package/src/typings.d.ts +11 -0
  207. package/src/zone/form/components/AvailableTimesControl.tsx +4 -9
  208. package/src/zone/form/components/GameDurationControl.tsx +46 -0
  209. package/src/zone/form/components/ZoneControl.tsx +2 -0
  210. package/src/zone/form/components/ZoneRecurrencesControl.tsx +27 -35
  211. package/src/zone/form/utils/dates.ts +29 -36
  212. package/dist/iframe/activity-cards/activity-card/ActivityCard.d.ts +0 -12
  213. package/dist/iframe/activity-cards/activity-card/ActivityCard.d.ts.map +0 -1
  214. package/dist/iframe/activity-cards/activity-card/ActivityCard.js +0 -1
  215. package/dist/iframe/activity-cards/index.d.ts +0 -3
  216. package/dist/iframe/activity-cards/index.d.ts.map +0 -1
  217. package/dist/iframe/activity-cards/list-activity-card/ListActivityCard.d.ts +0 -12
  218. package/dist/iframe/activity-cards/list-activity-card/ListActivityCard.d.ts.map +0 -1
  219. package/dist/iframe/activity-cards/list-activity-card/ListActivityCard.js +0 -1
  220. package/dist/iframe/event/event-calendar/EventCalendar.d.ts +0 -5
  221. package/dist/iframe/event/event-calendar/EventCalendar.d.ts.map +0 -1
  222. package/dist/iframe/event/event-calendar/EventCalendar.js +0 -1
  223. package/dist/iframe/event/event-calendar/components/CalendarButtons/CalendarButtons.d.ts +0 -6
  224. package/dist/iframe/event/event-calendar/components/CalendarButtons/CalendarButtons.d.ts.map +0 -1
  225. package/dist/iframe/event/event-calendar/components/CalendarButtons/CalendarButtons.js +0 -1
  226. package/dist/iframe/event/event-calendar/components/CalendarButtons/index.d.ts.map +0 -1
  227. package/dist/iframe/event/event-calendar/components/CalendarDate/CalendarDate.d.ts.map +0 -1
  228. package/dist/iframe/event/event-calendar/components/CalendarDate/CalendarDate.js +0 -1
  229. package/dist/iframe/event/event-calendar/components/CalendarDate/index.d.ts.map +0 -1
  230. package/dist/iframe/event/event-calendar/components/CalendarDates/CalendarDates.d.ts +0 -5
  231. package/dist/iframe/event/event-calendar/components/CalendarDates/CalendarDates.d.ts.map +0 -1
  232. package/dist/iframe/event/event-calendar/components/CalendarDates/CalendarDates.js +0 -1
  233. package/dist/iframe/event/event-calendar/components/CalendarDates/index.d.ts.map +0 -1
  234. package/dist/iframe/event/event-calendar/components/CalendarSelect/CalendarSelect.d.ts.map +0 -1
  235. package/dist/iframe/event/event-calendar/components/CalendarSelect/CalendarSelect.js +0 -1
  236. package/dist/iframe/event/event-calendar/components/CalendarSelect/index.d.ts.map +0 -1
  237. package/dist/iframe/event/event-calendar/components/CalendarWeekdays/CalendarWeekdays.d.ts.map +0 -1
  238. package/dist/iframe/event/event-calendar/components/CalendarWeekdays/index.d.ts.map +0 -1
  239. package/dist/iframe/event/event-calendar/index.d.ts +0 -4
  240. package/dist/iframe/event/event-calendar/index.d.ts.map +0 -1
  241. package/dist/iframe/event/event-calendar/types/index.d.ts +0 -6
  242. package/dist/iframe/event/event-calendar/types/index.d.ts.map +0 -1
  243. package/dist/iframe/event/event-calendar/utils/index.d.ts +0 -3
  244. package/dist/iframe/event/event-calendar/utils/index.d.ts.map +0 -1
  245. package/dist/iframe/event/event-calendar/utils/index.js +0 -1
  246. package/dist/styles/iframe-customers-journey/_index.scss +0 -3
  247. package/src/iframe/activity-cards/activity-card/ActivityCard.tsx +0 -38
  248. package/src/iframe/activity-cards/index.ts +0 -2
  249. package/src/iframe/activity-cards/list-activity-card/ListActivityCard.stories.tsx +0 -52
  250. package/src/iframe/activity-cards/list-activity-card/ListActivityCard.tsx +0 -49
  251. package/src/iframe/event/event-calendar/EventCalendar.stories.tsx +0 -37
  252. package/src/iframe/event/event-calendar/EventCalendar.tsx +0 -20
  253. package/src/iframe/event/event-calendar/index.ts +0 -6
  254. package/src/iframe/event/event-calendar/types/index.ts +0 -6
  255. package/src/iframe/event/event-calendar/utils/index.ts +0 -11
  256. package/src/styles/iframe-customers-journey/_index.scss +0 -3
  257. /package/dist/assets/iframe/{dateInfo/available.svg → available.svg} +0 -0
  258. /package/dist/assets/iframe/{dateInfo/limited.svg → limited.svg} +0 -0
  259. /package/dist/assets/iframe/{dateInfo/soldOut.svg → soldOut.svg} +0 -0
  260. /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarButtons/index.d.ts +0 -0
  261. /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarDate/index.d.ts +0 -0
  262. /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarDates/index.d.ts +0 -0
  263. /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarSelect/CalendarSelect.d.ts +0 -0
  264. /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarSelect/index.d.ts +0 -0
  265. /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarWeekdays/CalendarWeekdays.d.ts +0 -0
  266. /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarWeekdays/CalendarWeekdays.js +0 -0
  267. /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarWeekdays/index.d.ts +0 -0
  268. /package/src/assets/iframe/{dateInfo/available.svg → available.svg} +0 -0
  269. /package/src/assets/iframe/{dateInfo/limited.svg → limited.svg} +0 -0
  270. /package/src/assets/iframe/{dateInfo/soldOut.svg → soldOut.svg} +0 -0
  271. /package/src/{iframe/event/event-calendar → calendar}/components/CalendarButtons/index.ts +0 -0
  272. /package/src/{iframe/event/event-calendar → calendar}/components/CalendarDate/index.ts +0 -0
  273. /package/src/{iframe/event/event-calendar → calendar}/components/CalendarDates/index.ts +0 -0
  274. /package/src/{iframe/event/event-calendar → calendar}/components/CalendarSelect/index.ts +0 -0
  275. /package/src/{iframe/event/event-calendar → calendar}/components/CalendarWeekdays/CalendarWeekdays.tsx +0 -0
  276. /package/src/{iframe/event/event-calendar → calendar}/components/CalendarWeekdays/index.ts +0 -0
@@ -1,8 +1,35 @@
1
1
  import React, { ReactElement } from "react";
2
2
  import clsx from "clsx";
3
3
  import { DateTime } from "luxon";
4
+ import { useTranslation } from "react-i18next";
5
+ import { ReactComponent as AvailableIcon } from "../assets/iframe/available.svg";
6
+ import { ReactComponent as LimitedIcon } from "../assets/iframe/limited.svg";
7
+ import { ReactComponent as SoldOutIcon } from "../assets/iframe/soldOut.svg";
4
8
  import { DateContent } from "./DateContent";
5
9
 
10
+ const LOTS_OF_SPACE_LIMIT = 0.2;
11
+ const LIMITED_LIMIT = 0.8;
12
+
13
+ const getAvailability = (
14
+ booked: number,
15
+ total: number
16
+ ): { label: string; icon: ReactElement } => {
17
+ if (booked === total) {
18
+ return { label: "soldOut", icon: <SoldOutIcon className="logo" /> };
19
+ }
20
+
21
+ // lots of space if less than 80% booked
22
+ if (booked / total <= LOTS_OF_SPACE_LIMIT) {
23
+ return { label: "lotsOfSpace", icon: <AvailableIcon className="logo" /> };
24
+ }
25
+
26
+ if (booked / total >= LIMITED_LIMIT) {
27
+ return { label: "limited", icon: <LimitedIcon className="logo" /> };
28
+ }
29
+
30
+ return { label: "available", icon: <AvailableIcon className="logo" /> };
31
+ };
32
+
6
33
  export type DateTimeButtonProps<T = DateTime | string> = {
7
34
  date: T;
8
35
  isSelected?: boolean;
@@ -10,6 +37,10 @@ export type DateTimeButtonProps<T = DateTime | string> = {
10
37
  onSelect: (date: T) => void;
11
38
  isOnlyTimeContainer?: boolean;
12
39
  price?: string | number | ReactElement | null;
40
+ resources?: {
41
+ booked: number;
42
+ total: number;
43
+ };
13
44
  };
14
45
 
15
46
  export const DateTimeButton = <T extends DateTime | string>({
@@ -19,22 +50,14 @@ export const DateTimeButton = <T extends DateTime | string>({
19
50
  onSelect,
20
51
  isOnlyTimeContainer,
21
52
  price,
53
+ resources,
22
54
  }: DateTimeButtonProps<T>) => {
23
- // const infoLogo = useMemo(() => {
24
- // if (info?.logo === infoLogoType.LIMIT) {
25
- // return <LimitedSvg />;
26
- // }
27
- // if (info?.logo === infoLogoType.AVAILABLE) {
28
- // return <AvailableSvg />;
29
- // }
30
- // if (info?.logo === infoLogoType.SOLD_OUT) {
31
- // return <SoldOutSvg />;
32
- // }
33
- // return null;
34
- // }, [info]);
35
-
55
+ const { t } = useTranslation("Design");
36
56
  const isTimeVariant = typeof date === "string";
37
57
 
58
+ const availability =
59
+ resources && getAvailability(resources.booked, resources.total);
60
+
38
61
  return (
39
62
  <button
40
63
  type="button"
@@ -59,15 +82,14 @@ export const DateTimeButton = <T extends DateTime | string>({
59
82
  />
60
83
  )}
61
84
 
62
- {price && <div className="price">{price}</div>}
85
+ {price && !isDisabled && <div className="price">{price}</div>}
63
86
 
64
- {/* TODO uncomment when adding availability */}
65
- {/* {info && (
66
- <div className="info">
67
- {info.logo && <Logo className="logo" logo={infoLogo} />}
68
- <div>{info.description}</div>
87
+ {availability && (
88
+ <div className="resources">
89
+ {availability.icon}
90
+ <div>{t(availability.label)}</div>
69
91
  </div>
70
- )} */}
92
+ )}
71
93
  </button>
72
94
  );
73
95
  };
@@ -168,6 +168,9 @@ export function IntervalInput({
168
168
  value={value}
169
169
  onChange={onChange}
170
170
  date={start}
171
+ minDate={DateTime.fromISO(start)
172
+ .plus({ day: 1 })
173
+ .toFormat("yyyy-MM-dd")}
171
174
  disabled={disabled}
172
175
  />
173
176
  )}
@@ -12,21 +12,30 @@ export const useImage = (
12
12
  height: 0,
13
13
  });
14
14
 
15
+ const setImageEventHandler = function setImageEventHandler(
16
+ this: HTMLImageElement
17
+ ) {
18
+ imageRef.current = this;
19
+
20
+ setImageAttributes({
21
+ width: this.naturalWidth,
22
+ height: this.naturalHeight,
23
+ });
24
+ };
25
+
15
26
  const loadImage = useCallback((imageUrl?: string) => {
16
27
  imageRef.current = new window.Image();
17
28
  imageRef.current.src = imageUrl;
18
- imageRef.current.addEventListener("load", function () {
19
- imageRef.current = this;
20
-
21
- setImageAttributes({
22
- width: this.naturalWidth,
23
- height: this.naturalHeight,
24
- });
25
- });
29
+ imageRef.current.addEventListener("load", setImageEventHandler);
26
30
  }, []);
27
31
 
28
32
  useEffect(() => {
29
33
  loadImage(url);
34
+
35
+ return () => {
36
+ imageRef.current.removeEventListener("load", setImageEventHandler);
37
+ imageRef.current = undefined;
38
+ };
30
39
  }, [url, loadImage]);
31
40
 
32
41
  const memoizedImageAttributes = useMemo(() => {
@@ -175,7 +175,9 @@ export const useFileUpload = ({
175
175
  const filesArray = Array.from(uploadedFiles);
176
176
  filesArray.forEach((file) => {
177
177
  const fileExtension = file.name.split(".").pop();
178
- const extensionIndex = allowedExtensions.indexOf(fileExtension);
178
+ const extensionIndex = allowedExtensions.indexOf(
179
+ fileExtension.toLowerCase()
180
+ );
179
181
  const isExtensionValid = extensionIndex !== -1;
180
182
 
181
183
  if (isExtensionValid) {
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { Meta, Story } from "@storybook/react";
3
- import { ActivityCard, ActivityCardProps } from "./ActivityCard";
3
+ import { ActivityCard, ActivityCardProps, LAYOUT_LIST } from "./ActivityCard";
4
4
 
5
5
  export default {
6
6
  title: "Iframe/ActivityCard",
@@ -50,3 +50,26 @@ Selected.args = {
50
50
  onSelect: () => null,
51
51
  isSelected: true,
52
52
  };
53
+
54
+ export const ListView: Story<ActivityCardProps> = (props) => {
55
+ return <ActivityCard {...props} />;
56
+ };
57
+
58
+ Default.args = {
59
+ layout: LAYOUT_LIST,
60
+ title: "Clay Pigeons & Axe Thowing",
61
+ duration: "60 mins",
62
+ price: "from £20",
63
+ image: {
64
+ hash: "0b37b130e22aa2d3",
65
+ id: 195,
66
+ imageType: "cover",
67
+ imageableId: 25,
68
+ imageableType: "zone",
69
+ path: "images/original/000/000/000/000/195-0b37b130e22aa2d3.jpeg",
70
+ // eslint-disable-next-line max-len
71
+ url: "https://cdn.lickli.st/doNktZRze1yuz3Uo2OPrLSvXVtUcdUsF/images/original/000/000/000/000/195-0b37b130e22aa2d3.jpeg",
72
+ },
73
+ onSelect: () => null,
74
+ isSelected: false,
75
+ };
@@ -0,0 +1,77 @@
1
+ import React, { ReactNode } from "react";
2
+ import clsx from "clsx";
3
+ import { Image } from "@licklist/core/dist/DataMapper/Media/ImageDataMapper";
4
+
5
+ export const LAYOUT_GRID = "grid";
6
+ export const LAYOUT_LIST = "list";
7
+
8
+ type Layout = typeof LAYOUT_GRID | typeof LAYOUT_LIST;
9
+
10
+ export type ActivityCardProps = {
11
+ title: ReactNode;
12
+ duration: ReactNode;
13
+ price: ReactNode;
14
+ image?: Image | null;
15
+ onSelect: () => void;
16
+ isSelected: boolean;
17
+ layout?: Layout;
18
+ };
19
+
20
+ export const ActivityCard = ({
21
+ title,
22
+ duration,
23
+ price,
24
+ image,
25
+ onSelect,
26
+ isSelected,
27
+ layout = LAYOUT_GRID,
28
+ }: ActivityCardProps) => {
29
+ if (layout === LAYOUT_GRID) {
30
+ return (
31
+ <button
32
+ type="button"
33
+ className={clsx("activity-card", isSelected && "active")}
34
+ onClick={onSelect}
35
+ >
36
+ {image && (
37
+ <img className="activity-card-image" alt="" src={image.url} />
38
+ )}
39
+ <div className={clsx("d-flex", "flex-column", !image && "no-image")}>
40
+ <div className="activity-card-title">{title}</div>
41
+
42
+ {duration && <div>{duration}</div>}
43
+
44
+ {price && <div>{price}</div>}
45
+ </div>
46
+ </button>
47
+ );
48
+ }
49
+
50
+ return (
51
+ <div role="button" onClick={onSelect} onKeyPress={onSelect} tabIndex={0}>
52
+ <div
53
+ className={clsx("list-activity-card", {
54
+ active: isSelected,
55
+ })}
56
+ >
57
+ <div className="description">
58
+ <div className="title">{title}</div>
59
+ {duration && (
60
+ <div>
61
+ <p>{duration}</p>
62
+ </div>
63
+ )}
64
+
65
+ {price && <div>{price}</div>}
66
+ </div>
67
+
68
+ {image && (
69
+ <div className="image-container">
70
+ <img className="image" src={image.url} alt="" />
71
+ </div>
72
+ )}
73
+ </div>
74
+ <hr className="list-activity-card-hr" />
75
+ </div>
76
+ );
77
+ };
@@ -0,0 +1 @@
1
+ export * from "./ActivityCard";
@@ -5,7 +5,7 @@ import { IframeEventVenueMap } from "./IframeEventVenueMap";
5
5
  import { Page, PageBody, PageHeader } from "../../page";
6
6
  import { BookingSummaryFooter } from "../../order-process/components/BookingSummaryFooter";
7
7
  import { BookingSummary } from "../../order-process/components/BookingSummary";
8
- import { CalendarSelect } from "../event-calendar/components/CalendarSelect";
8
+ import { CalendarSelect } from "../../../calendar/components/CalendarSelect";
9
9
  import { Product } from "../../../types";
10
10
 
11
11
  export default {
@@ -13,12 +13,6 @@ export {
13
13
  } from "./event-order-short-summary";
14
14
  export { EventDescription } from "./event-description";
15
15
  export { EventProductSets, EventProductSetsProps } from "./event-product-sets";
16
- export {
17
- EventCalendar,
18
- CalendarSelect,
19
- CalendarSelectProps,
20
- CalendarSelectOption,
21
- } from "./event-calendar";
22
16
  export {
23
17
  EventStepVenueMapZones,
24
18
  EventStepVenueMapZonesProps,
@@ -10,7 +10,6 @@ export {
10
10
  EventOrderShortSummary,
11
11
  SummaryDataType,
12
12
  EventDescription,
13
- EventCalendar,
14
13
  EventProductSets,
15
14
  EventProductSetsProps,
16
15
  IframeEventVenueMap,
@@ -43,5 +42,5 @@ export {
43
42
  export { BackButton } from "./back-button";
44
43
  export { PoweredBy } from "./powered-by";
45
44
  export * from "./page";
46
- export * from "./activity-cards";
45
+ export * from "./activity-card";
47
46
  export { CustomDateField, CustomDateFieldProps } from "./custom-fields";
@@ -11,6 +11,7 @@ import { BookingSummaryAccordion } from "./components/BookingSummaryAccordion";
11
11
 
12
12
  export const BookingSummary = ({
13
13
  date,
14
+ time,
14
15
  menuSteps,
15
16
  formValues,
16
17
  isNotShownPeopleAmount,
@@ -47,6 +48,7 @@ export const BookingSummary = ({
47
48
  <div className="event-info">
48
49
  <p className="m-0 title event-name">{eventName}</p>
49
50
  <p className="m-0">{date}</p>
51
+ {time && <p className="m-0">{time}</p>}
50
52
  </div>
51
53
  <hr />
52
54
 
@@ -6,6 +6,7 @@ export const ACCORDION_KEY = "booking-summary";
6
6
 
7
7
  export type BookingSummaryProps = {
8
8
  date: string;
9
+ time?: string;
9
10
  menuSteps?: MenuStep[];
10
11
  formValues?: {
11
12
  [key: string]: Order;
@@ -5,6 +5,8 @@ export const cartSumByOrderProducts = (orderProducts?: Order[]) => {
5
5
  return 0;
6
6
  }
7
7
  return orderProducts.reduce((prevSumValue: number, product) => {
8
+ if (!product) return 0;
9
+
8
10
  return (
9
11
  prevSumValue + (product?.deposit || product?.price) * product.quantity
10
12
  );
@@ -20,15 +20,15 @@ import { Step } from "@licklist/core/dist/DataMapper/Product/StepDataMapper";
20
20
  import { useTranslation } from "react-i18next";
21
21
  import { Product } from "@licklist/core/dist/DataMapper/Product/ProductDataMapper";
22
22
  import { QuantityCheckProductInfo } from "@licklist/plugins/dist/types/Api/verifyStock";
23
+ import { MenuStep } from "@licklist/plugins/dist/types/context/sale/menuSteps";
23
24
  import { Category } from "./components/Category";
24
- import { MenuStep } from "../../../../types";
25
25
  import { STEP_FORM_ID } from "../../constants";
26
26
  import { ErrorModal } from "../ErrorModal/ErrorModal";
27
27
  import { PageBody } from "../../../page/components/PageBody";
28
28
  import {
29
29
  CalendarSelect,
30
30
  CalendarSelectOption,
31
- } from "../../../event/event-calendar/components/CalendarSelect";
31
+ } from "../../../../calendar/components/CalendarSelect";
32
32
  import { IframeEventVenueMap } from "../../../event/event-venue-map";
33
33
  import { VenueMapRef } from "../../../../events/event-venue-map/components/VenueMap";
34
34
  import { useCategoryVerification } from "../utils/useCategoryVerification";
@@ -117,7 +117,7 @@ export const CalendarStepsForm = forwardRef<
117
117
  );
118
118
  return;
119
119
  }
120
- const categoryError = verifyCategoryItems(values, step);
120
+ const categoryError = verifyCategoryItems(values, step.productCategories);
121
121
 
122
122
  if (categoryError) {
123
123
  setStepFormError(categoryError.message);
@@ -363,3 +363,5 @@ export const CalendarStepsForm = forwardRef<
363
363
  );
364
364
  }
365
365
  );
366
+
367
+ CalendarStepsForm.displayName = "CalendarStepsForm";
@@ -1,10 +1,7 @@
1
- export const fancyTimeFormat = (miliseconds: number) => {
2
- const date = new Date(miliseconds);
3
- const mins = date.getMinutes();
4
- const secs = date.getSeconds();
5
- let timerString = "";
6
-
7
- timerString += `${mins}:${secs < 10 ? "0" : ""}`;
8
- timerString += `${secs}`;
9
- return timerString;
1
+ export const fancyTimeFormat = (milliseconds: number) => {
2
+ const totalSeconds = Math.floor(milliseconds / 1000);
3
+ const minutes = Math.floor(totalSeconds / 60);
4
+ const seconds = totalSeconds % 60;
5
+ const formattedSecs = seconds < 10 ? `0${seconds}` : `${seconds}`;
6
+ return `${minutes}:${formattedSecs}`;
10
7
  };
@@ -1,5 +1,6 @@
1
+ import { ProductCategory } from "@licklist/core/dist/DataMapper/Product/ProductCategoryDataMapper";
1
2
  import { useTranslation } from "react-i18next";
2
- import { MenuStep, Order } from "src/types";
3
+ import { Order } from "src/types";
3
4
 
4
5
  interface CategoryError {
5
6
  message: string;
@@ -12,41 +13,39 @@ export const useCategoryVerification = () => {
12
13
 
13
14
  return (
14
15
  values: Record<Order["id"], Order>,
15
- step: MenuStep
16
+ productCategories?: ProductCategory[]
16
17
  ): CategoryError | void => {
17
- let errorMessage;
18
+ let errorMessage: { id: number; message: string } | void;
18
19
 
19
20
  const productArray = Object.values(values).filter(
20
21
  (product) => product?.quantity > 0
21
22
  );
22
23
 
23
- step?.productCategories.forEach(
24
- ({ minSubItems, maxSubItems, id, name }) => {
25
- if (!minSubItems && !maxSubItems) return;
26
-
27
- const categoryProductsQuantity = productArray.filter(
28
- (product) => product?.productsCategoryId === id
29
- ).length;
30
-
31
- if (minSubItems && categoryProductsQuantity < minSubItems) {
32
- const message = t("Validation:fieldMinNumber", {
33
- min: minSubItems,
34
- attribute: `number of products in the ${name} category`,
35
- });
36
- errorMessage = { id, message };
37
-
38
- return;
39
- }
40
-
41
- if (maxSubItems && categoryProductsQuantity > maxSubItems) {
42
- const message = t("Validation:fieldMaxNumber", {
43
- max: maxSubItems,
44
- attribute: `number of products in the ${name} category`,
45
- });
46
- errorMessage = { id, message };
47
- }
24
+ productCategories.forEach(({ minSubItems, maxSubItems, id, name }) => {
25
+ if (!minSubItems && !maxSubItems) return;
26
+
27
+ const categoryProductsQuantity = productArray.filter(
28
+ (product) => product?.productsCategoryId === id
29
+ ).length;
30
+
31
+ if (minSubItems && categoryProductsQuantity < minSubItems) {
32
+ const message = t("Validation:fieldMinNumber", {
33
+ min: minSubItems,
34
+ attribute: `number of products in the ${name} category`,
35
+ });
36
+ errorMessage = { id, message };
37
+
38
+ return;
48
39
  }
49
- );
40
+
41
+ if (maxSubItems && categoryProductsQuantity > maxSubItems) {
42
+ const message = t("Validation:fieldMaxNumber", {
43
+ max: maxSubItems,
44
+ attribute: `number of products in the ${name} category`,
45
+ });
46
+ errorMessage = { id, message };
47
+ }
48
+ });
50
49
 
51
50
  return errorMessage;
52
51
  };
@@ -6,7 +6,7 @@ import { Page } from "./Page";
6
6
  import { PageHeader } from "./components/PageHeader";
7
7
  import { PageBody } from "./components/PageBody";
8
8
  import { IframeEventCard } from "../event/event-card/IframeEventCard";
9
- import { CalendarSelect } from "../event/event-calendar/components/CalendarSelect";
9
+ import { CalendarSelect } from "../../calendar/components/CalendarSelect";
10
10
 
11
11
  export default {
12
12
  title: "Iframe/Page/Page",
@@ -219,7 +219,7 @@ export function Default() {
219
219
  <>
220
220
  <CalendarSelect
221
221
  options={[{ label: "Floor 1", value: "1" }]}
222
- value={"1"}
222
+ value="1"
223
223
  onChange={(chagedId: string) => console.log({ chagedId })}
224
224
  />
225
225
  </>
@@ -26,7 +26,12 @@ export const LeftBlock = ({
26
26
  <div className={clsx("left-block", className)} {...props}>
27
27
  {pageTitle && (
28
28
  <div className="navigation">
29
- <div className="title">{pageTitle}</div>
29
+ {typeof pageTitle === "string" ? (
30
+ <div className="title">{pageTitle}</div>
31
+ ) : (
32
+ pageTitle
33
+ )}
34
+
30
35
  {component}
31
36
  </div>
32
37
  )}
@@ -9,15 +9,9 @@ import {
9
9
  PAYMENT_TYPE_NET_PROFIT,
10
10
  } from "@licklist/core/dist/DataMapper/Order/PaymentDataMapper";
11
11
  import { StaticTableData } from "../../../../table";
12
- import {
13
- getProductQuantityAndPrice,
14
- calculateTotalDiscount,
15
- calculateTotalPrice,
16
- getPaymentValueByType,
17
- getExternalPaymentDetail,
18
- getTotalSumByCategory,
19
- } from "../utils";
12
+ import { getProductQuantityAndPrice, getTotalSumByCategory } from "../utils";
20
13
  import { OrderItemsTableProps, SummaryItem } from "../types";
14
+ import { getOrderSummaryItems } from "../utils/paymentSummary";
21
15
 
22
16
  const CURRENCY_DEFAULT = "GBP";
23
17
  export const PAYMENT_TYPE_TRANSLATE_KEYS = {
@@ -114,9 +108,7 @@ export const useTableData = ({
114
108
  );
115
109
  };
116
110
 
117
- const renderSummaryItems = (
118
- summaryItems: { translateKey: string; price: number }[]
119
- ) => {
111
+ const renderSummaryItems = (summaryItems: SummaryItem[]) => {
120
112
  return summaryItems.map(({ translateKey, price }) => {
121
113
  return {
122
114
  key: uniqueId(`summary-info-${translateKey}`),
@@ -127,93 +119,6 @@ export const useTableData = ({
127
119
  });
128
120
  };
129
121
 
130
- const paymentNotProcessedSummary = () => {
131
- const externalPaymentDetail = paymentDetail
132
- ? getExternalPaymentDetail(paymentDetail)
133
- : undefined;
134
-
135
- const total = calculateTotalPrice(order, externalPaymentDetail);
136
-
137
- const summaryItems: SummaryItem[] = [
138
- {
139
- translateKey: "amountTotal",
140
- price: total,
141
- },
142
- ];
143
-
144
- if (externalDiscount) {
145
- summaryItems.push({
146
- price: externalDiscount,
147
- translateKey: "amountWithDiscount",
148
- });
149
- }
150
-
151
- if (externalPaymentDetail) {
152
- return [...summaryItems, ...getExternalPaymentDetail(paymentDetail)];
153
- }
154
-
155
- return summaryItems;
156
- };
157
-
158
- const processedPaymentSummary = () => {
159
- const externalPaymentDetail =
160
- paymentDetail && !order.payments.length
161
- ? getExternalPaymentDetail(paymentDetail)
162
- : Object.keys(PAYMENT_TYPE_TRANSLATE_KEYS).map((key) => {
163
- return {
164
- translateKey: PAYMENT_TYPE_TRANSLATE_KEYS[key],
165
- price: getPaymentValueByType(order.payments, key),
166
- };
167
- });
168
-
169
- const total = calculateTotalPrice(order, externalPaymentDetail);
170
-
171
- const totalDiscount = calculateTotalDiscount(order.payments);
172
- const totalWithDiscount = total - Number(totalDiscount);
173
- let summaryItems: SummaryItem[] = [
174
- {
175
- translateKey: "amountTotal",
176
- price: total,
177
- },
178
- ];
179
-
180
- if (totalDiscount) {
181
- summaryItems.push({
182
- translateKey: "amountWithDiscount",
183
- price: totalWithDiscount < 0 ? 0 : totalWithDiscount,
184
- });
185
- }
186
-
187
- if (paymentDetail && !order.payments.length) {
188
- return [...summaryItems, ...externalPaymentDetail];
189
- }
190
-
191
- summaryItems.push({
192
- translateKey: "totalPaid",
193
- price: totalWithDiscount <= 0 ? 0 : order.totalAmount,
194
- });
195
- if (totalWithDiscount <= 0) {
196
- return summaryItems;
197
- }
198
- summaryItems = [...summaryItems, ...externalPaymentDetail];
199
-
200
- if (totalWithDiscount > order.totalAmount) {
201
- summaryItems.push({
202
- translateKey: "remainingToPay",
203
- price: totalWithDiscount - order.totalAmount,
204
- });
205
- }
206
- return summaryItems;
207
- };
208
-
209
- const getOrderSummaryItems = () => {
210
- if (!isPaymentProcessed) {
211
- return paymentNotProcessedSummary();
212
- }
213
-
214
- return processedPaymentSummary();
215
- };
216
-
217
122
  const data = useMemo(
218
123
  () => {
219
124
  if (!order) {
@@ -222,7 +127,14 @@ export const useTableData = ({
222
127
 
223
128
  return [
224
129
  ...renderProductsContent(),
225
- ...renderSummaryItems(getOrderSummaryItems()),
130
+ ...renderSummaryItems(
131
+ getOrderSummaryItems({
132
+ order,
133
+ paymentDetail,
134
+ isPaymentProcessed,
135
+ externalDiscount,
136
+ })
137
+ ),
226
138
  ];
227
139
  },
228
140
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -1,7 +1,24 @@
1
1
  import { Order } from "@licklist/core/dist/DataMapper/Order/OrderDataMapper";
2
2
  import { PaymentDetail } from "@licklist/core/dist/DataMapper/Order/PaymentDetailDataMapper";
3
3
 
4
- export type SummaryItem = { translateKey: string; price: number };
4
+ export const AMOUNT_TOTAL = "amountTotal";
5
+ export const AMOUNT_WITH_DISCOUNT = "amountWithDiscount";
6
+ export const TOTAL_PAID = "totalPaid";
7
+ export const REMAINING_TO_PAY = "remainingToPay";
8
+
9
+ export const SUMMARY_TRANSLATE_KEYS = [
10
+ AMOUNT_TOTAL,
11
+ AMOUNT_WITH_DISCOUNT,
12
+ TOTAL_PAID,
13
+ REMAINING_TO_PAY,
14
+ ];
15
+
16
+ export type SUMMARY_TRANSLATE_KEY = typeof SUMMARY_TRANSLATE_KEYS[number];
17
+
18
+ export type SummaryItem = {
19
+ translateKey: SUMMARY_TRANSLATE_KEY;
20
+ price: number;
21
+ };
5
22
 
6
23
  export type OrderItemsTableProps = {
7
24
  order?: Order;