@licklist/design 0.71.6-dev.5 → 0.71.6-dev.7

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 (93) hide show
  1. package/dist/auth/Layout/AuthNavComponent.d.ts.map +1 -1
  2. package/dist/auth/Login/LoginComponent.d.ts.map +1 -1
  3. package/dist/auth/Login/LoginFormComponent.d.ts.map +1 -1
  4. package/dist/auth/Logout/Logout.js +1 -0
  5. package/dist/auth/Register/RegisterComponent.d.ts.map +1 -1
  6. package/dist/auth/Register/RegisterFormComponent.d.ts.map +1 -1
  7. package/dist/auth/ResetPassword/ResetPasswordFormComponent.d.ts.map +1 -1
  8. package/dist/auth/Router.d.ts.map +1 -1
  9. package/dist/auth/Router.js +2 -0
  10. package/dist/calendar/utils/index.d.ts +1 -1
  11. package/dist/calendar/utils/index.d.ts.map +1 -1
  12. package/dist/events/edit-event-modal/component/SaleDeadline/SaleDeadline.d.ts.map +1 -1
  13. package/dist/events/event-card/utils.d.ts.map +1 -1
  14. package/dist/events/event-statistic-modal/hooks/useTableData.d.ts.map +1 -1
  15. package/dist/events/event-statistic-modal/hooks/useTableData.js +1 -1
  16. package/dist/events/event-statistic-modal/utils/index.d.ts.map +1 -1
  17. package/dist/iframe/order-process/components/BookingSummary/components/SummaryTotal/SummaryTotal.d.ts.map +1 -1
  18. package/dist/iframe/order-process/components/BookingSummary/components/SummaryTotal/SummaryTotal.js +13 -5
  19. package/dist/iframe/order-process/components/BookingSummary/utils/index.d.ts.map +1 -1
  20. package/dist/iframe/order-process/components/CategoryProduct/CategoryProduct.d.ts.map +1 -1
  21. package/dist/iframe/order-process/components/CategoryProduct/CategoryProduct.js +1 -1
  22. package/dist/iframe/page/components/PageBody/hooks/useResizePageBody.d.ts.map +1 -1
  23. package/dist/iframe/payment/payment-page/PaymentPage.d.ts.map +1 -1
  24. package/dist/iframe/payment/payment-page/PaymentPage.js +3 -11
  25. package/dist/iframe/payment/payment-status-page/PaymentStatusPage.d.ts.map +1 -1
  26. package/dist/iframe/payment/payment-status-page/PaymentStatusPage.js +2 -2
  27. package/dist/iframe/ryft/RyftPaymentForm.js +1 -0
  28. package/dist/index.js +1 -0
  29. package/dist/notification/email-template/card/EmailTemplateCard.d.ts.map +1 -1
  30. package/dist/notification/sms-template/card/SmsTemplateCard.d.ts.map +1 -1
  31. package/dist/product-set/control/DateAndRecurrenceInput.d.ts.map +1 -1
  32. package/dist/product-set/control/DateInput.d.ts.map +1 -1
  33. package/dist/product-set/form/VenueMapsControl.d.ts +1 -1
  34. package/dist/product-set/form/VenueMapsControl.d.ts.map +1 -1
  35. package/dist/report/ReportRunnerModal/ReportRunnerModal.js +1 -0
  36. package/dist/sales/life-time-sales/LifeTimeSalesChart.js +1 -0
  37. package/dist/sales/manual-booking/select-event/SelectEvent.js +1 -0
  38. package/dist/sales/manual-booking/select-menu/SelectMenu.js +1 -0
  39. package/dist/sales/manual-booking/summary/ManualBookingSummary.js +1 -0
  40. package/dist/setting/admin/AdminSettingForm.d.ts.map +1 -1
  41. package/dist/setting/dashboard/snippet-templates/card/SnippetTemplateCard.d.ts.map +1 -1
  42. package/dist/snippet/snippet-template/preview/Preview.d.ts.map +1 -1
  43. package/dist/snippet/snippet-template/preview/Preview.js +3 -7
  44. package/dist/static/date-range-input/utils/index.d.ts +1 -1
  45. package/dist/static/date-range-input/utils/index.d.ts.map +1 -1
  46. package/dist/static/loader/FullScreenLoader.d.ts +8 -0
  47. package/dist/static/loader/FullScreenLoader.d.ts.map +1 -0
  48. package/dist/static/loader/FullScreenLoader.js +41 -0
  49. package/dist/static/loader/LoaderIndicator.d.ts +2 -3
  50. package/dist/static/loader/LoaderIndicator.d.ts.map +1 -1
  51. package/dist/static/loader/LoaderIndicator.js +4 -2
  52. package/dist/static/loader/index.d.ts +1 -0
  53. package/dist/static/loader/index.d.ts.map +1 -1
  54. package/dist/styles/availability-indicator/AvailabilityIndicator.scss +0 -3
  55. package/dist/styles/ryft-payment-form/RyftPaymentForm.scss +1 -1
  56. package/dist/styles/static/Loader.scss +9 -0
  57. package/package.json +2 -2
  58. package/src/auth/Layout/AuthNavComponent.tsx +4 -0
  59. package/src/auth/Login/LoginComponent.tsx +2 -0
  60. package/src/auth/Login/LoginFormComponent.tsx +2 -0
  61. package/src/auth/Register/RegisterComponent.tsx +2 -0
  62. package/src/auth/Register/RegisterFormComponent.tsx +4 -0
  63. package/src/auth/ResetPassword/ResetPasswordFormComponent.tsx +4 -0
  64. package/src/auth/Router.tsx +2 -0
  65. package/src/calendar/Calendar.stories.tsx +2 -2
  66. package/src/calendar/utils/index.ts +1 -1
  67. package/src/events/edit-event-modal/component/SaleDeadline/SaleDeadline.tsx +9 -7
  68. package/src/events/event-card/utils.ts +10 -9
  69. package/src/events/event-statistic-modal/EventStatisticModal.tsx +1 -1
  70. package/src/events/event-statistic-modal/hooks/useTableData.tsx +3 -4
  71. package/src/events/event-statistic-modal/utils/index.ts +2 -1
  72. package/src/iframe/order-process/components/BookingSummary/components/SummaryTotal/SummaryTotal.tsx +16 -10
  73. package/src/iframe/order-process/components/BookingSummary/utils/index.ts +7 -7
  74. package/src/iframe/order-process/components/CategoryProduct/CategoryProduct.tsx +4 -7
  75. package/src/iframe/page/components/PageBody/hooks/useResizePageBody.ts +1 -2
  76. package/src/iframe/payment/payment-page/PaymentPage.tsx +7 -14
  77. package/src/iframe/payment/payment-status-page/PaymentStatusPage.tsx +19 -20
  78. package/src/notification/email-template/card/EmailTemplateCard.tsx +2 -0
  79. package/src/notification/sms-template/card/SmsTemplateCard.tsx +2 -0
  80. package/src/product-set/control/DateAndRecurrenceInput.tsx +3 -4
  81. package/src/product-set/control/DateInput.tsx +3 -4
  82. package/src/product-set/form/VenueMapsControl.tsx +1 -1
  83. package/src/setting/admin/AdminSettingForm.tsx +4 -0
  84. package/src/setting/dashboard/snippet-templates/card/SnippetTemplateCard.tsx +2 -0
  85. package/src/snippet/snippet-template/preview/Preview.tsx +1 -8
  86. package/src/static/date-range-input/utils/index.ts +1 -1
  87. package/src/static/loader/FullScreenLoader.tsx +16 -0
  88. package/src/static/loader/LoaderIndicator.tsx +6 -3
  89. package/src/static/loader/index.ts +1 -0
  90. package/src/styles/availability-indicator/AvailabilityIndicator.scss +0 -3
  91. package/src/styles/ryft-payment-form/RyftPaymentForm.scss +1 -1
  92. package/src/styles/static/Loader.scss +9 -0
  93. package/yarn.lock +322 -320
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.71.6-dev.5",
3
+ "version": "0.71.6-dev.7",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/artelogicsoft/licklist_design.git"
@@ -208,4 +208,4 @@
208
208
  "yarn": "4.4.0"
209
209
  },
210
210
  "stableVersion": "0.71.4-dev.1"
211
- }
211
+ }
@@ -8,11 +8,15 @@ function AuthNavComponent() {
8
8
 
9
9
  return (
10
10
  <Router>
11
+ {/* TODO fix issue react router types
12
+ @ts-expect-error */}
11
13
  <Link to='/login'>
12
14
  <StyledButton size='sm' className='rounded-pill mr-2'>
13
15
  {t('login')}
14
16
  </StyledButton>
15
17
  </Link>
18
+ {/* TODO fix issue react router types
19
+ @ts-expect-error */}
16
20
  <Link to='/register'>
17
21
  <StyledButton
18
22
  size='sm'
@@ -112,6 +112,8 @@ const LoginComponent = ({
112
112
  {!hideSignUpLink && (
113
113
  <h6 className='text-center'>
114
114
  <Trans t={t} i18nKey='loginPromo'>
115
+ {/* TODO fix issue react router types
116
+ @ts-expect-error */}
115
117
  Don&apos;t have account? <Link to='/register'>Sign up</Link>.
116
118
  </Trans>
117
119
  </h6>
@@ -147,6 +147,8 @@ function LoginFormComponent(props: LoginFormComponentProps) {
147
147
  <p className='text-center mb-0 mt-3'>
148
148
  <Trans t={t} i18nKey='User:resetPromo'>
149
149
  Forgot your password?{' '}
150
+ {/* TODO fix issue react router types
151
+ @ts-expect-error */}
150
152
  <Link
151
153
  to='/forgot-password'
152
154
  className={[isLoading && 'disabled'].join(' ')}
@@ -105,6 +105,8 @@ function RegisterComponent({
105
105
  <h6 className='text-center'>
106
106
  <Trans t={t} i18nKey='registerPromo'>
107
107
  Fill out the form below to sign up for {{ name: t('bookedit') }}
108
+ {/* TODO fix issue react router types
109
+ @ts-expect-error */}
108
110
  . Already signed up? Then just <Link to='/login'>Log in</Link>.
109
111
  </Trans>
110
112
  </h6>
@@ -400,10 +400,14 @@ function RegisterFormComponent({
400
400
  <Trans t={t} i18nKey='User:agreementsPromo'>
401
401
  By creating an account, I agree to {{ name: t('User:bookedit') }}
402
402
  &apos;s{' '}
403
+ {/* TODO fix issue react router types
404
+ @ts-expect-error */}
403
405
  <Link to='/terms' className={[isLoading && 'disabled'].join(' ')}>
404
406
  terms of service
405
407
  </Link>{' '}
406
408
  and{' '}
409
+ {/* TODO fix issue react router types
410
+ @ts-expect-error */}
407
411
  <Link to='/privacy' className={[isLoading && 'disabled'].join(' ')}>
408
412
  privacy policy
409
413
  </Link>
@@ -97,6 +97,8 @@ function ResetPasswordFormComponent(props: ResetPasswordFormComponentProps) {
97
97
  <p className='text-center mb-0 mt-3'>
98
98
  <Trans t={t} i18nKey='User:signinPromo'>
99
99
  Already a user?{' '}
100
+ {/* TODO fix issue react router types
101
+ @ts-expect-error */}
100
102
  <Link to='/login' className={[isLoading && 'disabled'].join(' ')}>
101
103
  Sign in
102
104
  </Link>
@@ -106,6 +108,8 @@ function ResetPasswordFormComponent(props: ResetPasswordFormComponentProps) {
106
108
  <p className='text-center mb-0 mt-3'>
107
109
  <Trans t={t} i18nKey='User:loginPromo'>
108
110
  Don&apos;t have an account?{' '}
111
+ {/* TODO fix issue react router types
112
+ @ts-expect-error */}
109
113
  <Link
110
114
  to='/register'
111
115
  className={[isLoading && 'disabled'].join(' ')}
@@ -29,6 +29,8 @@ function Router(props: RouterProps) {
29
29
  }
30
30
  }, [])
31
31
 
32
+ // TODO fix issue react router types
33
+ // @ts-expect-error
32
34
  return <BrowserRouter history={history}>{children}</BrowserRouter>
33
35
  }
34
36
 
@@ -28,7 +28,7 @@ Default.args = {
28
28
  fromPrice: 'from £10',
29
29
  selectedDate: null,
30
30
  setSelectedDate: () => null,
31
- calendarDates: getMonthCalendarDates(now),
31
+ calendarDates: getMonthCalendarDates({ initialDate: now }),
32
32
  currentDate: now,
33
33
  getDateTimeButtonProps: () => ({
34
34
  resources: [],
@@ -50,7 +50,7 @@ Loading.args = {
50
50
  fromPrice: 'from £10',
51
51
  selectedDate: null,
52
52
  setSelectedDate: () => null,
53
- calendarDates: getMonthCalendarDates(now),
53
+ calendarDates: getMonthCalendarDates({ initialDate: now }),
54
54
  currentDate: now,
55
55
  getDateTimeButtonProps: () => ({
56
56
  resources: [],
@@ -3,7 +3,7 @@ import { DateTime, Interval } from 'luxon'
3
3
 
4
4
  type Builder = (args: {
5
5
  initialDate?: DateTime
6
- timeZone: TimeZone['name']
6
+ timeZone?: TimeZone['name']
7
7
  }) => DateTime[]
8
8
 
9
9
  export const getMonthCalendarDates: Builder = ({
@@ -28,11 +28,13 @@ export const DEADLINE_NAME = [
28
28
 
29
29
  export type DeadLineNameType = (typeof DEADLINE_NAME)[number]
30
30
 
31
- type SaleDeadlineType = {
32
- saleDeadline: null | number
33
- } | {
34
- [key: string] : null | number
35
- }
31
+ type SaleDeadlineType =
32
+ | {
33
+ saleDeadline: null | number
34
+ }
35
+ | {
36
+ [key: string]: null | number
37
+ }
36
38
 
37
39
  export const SaleDeadline = ({
38
40
  disabled = false,
@@ -52,8 +54,8 @@ export const SaleDeadline = ({
52
54
  const [deadlineType, setDeadlineType] = useState<DeadlineType>(
53
55
  SALE_DEADLINE_BEFORE_TYPE,
54
56
  )
55
-
56
- const saleDeadline = watch(deadLineCategory || SALE_DEADLINE_NAME)
57
+
58
+ const saleDeadline = watch(deadLineCategory || SALE_DEADLINE_NAME)
57
59
 
58
60
  useEffect(() => {
59
61
  if (onlyBefore) return
@@ -2,24 +2,25 @@ import { DATE_FORMAT, DATE_TIME_FULL_FORMAT } from '@licklist/core/dist/Config'
2
2
  import { EventStatistic } from '@licklist/core/dist/DataMapper/Provider/EventStatisticDataMapper'
3
3
  import { DateTime } from 'luxon'
4
4
 
5
- export const MIN_EVENT_DESCRIPTION_SIZE = 150;
6
- export const EVENT_DESCRIPTION_SIZE = 350;
7
- export const EMOJI_REGEX = /<span data-emoji-replacer=""><img[^>]*alt="([^"]+)"[^>]*><\/span>/g;
5
+ export const MIN_EVENT_DESCRIPTION_SIZE = 150
6
+ export const EVENT_DESCRIPTION_SIZE = 350
7
+ export const EMOJI_REGEX =
8
+ /<span data-emoji-replacer=""><img[^>]*alt="([^"]+)"[^>]*><\/span>/g
8
9
 
9
10
  export const formatContent = (content, maxLength = EVENT_DESCRIPTION_SIZE) => {
10
- if (!content) return '';
11
+ if (!content) return ''
11
12
 
12
- const replacedContent = replaceEmojiImagesWithText(content);
13
+ const replacedContent = replaceEmojiImagesWithText(content)
13
14
 
14
15
  if (replacedContent.length <= maxLength) {
15
- return replacedContent;
16
+ return replacedContent
16
17
  }
17
18
 
18
- return replacedContent.slice(0, maxLength).concat('...');
19
- };
19
+ return replacedContent.slice(0, maxLength).concat('...')
20
+ }
20
21
 
21
22
  function replaceEmojiImagesWithText(text) {
22
- return text.replace(EMOJI_REGEX, (_, emojiText) => emojiText);
23
+ return text.replace(EMOJI_REGEX, (_, emojiText) => emojiText)
23
24
  }
24
25
 
25
26
  /**
@@ -25,7 +25,7 @@ export const EventStatisticModal = ({
25
25
  }: EventStatisticModalProps) => {
26
26
  const { t } = useTranslation('Design')
27
27
 
28
- const data = useTableData(date, eventStatistic, eventId )
28
+ const data = useTableData(date, eventStatistic, eventId)
29
29
  const handleClose = () => {
30
30
  setIsOpen(false)
31
31
  }
@@ -11,7 +11,7 @@ import { StaticTableData } from '../../../table'
11
11
  export const useTableData = (
12
12
  date: Event['startAt'] | null,
13
13
  eventStatistic: EventStatistic | null,
14
- eventId: string
14
+ eventId: string,
15
15
  ) => {
16
16
  const { t } = useTranslation('Design')
17
17
  const { formatNumber } = useIntl()
@@ -34,7 +34,6 @@ export const useTableData = (
34
34
  const transformStatisticToTableRows = (
35
35
  date: Event['startAt'],
36
36
  statistic: EventStatistic | null,
37
- eventId: string
38
37
  ) => {
39
38
  if (!statistic) {
40
39
  return []
@@ -42,7 +41,7 @@ export const useTableData = (
42
41
 
43
42
  const tableDataRows: StaticTableData[] = []
44
43
 
45
- convertEventStatisticToTableData(date, statistic, eventId).forEach(
44
+ convertEventStatisticToTableData(date, statistic).forEach(
46
45
  ({ name, quantity, total, isBold, isHeader, key }) => {
47
46
  const formattedTotal = !Object.keys(TRANSLATION_KEYS).includes(
48
47
  String(total),
@@ -84,7 +83,7 @@ export const useTableData = (
84
83
  }
85
84
 
86
85
  useEffect(() => {
87
- setTableRows(transformStatisticToTableRows(date, eventStatistic, eventId))
86
+ setTableRows(transformStatisticToTableRows(date, eventStatistic))
88
87
  // eslint-disable-next-line react-hooks/exhaustive-deps
89
88
  }, [date, eventId, eventStatistic])
90
89
 
@@ -100,7 +100,8 @@ export const convertEventStatisticToTableData = (
100
100
 
101
101
  const maxTotalQuantity = maxBy(overrides, 'id')?.totalQuantity
102
102
 
103
- const totalQuantity = maxTotalQuantity || productSummary?.totalQuantity
103
+ const totalQuantity =
104
+ maxTotalQuantity || productSummary?.totalQuantity
104
105
 
105
106
  summaryMap.set(`${categoryName}.${productSummary.name}`, {
106
107
  name: productSummary.name,
@@ -22,24 +22,23 @@ export const SummaryTotal = ({
22
22
 
23
23
  const cartSum = isFreePayment
24
24
  ? 0
25
- : cartSumByOrderProducts({orderProducts}) + transactionFee
25
+ : cartSumByOrderProducts({ orderProducts }) + transactionFee
26
26
 
27
-
28
- const totalSum = isFreePayment
27
+ const totalSum = isFreePayment
29
28
  ? 0
30
- : cartSumByOrderProducts({orderProducts, isTotalSum: true}) +
31
- transactionFee;
32
-
33
- const hasRemaingToPay = totalSum > cartSum;
29
+ : cartSumByOrderProducts({ orderProducts, isTotalSum: true }) +
30
+ transactionFee
31
+
32
+ const hasRemaingToPay = totalSum > cartSum
34
33
 
35
34
  if (!orderProducts.length) {
36
35
  return null
37
36
  }
38
37
 
39
38
  return (
40
- <div className="d-flex flex-column justify-content-between">
39
+ <div className='d-flex flex-column justify-content-between'>
41
40
  <SummaryTotalBlock
42
- label={t(hasRemaingToPay ? "payNow" : "total")}
41
+ label={t(hasRemaingToPay ? 'payNow' : 'total')}
43
42
  amount={cartSum}
44
43
  />
45
44
  {!!totalWithDiscount && !isFreePayment && (
@@ -49,7 +48,14 @@ export const SummaryTotal = ({
49
48
  />
50
49
  )}
51
50
  {hasRemaingToPay && (
52
- <SummaryTotalBlock label={t("remaining")} amount={totalSum - cartSum} />
51
+ <>
52
+ <SummaryTotalBlock
53
+ label={t('remaining')}
54
+ amount={totalSum - cartSum}
55
+ />
56
+
57
+ <SummaryTotalBlock label={t('total')} amount={totalSum} />
58
+ </>
53
59
  )}
54
60
  </div>
55
61
  )
@@ -5,20 +5,20 @@ export const cartSumByOrderProducts = ({
5
5
  orderProducts,
6
6
  isTotalSum,
7
7
  }: {
8
- orderProducts?: OrderItem[];
9
- isTotalSum?: boolean;
8
+ orderProducts?: OrderItem[]
9
+ isTotalSum?: boolean
10
10
  }) => {
11
11
  if (!orderProducts || !orderProducts.length) {
12
12
  return 0
13
13
  }
14
14
  return orderProducts.reduce((prevSumValue: number, product) => {
15
- if (!product) return 0;
15
+ if (!product) return 0
16
16
  const price = isTotalSum
17
17
  ? product?.price
18
- : product?.deposit || product?.price;
19
- return prevSumValue + price * product.quantity;
20
- }, 0);
21
- };
18
+ : product?.deposit || product?.price
19
+ return prevSumValue + price * product.quantity
20
+ }, 0)
21
+ }
22
22
 
23
23
  export const getProductError = (
24
24
  productsWithErrors: QuantityCheckProductInfo[],
@@ -132,13 +132,10 @@ export const CategoryProduct = ({
132
132
  </div>
133
133
  <div className='iframe-event__product-price-wrapper'>
134
134
  <span className='product-price'>
135
- {formatNumber(
136
- category.allowDeposits ? product?.deposit : product.price,
137
- {
138
- style: 'currency',
139
- currency: Config.Currency.GBP,
140
- },
141
- )}
135
+ {formatNumber(product.price, {
136
+ style: 'currency',
137
+ currency: Config.Currency.GBP,
138
+ })}
142
139
  </span>
143
140
  <ProductQuantityInput
144
141
  onChange={onChange}
@@ -69,8 +69,7 @@ export const useResizePageBody = () => {
69
69
  rightBlockHeight -
70
70
  CALENDAR_WRAPPER_HEIGHT,
71
71
  }
72
-
73
- }
72
+ }
74
73
  return {
75
74
  maxHeight:
76
75
  height -
@@ -198,20 +198,13 @@ export const PaymentPage = ({
198
198
  )}
199
199
 
200
200
  {hasRemaingToPay && (
201
- <>
202
- <SummaryTotalBlock
203
- label={t('remaining')}
204
- amount={
205
- orderTotalAmountByFormValues -
206
- orderCartAmountByFormValues
207
- }
208
- />
209
-
210
- <SummaryTotalBlock
211
- label={t('total')}
212
- amount={orderTotalAmountByFormValues}
213
- />
214
- </>
201
+ <SummaryTotalBlock
202
+ label={t('remaining')}
203
+ amount={
204
+ orderTotalAmountByFormValues -
205
+ orderCartAmountByFormValues
206
+ }
207
+ />
215
208
  )}
216
209
 
217
210
  {isPaymentLinkWithRemainingToPay && (
@@ -59,20 +59,19 @@ export const PaymentStatusPage = ({
59
59
 
60
60
  if (isLoading) return <LoaderIndicator isLoaded={false} />
61
61
 
62
-
63
- const orderCartAmountByFormValues = cartSumByOrderProducts({
64
- orderProducts:
65
- bookingSummaryProps?.formValues &&
66
- Object.values(bookingSummaryProps?.formValues),
67
- });
68
- const orderTotalAmountByFormValues = cartSumByOrderProducts({
69
- orderProducts:
70
- bookingSummaryProps?.formValues &&
71
- Object.values(bookingSummaryProps?.formValues),
72
- isTotalSum: true,
73
- });
74
- const hasRemaingToPay =
75
- orderTotalAmountByFormValues > orderCartAmountByFormValues;
62
+ const orderCartAmountByFormValues = cartSumByOrderProducts({
63
+ orderProducts:
64
+ bookingSummaryProps?.formValues &&
65
+ Object.values(bookingSummaryProps?.formValues),
66
+ })
67
+ const orderTotalAmountByFormValues = cartSumByOrderProducts({
68
+ orderProducts:
69
+ bookingSummaryProps?.formValues &&
70
+ Object.values(bookingSummaryProps?.formValues),
71
+ isTotalSum: true,
72
+ })
73
+ const hasRemaingToPay =
74
+ orderTotalAmountByFormValues > orderCartAmountByFormValues
76
75
 
77
76
  // User can fill promocode only in iframe appcliation.
78
77
  // It didn't possible via payment link. This check will
@@ -81,9 +80,9 @@ const hasRemaingToPay =
81
80
  // For payment status page booking summary props can be empty
82
81
  // so we should also check for them
83
82
  const isCalculatedAmountGreaterThanOrderAmount =
84
- !hasRemaingToPay &&
85
- bookingSummaryProps &&
86
- orderCartAmountByFormValues > totalAmount;
83
+ !hasRemaingToPay &&
84
+ bookingSummaryProps &&
85
+ orderCartAmountByFormValues > totalAmount
87
86
 
88
87
  return (
89
88
  <Page
@@ -140,7 +139,7 @@ const hasRemaingToPay =
140
139
  <>
141
140
  {isCalculatedAmountGreaterThanOrderAmount && (
142
141
  <SummaryTotalBlock
143
- label={t(hasRemaingToPay ? "payNow" : "total")}
142
+ label={t(hasRemaingToPay ? 'payNow' : 'total')}
144
143
  amount={
145
144
  orderCartAmountByFormValues +
146
145
  (bookingSummaryProps?.transactionFee || 0)
@@ -159,9 +158,9 @@ const hasRemaingToPay =
159
158
  (bookingSummaryProps?.transactionFee || 0)
160
159
  }
161
160
  />
162
- {hasRemaingToPay && (
161
+ {hasRemaingToPay && (
163
162
  <SummaryTotalBlock
164
- label={t("remaining")}
163
+ label={t('remaining')}
165
164
  amount={
166
165
  orderTotalAmountByFormValues -
167
166
  orderCartAmountByFormValues
@@ -35,6 +35,8 @@ export function EmailTemplateCard({
35
35
  return (
36
36
  <div className='snippet-template-card'>
37
37
  <div className='snippet-template-card-header'>
38
+ {/* TODO fix issue react router types
39
+ @ts-expect-error */}
38
40
  <Link to={href}>{name}</Link>
39
41
  {hasPermission && Boolean(onRemove) && (
40
42
  <ConfirmModal
@@ -33,6 +33,8 @@ export function SmsTemplateCard({
33
33
  return (
34
34
  <div className='snippet-template-card'>
35
35
  <div className='snippet-template-card-header'>
36
+ {/* TODO fix issue react router types
37
+ @ts-expect-error */}
36
38
  <Link to={href}>{name}</Link>
37
39
  {hasPermission && Boolean(onRemove) && (
38
40
  <ConfirmModal
@@ -198,7 +198,8 @@ export const DateAndRecurrenceInput = ({
198
198
  move(prevIndex, nextIndex)
199
199
  }
200
200
 
201
- const errorMessage = errors.menuRecurrences?.message || errors.menuRecurrences?.root?.message
201
+ const errorMessage =
202
+ errors.menuRecurrences?.message || errors.menuRecurrences?.root?.message
202
203
 
203
204
  useEffect(() => {
204
205
  if (fields.length) {
@@ -308,9 +309,7 @@ export const DateAndRecurrenceInput = ({
308
309
  })}
309
310
  />
310
311
 
311
- <div className='manual-form-error'>
312
- {errorMessage}
313
- </div>
312
+ <div className='manual-form-error'>{errorMessage}</div>
314
313
  </div>
315
314
  </OverlayTrigger>
316
315
  </Form.Group>
@@ -195,7 +195,8 @@ export const DateInput = ({
195
195
  }, 100)
196
196
  }
197
197
 
198
- const errorMessage = errors.menuRecurrences?.message || errors.menuRecurrences?.root?.message
198
+ const errorMessage =
199
+ errors.menuRecurrences?.message || errors.menuRecurrences?.root?.message
199
200
 
200
201
  return (
201
202
  <Form.Group>
@@ -284,9 +285,7 @@ export const DateInput = ({
284
285
  })}
285
286
  />
286
287
 
287
- <div className='manual-form-error'>
288
- {errorMessage}
289
- </div>
288
+ <div className='manual-form-error'>{errorMessage}</div>
290
289
  </div>
291
290
  </OverlayTrigger>
292
291
  </Form.Group>
@@ -3,9 +3,9 @@ import { Button } from 'react-bootstrap'
3
3
  import { VenueMap } from '@licklist/core/dist/DataMapper/Product/VenueMapDataMapper'
4
4
  import MediaService from '@licklist/plugins/dist/services/Media/MediaService'
5
5
  import { PointProduct } from '@licklist/core/dist/DataMapper/Product/PointProductDataMapper'
6
+ import { Product } from '@licklist/core/dist/DataMapper/Product/ProductDataMapper'
6
7
  import { FullscreenModal } from '../../modals/fullscreen'
7
8
  import { EventVenueMap } from '../../events/event-venue-map'
8
- import { Product } from '../types'
9
9
 
10
10
  type VenueMapsControlProps = {
11
11
  venueMaps?: VenueMap[]
@@ -145,10 +145,14 @@ export const AdminSettingForm = ({
145
145
  ) && (
146
146
  <>
147
147
  {t('noCountryIsProvided')}
148
+ {/* TODO fix issue react router types
149
+ @ts-expect-error */}
148
150
  <Link
149
151
  role='button'
150
152
  to={`/provider/${providerMetadata?.providerType}/${providerMetadata?.providableId}/update`}
151
153
  >
154
+ {/* TODO fix issue react router types
155
+ @ts-expect-error */}
152
156
  {t('here')}
153
157
  </Link>
154
158
  </>
@@ -24,6 +24,8 @@ export function SnippetTemplateCard({
24
24
  return (
25
25
  <div className='snippet-template-card'>
26
26
  <div className='snippet-template-card-header'>
27
+ {/* TODO fix issue react router types
28
+ @ts-expect-error */}
27
29
  <Link to={href}>{name}</Link>
28
30
  {hasPermission && !isDefault && (
29
31
  <button
@@ -29,7 +29,6 @@ import {
29
29
  import { NumberInput } from '../../../iframe/order-process/components/CategoryProduct/components/NumberInput'
30
30
  import { SnippetTemplateContext } from '../context/snippetTemplate'
31
31
 
32
-
33
32
  const DEFAULT_IMAGE =
34
33
  'https://images.unsplash.com/photo-1638988319382-90e61be77c59?ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80'
35
34
 
@@ -58,7 +57,7 @@ export function Preview({
58
57
 
59
58
  const [currentDate, setCurrentDate] = useState<DateTime>(defaultStartDay)
60
59
  const [selectedDate, setSelectedDate] = useState<DateTime | null>(null)
61
- const calendarDates = getMonthCalendarDates(currentDate)
60
+ const calendarDates = getMonthCalendarDates({ initialDate: currentDate })
62
61
 
63
62
  return (
64
63
  <div className='w-100 h-100 snippet-template-preview'>
@@ -309,7 +308,6 @@ export function Preview({
309
308
  productCategoryId: 57,
310
309
  productGroupId: null,
311
310
  availableQuantity: 980,
312
- zoneId: null,
313
311
  name: 'Cofee',
314
312
  description: '',
315
313
  price: 15,
@@ -318,8 +316,6 @@ export function Preview({
318
316
  maxQuantity: 15,
319
317
  totalQuantity: 980,
320
318
  type: 'sale' as const,
321
- capacity: 0,
322
- duration: 0,
323
319
  weight: 0,
324
320
  isAvailable: true,
325
321
  isSoldOut: false,
@@ -338,7 +334,6 @@ export function Preview({
338
334
  productCategoryId: 57,
339
335
  productGroupId: null,
340
336
  availableQuantity: 980,
341
- zoneId: null,
342
337
  name: 'Cofee 2',
343
338
  description: '',
344
339
  price: 15,
@@ -347,8 +342,6 @@ export function Preview({
347
342
  maxQuantity: 15,
348
343
  totalQuantity: 980,
349
344
  type: 'sale' as const,
350
- capacity: 0,
351
- duration: 0,
352
345
  weight: 0,
353
346
  isAvailable: true,
354
347
  isSoldOut: false,
@@ -58,7 +58,7 @@ export const stringDatesToInputValue = ({
58
58
  )} - ${DateTime.fromJSDate(nextEndDate).toFormat(INPUT_DATE_FORMAT)}`
59
59
  }
60
60
 
61
- export const getDateParams = (date: Date) => {
61
+ export const getDateParams = (date: Date): [number, number, number] => {
62
62
  const year = date.getFullYear()
63
63
  const month = date.getMonth() + 1
64
64
  const monthDate = date.getDate()
@@ -0,0 +1,16 @@
1
+ import clsx from 'clsx'
2
+ import { LoaderIndicator, LoaderIndicatorProps } from './LoaderIndicator'
3
+
4
+ interface FullScreenLoaderProps {
5
+ containerClassName?: string
6
+ indicatorProps?: LoaderIndicatorProps
7
+ }
8
+
9
+ export const FullScreenLoader = ({
10
+ containerClassName,
11
+ indicatorProps,
12
+ }: FullScreenLoaderProps) => (
13
+ <div className={clsx('fullscreen-loader', containerClassName)}>
14
+ <LoaderIndicator {...indicatorProps} />
15
+ </div>
16
+ )