@bikdotai/bik-widgets 1.0.0 → 1.0.2

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 (207) hide show
  1. package/dist-package/index.css +95 -0
  2. package/dist-package/index.js +2 -0
  3. package/package.json +17 -4
  4. package/.eslintrc +0 -22
  5. package/.eslintrc.js +0 -19
  6. package/.github/workflows/main.yml +0 -293
  7. package/.prettierignore +0 -13
  8. package/.prettierrc +0 -10
  9. package/cypress/apiHelper/endpoints.ts +0 -21
  10. package/cypress/apiHelper/executor.ts +0 -42
  11. package/cypress/e2e/bottomDrawer.cy.ts +0 -49
  12. package/cypress/e2e/directReward.cy.ts +0 -67
  13. package/cypress/e2e/scratchTheCard.cy.ts +0 -68
  14. package/cypress/e2e/stw.cy.ts +0 -82
  15. package/cypress/e2e/waRedirection.cy.ts +0 -46
  16. package/cypress/fixtures/payloads.ts +0 -330
  17. package/cypress/support/commands.ts +0 -37
  18. package/cypress/support/e2e.ts +0 -20
  19. package/cypress.staging.config.ts +0 -23
  20. package/jsconfig.json +0 -6
  21. package/localtest.sh +0 -10
  22. package/log-server.js +0 -86
  23. package/postcss.config.js +0 -8
  24. package/src/Globals.d.ts +0 -2
  25. package/src/assets/lottie/santa.json +0 -11722
  26. package/src/assets/svg/CalendarClockIcon.tsx +0 -30
  27. package/src/assets/svg/CalendarIcon.tsx +0 -24
  28. package/src/assets/svg/CheckIcon.tsx +0 -17
  29. package/src/assets/svg/ChevronIcon.tsx +0 -21
  30. package/src/assets/svg/Close.tsx +0 -39
  31. package/src/assets/svg/Confetti.tsx +0 -140
  32. package/src/assets/svg/Copy.tsx +0 -26
  33. package/src/assets/svg/DropdownCheckIcon.tsx +0 -35
  34. package/src/assets/svg/ErrorIcon.tsx +0 -27
  35. package/src/assets/svg/RadioIcon.tsx +0 -25
  36. package/src/assets/svg/UncheckedCheckboxIcon.tsx +0 -28
  37. package/src/assets/svg/UncheckedRadioIcon.tsx +0 -26
  38. package/src/assets/svg/info.tsx +0 -30
  39. package/src/assets/svg/qrcode.svg +0 -14
  40. package/src/bootstrap.tsx +0 -8
  41. package/src/components/CtaCard/index.tsx +0 -37
  42. package/src/components/CtaCard/preview.module.css +0 -32
  43. package/src/components/CtaCard/style.module.css +0 -32
  44. package/src/components/EmailInput/emailInputBox.tsx +0 -95
  45. package/src/components/Fab/index.tsx +0 -224
  46. package/src/components/Fab/preview.module.css +0 -28
  47. package/src/components/Fab/style.module.css +0 -37
  48. package/src/components/Icons/Call.tsx +0 -26
  49. package/src/components/Icons/Cross.tsx +0 -24
  50. package/src/components/Icons/Gmail.tsx +0 -61
  51. package/src/components/Icons/Instagram.tsx +0 -60
  52. package/src/components/Icons/LiveChat.tsx +0 -43
  53. package/src/components/Icons/Messenger.tsx +0 -57
  54. package/src/components/Icons/Send.tsx +0 -22
  55. package/src/components/Icons/Whatsapp.tsx +0 -24
  56. package/src/components/Shimmer/index.tsx +0 -12
  57. package/src/components/Shimmer/style.module.css +0 -37
  58. package/src/components/SmsInput/smsInputBox.tsx +0 -135
  59. package/src/components/UserDetailsV2/userDetailsV2.desktop.module.css +0 -52
  60. package/src/components/UserDetailsV2/userDetailsV2.mobile.module.css +0 -52
  61. package/src/components/UserDetailsV2/userDetailsV2.module.css +0 -81
  62. package/src/components/UserDetailsV2/userDetailsV2.tsx +0 -527
  63. package/src/components/WhatsappInput/Spinner.tsx +0 -26
  64. package/src/components/WhatsappInput/whatsappInput.module.css +0 -106
  65. package/src/components/WhatsappInput/whatsappInputBox.tsx +0 -155
  66. package/src/components/WhatsappInput/whatsappInputPreviewDesktop.module.css +0 -71
  67. package/src/components/WhatsappInput/whatsappInputPreviewMobile.module.css +0 -65
  68. package/src/components/checkbox/checkbox.module.css +0 -19
  69. package/src/components/checkbox/checkbox.tsx +0 -88
  70. package/src/components/countryCodePicker/countriesDropdown.module.css +0 -77
  71. package/src/components/countryCodePicker/countriesDropdown.tsx +0 -81
  72. package/src/components/couponDetails/coupon.module.css +0 -208
  73. package/src/components/couponDetails/coupon.tsx +0 -210
  74. package/src/components/couponDetails/couponPreviewDesktop.module.css +0 -158
  75. package/src/components/couponDetails/couponPreviewMobile.module.css +0 -164
  76. package/src/components/index.ts +0 -3
  77. package/src/components/inputComponents/Checkbox.module.css +0 -197
  78. package/src/components/inputComponents/Checkbox.tsx +0 -85
  79. package/src/components/inputComponents/DatePicker.module.css +0 -565
  80. package/src/components/inputComponents/DatePicker.tsx +0 -278
  81. package/src/components/inputComponents/Dropdown.module.css +0 -796
  82. package/src/components/inputComponents/Dropdown.tsx +0 -630
  83. package/src/components/inputComponents/InputBox.module.css +0 -401
  84. package/src/components/inputComponents/InputBox.tsx +0 -209
  85. package/src/components/selectedCountry/selectedCountry.module.css +0 -76
  86. package/src/components/selectedCountry/selectedCountry.tsx +0 -76
  87. package/src/components/selectedCountry/selectedCountryPreviewDesktop.module.css +0 -56
  88. package/src/components/selectedCountry/selectedCountryPreviewMobile.module.css +0 -57
  89. package/src/components/userDetailsForm/RenderCustomFields.tsx +0 -333
  90. package/src/components/userDetailsForm/userDetailsForm.tsx +0 -675
  91. package/src/hooks/index.ts +0 -4
  92. package/src/hooks/useExitIntent.ts +0 -452
  93. package/src/hooks/useIsMobile.tsx +0 -21
  94. package/src/hooks/useMessageEvent.ts +0 -8
  95. package/src/hooks/useTriggeredIntentDetails.ts +0 -43
  96. package/src/hooks/useUrlListerner.ts +0 -30
  97. package/src/hooks/useWebSocketLogger.ts +0 -59
  98. package/src/hooks/useWindowEvent.ts +0 -8
  99. package/src/icons/copyIcon.tsx +0 -26
  100. package/src/icons/crossIconDesktop.tsx +0 -20
  101. package/src/icons/crossIconMobile.tsx +0 -20
  102. package/src/index.html +0 -30
  103. package/src/index.ts +0 -32
  104. package/src/index.tsx +0 -1
  105. package/src/repo/widgetRepo.ts +0 -21
  106. package/src/types/customFields.ts +0 -73
  107. package/src/utilities/cookie.ts +0 -70
  108. package/src/utilities/customFieldTypeMapping.ts +0 -67
  109. package/src/utilities/customFieldValidation.ts +0 -201
  110. package/src/utilities/encryption.ts +0 -21
  111. package/src/utilities/exitIntentUtils.ts +0 -31
  112. package/src/utilities/global.css +0 -11
  113. package/src/utilities/languageUtilities.ts +0 -235
  114. package/src/utilities/localRunner.js +0 -26
  115. package/src/utilities/localRunner.ts +0 -27
  116. package/src/utilities/localStorage.ts +0 -40
  117. package/src/utilities/script.tsx +0 -15
  118. package/src/utilities/stringUtils.ts +0 -5
  119. package/src/utilities/styleUtils.ts +0 -134
  120. package/src/utilities/variables.ts +0 -11
  121. package/src/utilities/widgetUtils.js +0 -342
  122. package/src/utilities/widgetUtils.ts +0 -313
  123. package/src/widgets/BottomDrawer/config.ts +0 -41
  124. package/src/widgets/BottomDrawer/index.tsx +0 -116
  125. package/src/widgets/BottomDrawer/modal.tsx +0 -286
  126. package/src/widgets/BottomDrawer/preview.module.css +0 -122
  127. package/src/widgets/BottomDrawer/previewMobile.module.css +0 -124
  128. package/src/widgets/BottomDrawer/style.module.css +0 -279
  129. package/src/widgets/CaptivateBanner/captivateBanner.tsx +0 -200
  130. package/src/widgets/CaptivateBanner/config.ts +0 -72
  131. package/src/widgets/CaptivateBanner/index.tsx +0 -204
  132. package/src/widgets/CaptivateBanner/previewDesktop.module.css +0 -51
  133. package/src/widgets/CaptivateBanner/previewMobile.module.css +0 -51
  134. package/src/widgets/CaptivateBanner/style.module.css +0 -77
  135. package/src/widgets/CaptivateBanner/utils.ts +0 -104
  136. package/src/widgets/CentrallyAlignedPopup/config.ts +0 -42
  137. package/src/widgets/CentrallyAlignedPopup/index.tsx +0 -109
  138. package/src/widgets/CentrallyAlignedPopup/modal.tsx +0 -269
  139. package/src/widgets/CentrallyAlignedPopup/preview.module.css +0 -153
  140. package/src/widgets/CentrallyAlignedPopup/previewMobile.module.css +0 -153
  141. package/src/widgets/CentrallyAlignedPopup/style.module.css +0 -283
  142. package/src/widgets/DirectReward/components/couponDetails.tsx +0 -265
  143. package/src/widgets/DirectReward/components/userDetails.tsx +0 -117
  144. package/src/widgets/DirectReward/config.ts +0 -186
  145. package/src/widgets/DirectReward/directReward.tsx +0 -350
  146. package/src/widgets/DirectReward/index.tsx +0 -579
  147. package/src/widgets/DirectReward/previewStyles/thankYouPreviewDesktop.module.css +0 -276
  148. package/src/widgets/DirectReward/previewStyles/thankYouPreviewMobile.module.css +0 -303
  149. package/src/widgets/DirectReward/previewStyles/userDetailsPreviewDesktop.module.css +0 -511
  150. package/src/widgets/DirectReward/previewStyles/userDetailsPreviewMobile.module.css +0 -462
  151. package/src/widgets/DirectReward/style.module.css +0 -836
  152. package/src/widgets/ExitIntentHook.tsx +0 -28
  153. package/src/widgets/STW/api.ts +0 -70
  154. package/src/widgets/STW/components/svgFactory.tsx +0 -44
  155. package/src/widgets/STW/config.ts +0 -193
  156. package/src/widgets/STW/context.ts +0 -7
  157. package/src/widgets/STW/couponDetails.tsx +0 -121
  158. package/src/widgets/STW/index.tsx +0 -733
  159. package/src/widgets/STW/previewStyles/thankyouPreviewDesktop.module.css +0 -215
  160. package/src/widgets/STW/previewStyles/thankyouPreviewMobile.module.css +0 -205
  161. package/src/widgets/STW/previewStyles/userInputsPreviewDesktop.module.css +0 -732
  162. package/src/widgets/STW/previewStyles/userInputsPreviewMobile.module.css +0 -661
  163. package/src/widgets/STW/previewStyles/wheelPreviewDesktop.module.css +0 -498
  164. package/src/widgets/STW/previewStyles/wheelPreviewMobile.module.css +0 -497
  165. package/src/widgets/STW/stw1.tsx +0 -119
  166. package/src/widgets/STW/stw2Components/wheelDesign.tsx +0 -183
  167. package/src/widgets/STW/stw2Pages/couponDetails.tsx +0 -72
  168. package/src/widgets/STW/stw2Pages/stw2.tsx +0 -212
  169. package/src/widgets/STW/stw2Pages/style.module.css +0 -1226
  170. package/src/widgets/STW/stw2Pages/userDetails.tsx +0 -86
  171. package/src/widgets/STW/stw2Pages/wheel.tsx +0 -117
  172. package/src/widgets/STW/stw2PreviewStyles/thankyouPreviewDesktop.module.css +0 -835
  173. package/src/widgets/STW/stw2PreviewStyles/thankyouPreviewMobile.module.css +0 -787
  174. package/src/widgets/STW/stw2PreviewStyles/userInputsPreviewDesktop.module.css +0 -867
  175. package/src/widgets/STW/stw2PreviewStyles/userInputsPreviewMobile.module.css +0 -798
  176. package/src/widgets/STW/stw2PreviewStyles/wheelPreviewDesktop.module.css +0 -572
  177. package/src/widgets/STW/stw2PreviewStyles/wheelPreviewMobile.module.css +0 -559
  178. package/src/widgets/STW/style.module.css +0 -901
  179. package/src/widgets/STW/userDetails.tsx +0 -150
  180. package/src/widgets/STW/utility.ts +0 -664
  181. package/src/widgets/STW/wheel.tsx +0 -304
  182. package/src/widgets/ScratchCard/ScratchOff/scratchOff.tsx +0 -157
  183. package/src/widgets/ScratchCard/config.ts +0 -152
  184. package/src/widgets/ScratchCard/globalStyle.module.css +0 -931
  185. package/src/widgets/ScratchCard/index.tsx +0 -546
  186. package/src/widgets/ScratchCard/modal.tsx +0 -225
  187. package/src/widgets/ScratchCard/preview.module.css +0 -250
  188. package/src/widgets/ScratchCard/previewMobile.module.css +0 -247
  189. package/src/widgets/ScratchCard/previewStyles/userDetailsPreviewDesktop.module.css +0 -537
  190. package/src/widgets/ScratchCard/previewStyles/userDetailsPreviewMobile.module.css +0 -463
  191. package/src/widgets/ScratchCard/style.module.css +0 -220
  192. package/src/widgets/ShopifyForm/config.ts +0 -168
  193. package/src/widgets/ShopifyForm/index.tsx +0 -214
  194. package/src/widgets/ShopifyForm/previewDesktop.module.css +0 -117
  195. package/src/widgets/ShopifyForm/previewMobile.module.css +0 -131
  196. package/src/widgets/ShopifyForm/shopifyForm.tsx +0 -445
  197. package/src/widgets/ShopifyForm/style.module.css +0 -161
  198. package/src/widgets/SingleButtonRedirection/config.ts +0 -47
  199. package/src/widgets/SingleButtonRedirection/index.tsx +0 -121
  200. package/src/widgets/WebStories/config.ts +0 -105
  201. package/src/widgets/WebStories/index.css +0 -3
  202. package/src/widgets/WebStories/index.tsx +0 -282
  203. package/src/widgets/WebStories/style.module.css +0 -26
  204. package/src/widgets/index.tsx +0 -3
  205. package/src/widgets/utility.ts +0 -31
  206. package/tsconfig.json +0 -12
  207. package/webpack.config.js +0 -239
@@ -1,155 +0,0 @@
1
- import React, { useContext, useCallback, useState, useMemo } from 'react';
2
- import CountriesDropDown from '../countryCodePicker/countriesDropdown';
3
- import SelectedCountry from '../selectedCountry/selectedCountry';
4
- import { STWContext } from '../../widgets/STW/context';
5
- import { UserFields } from '../../types/customFields';
6
- import { LanguageUtils } from '../../utilities/languageUtilities';
7
- import { LANGUAGE_VALUES } from '@bikdotai/bik-models/dm';
8
- import { InputBox } from '../inputComponents/InputBox';
9
- import useIsMobile from '../../hooks/useIsMobile';
10
-
11
- export interface InputProps {
12
- selectedCountryData: { code: string; dial: string; code3: string };
13
- setUserInputs: React.Dispatch<React.SetStateAction<UserFields>>;
14
- onChangeHandle: (
15
- value: string,
16
- key: 'isWhatsapp' | 'isSms' | 'isEmail',
17
- ) => void;
18
- value: string;
19
- title?: string;
20
- error: string;
21
- skipCountryPicker: boolean;
22
- screenButtonColour?: string;
23
- id?: string;
24
- fontColour: string;
25
- onFocusColour?: string;
26
- widgetLanguage?: LANGUAGE_VALUES;
27
- }
28
-
29
- const WhatsappInputBox: React.FC<InputProps> = ({
30
- selectedCountryData,
31
- setUserInputs,
32
- onChangeHandle,
33
- value,
34
- title,
35
- error,
36
- skipCountryPicker,
37
- id,
38
- fontColour,
39
- widgetLanguage,
40
- }) => {
41
- const languageUtilities = useMemo(() => new LanguageUtils(), []);
42
- const [showDropdown, setShowDropdown] = useState<boolean>(false);
43
- const { preview, isMobile } = useContext(STWContext);
44
- const isMobileDevice = useIsMobile();
45
-
46
- const toggleDropDown = (flag: boolean) => {
47
- setShowDropdown(flag);
48
- };
49
-
50
- const onListItemClickHandle = (code: string, dial: string, code3: string) => {
51
- setShowDropdown(false);
52
- setUserInputs(prevState => {
53
- return {
54
- ...prevState,
55
- isWhatsapp: {
56
- ...prevState.isWhatsapp,
57
- countryCodeData: { code, dial, code3 },
58
- },
59
- customFields: {
60
- ...prevState.customFields,
61
- },
62
- };
63
- });
64
- toggleDropDown(false);
65
- };
66
-
67
- const handleChange = useCallback(
68
- (newValue: string) => {
69
- onChangeHandle(newValue, 'isWhatsapp');
70
- },
71
- [onChangeHandle],
72
- );
73
-
74
- const labelText =
75
- title ?? languageUtilities.getWhatsappNumberTitle(widgetLanguage);
76
-
77
- const containerStyle = useMemo(() => {
78
- const fontSize = preview ? (isMobile ? '12px' : '10px') : '14px';
79
-
80
- return {
81
- fontFamily: 'inherit',
82
- color: fontColour,
83
- display: 'flex' as const,
84
- gap: skipCountryPicker ? 0 : 8,
85
- flexDirection: skipCountryPicker ? ('column' as const) : ('row' as const),
86
- fontSize,
87
- marginTop: preview ? 4 : 12,
88
- };
89
- }, [preview, isMobile, fontColour, skipCountryPicker]);
90
-
91
- const inputBoxStyle = useMemo(
92
- () =>
93
- ({
94
- '--bik-inputBox-text-color': fontColour,
95
- '--bik-inputBox-label-color': fontColour,
96
- '--bik-inputBox-border-color': error ? '#b92321' : '#e0e0e0',
97
- '--bik-inputBox-error-border-color': '#b92321',
98
- }) as React.CSSProperties & Record<string, string>,
99
- [fontColour, error],
100
- );
101
-
102
- const inputHeight = useMemo(() => {
103
- if (preview) {
104
- return isMobile ? 22 : 18;
105
- }
106
- return isMobileDevice ? 48 : 56;
107
- }, [preview, isMobile, isMobileDevice]);
108
-
109
- return (
110
- <div style={containerStyle}>
111
- {!skipCountryPicker && (
112
- <div
113
- style={{
114
- fontFamily: 'inherit',
115
- display: 'flex',
116
- alignItems: 'flex-start',
117
- position: 'relative',
118
- }}
119
- >
120
- <SelectedCountry
121
- toggleDropDown={toggleDropDown}
122
- showDropdown={showDropdown}
123
- selectedCountryData={selectedCountryData}
124
- fontColour={fontColour}
125
- />
126
- {showDropdown && (
127
- <CountriesDropDown
128
- onListItemClickHandle={onListItemClickHandle}
129
- closeDropdown={() => {
130
- setShowDropdown(false);
131
- }}
132
- />
133
- )}
134
- </div>
135
- )}
136
-
137
- <div style={{ flex: 1, ...inputBoxStyle }}>
138
- <InputBox
139
- id={id}
140
- value={value || ''}
141
- onChange={handleChange}
142
- inputType="number"
143
- labelText={labelText}
144
- errorMessage={error}
145
- isRequired={false}
146
- inputHeight={inputHeight}
147
- fontColour={fontColour}
148
- isPreview={preview}
149
- />
150
- </div>
151
- </div>
152
- );
153
- };
154
-
155
- export default WhatsappInputBox;
@@ -1,71 +0,0 @@
1
- .bikStwPhoneInputRow {
2
- font-family: inherit;
3
- display: flex;
4
- flex-direction: row;
5
- margin-top: 4px;
6
- width: 100%;
7
- gap: 4px;
8
- }
9
-
10
- .bikStwPhoneInputRow > div {
11
- font-family: inherit;
12
- }
13
-
14
- .bikInputMain {
15
- display: flex;
16
- margin: 0;
17
- }
18
-
19
- .bikStwPhoneInput {
20
- flex: 1;
21
- font-family: inherit;
22
- }
23
-
24
- .bikStwH2 {
25
- font-family: inherit;
26
- font-style: normal;
27
- font-weight: 400;
28
- font-size: 8px;
29
- line-height: 10px;
30
- font-feature-settings:
31
- 'tnum' on,
32
- 'lnum' on,
33
- 'case' on,
34
- 'ss04' on;
35
- color: #212121;
36
- margin-bottom: 0;
37
- }
38
-
39
- .bikInputWrapper {
40
- width: 100%;
41
- display: flex;
42
- flex-direction: column;
43
- font-family: inherit;
44
- }
45
-
46
- .bikInputWrapper input {
47
- outline: none;
48
- padding: 2px;
49
- background-color: rgba(256, 256, 256, 0.3);
50
- border: 1px solid #e0e0e0;
51
- border-radius: 4px !important;
52
- width: 100%;
53
- font-family: inherit;
54
- height: 22px;
55
- box-shadow: none;
56
- font-size: 7px;
57
- margin-left: 0;
58
- pointer-events: none;
59
- }
60
-
61
- input::-webkit-outer-spin-button,
62
- input::-webkit-inner-spin-button {
63
- -webkit-appearance: none;
64
- margin: 0;
65
- }
66
-
67
- .bikEmailInputMain {
68
- display: block;
69
- margin: 0;
70
- font-family: inherit;
71
- }
@@ -1,65 +0,0 @@
1
- .bikStwPhoneInputRow {
2
- font-family: inherit;
3
- display: flex;
4
- gap: 4px;
5
- flex-direction: row;
6
- width: 100%;
7
- }
8
-
9
- .bikStwPhoneInputRow > div {
10
- font-family: inherit;
11
- }
12
-
13
- .bikInputMain {
14
- display: flex;
15
- margin: 4px 0;
16
- }
17
-
18
- .bikStwPhoneInput {
19
- flex: 1;
20
- font-family: inherit;
21
- }
22
-
23
- .bikStwH2 {
24
- font-family: inherit;
25
- font-style: normal;
26
- font-weight: 400;
27
- font-size: 12px;
28
- line-height: 14px;
29
- font-feature-settings:
30
- 'tnum' on,
31
- 'lnum' on,
32
- 'case' on,
33
- 'ss04' on;
34
- color: #212121;
35
- margin-bottom: 0;
36
- }
37
-
38
- .bikInputWrapper {
39
- width: 100%;
40
- display: flex;
41
- flex-direction: column;
42
- font-family: inherit;
43
- margin-top: 4px;
44
- }
45
-
46
- .bikInputWrapper input {
47
- outline: none;
48
- padding: 4px 6px;
49
- background-color: rgba(256, 256, 256, 0.3);
50
- border: 1px solid #e0e0e0;
51
- border-radius: 4px;
52
- width: 100%;
53
- font-family: inherit;
54
- height: 26px;
55
- box-shadow: none;
56
- font-size: 8px;
57
- margin-left: 0;
58
- pointer-events: none;
59
- }
60
-
61
- .bikEmailInputMain {
62
- display: block;
63
- margin: 0;
64
- font-family: inherit;
65
- }
@@ -1,19 +0,0 @@
1
- .checkbox__container {
2
- width: 14px;
3
- height: 14px;
4
- justify-content: center;
5
- display: flex;
6
- align-items: center;
7
- cursor: pointer;
8
- }
9
-
10
- .checkbox__icon {
11
- width: 10px;
12
- height: 10px;
13
- border-radius: 2px;
14
- background-color: rgba(256, 256, 256, 0.3);
15
- display: flex !important;
16
- justify-content: center;
17
- align-items: center;
18
- box-sizing: content-box;
19
- }
@@ -1,88 +0,0 @@
1
- import React, { useEffect, useState } from 'react';
2
-
3
- export type CheckBoxProps = {
4
- isChecked: boolean;
5
- onChange: (value: boolean) => void;
6
- checkedColour: string;
7
- borderColour: string;
8
- };
9
-
10
- const CheckMark: React.FC<{
11
- checkedColour: string;
12
- }> = props => {
13
- return (
14
- <svg
15
- width={'16'}
16
- height={'16'}
17
- viewBox={'0 0 16 16'}
18
- fill="none"
19
- xmlns="http://www.w3.org/2000/svg"
20
- >
21
- <rect
22
- x="0"
23
- y="0"
24
- width={'16'}
25
- height={'16'}
26
- rx="4"
27
- fill={props.checkedColour}
28
- />
29
- <svg
30
- width={'8'}
31
- height={'7'}
32
- x="4"
33
- y="4"
34
- viewBox="0 0 10 9"
35
- fill="none"
36
- xmlns="http://www.w3.org/2000/svg"
37
- >
38
- <path
39
- fillRule="evenodd"
40
- clipRule="evenodd"
41
- d="M9.68189 1.06043C10.0724 1.45096 10.0724 2.08412 9.68189 2.47464L4.02501 8.13152C3.63449 8.52205 3.00132 8.52205 2.6108 8.13152L0.489684 6.01041C0.0991601 5.61988 0.0991598 4.98672 0.489684 4.59619C0.880209 4.20567 1.51337 4.20567 1.9039 4.59619L3.31791 6.0102L8.26768 1.06043C8.6582 0.669907 9.29137 0.669907 9.68189 1.06043Z"
42
- fill="white"
43
- />
44
- </svg>
45
- </svg>
46
- );
47
- };
48
-
49
- export const CheckBox: React.FC<CheckBoxProps> = props => {
50
- const [currentStyle, setCurrentStyle] = useState<any>(null);
51
-
52
- useEffect(() => {
53
- const importStyles = async () => {
54
- const stylesModule = await import('../checkbox/checkbox.module.css');
55
- setCurrentStyle(stylesModule.default);
56
- };
57
- importStyles().then();
58
- }, []);
59
-
60
- const handleCheck = () => {
61
- props.onChange(!props.isChecked);
62
- };
63
-
64
- if (!currentStyle) {
65
- return <></>;
66
- }
67
-
68
- return (
69
- <div className={currentStyle.checkbox__container} onClick={handleCheck}>
70
- <div
71
- className={currentStyle.checkbox__icon}
72
- style={
73
- props.isChecked
74
- ? {
75
- outline: `0.5px solid ${props.checkedColour}`,
76
- outlineOffset: 1,
77
- border: 0,
78
- }
79
- : {
80
- border: `1px solid ${props.borderColour}`,
81
- }
82
- }
83
- >
84
- {props.isChecked && <CheckMark checkedColour={props.checkedColour} />}
85
- </div>
86
- </div>
87
- );
88
- };
@@ -1,77 +0,0 @@
1
- .dropdownContent {
2
- display: inline-block;
3
- position: absolute;
4
- top: 100%;
5
- left: 0;
6
- background-color: #fff;
7
- border: 1px solid #e0e0e0;
8
- border-radius: 4px;
9
- height: 110px;
10
- overflow: auto;
11
- scrollbar-width: none;
12
- box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
13
- z-index: 1000;
14
- font-family: inherit;
15
- margin-top: 4px;
16
- min-width: 100px;
17
- }
18
-
19
- .dropdownContent a {
20
- color: black;
21
- padding: 12px 16px;
22
- text-decoration: none;
23
- border-bottom: 1px solid #e0e0e0;
24
- display: block;
25
- font-family: inherit;
26
- }
27
-
28
- .bikDropDownItem {
29
- display: flex;
30
- flex-direction: row;
31
- align-items: center;
32
- border-bottom: 1px solid #e0e0e0;
33
- gap: 8px;
34
- padding: 4px 20px;
35
- font-family: inherit;
36
- }
37
-
38
- .bikDropDownItem:hover {
39
- background-color: #edeef1;
40
- cursor: pointer;
41
- }
42
-
43
- .bikStwCountryFlag {
44
- width: 24px;
45
- height: auto;
46
- }
47
-
48
- .bikStwH2 {
49
- font-family: inherit;
50
- font-style: normal;
51
- font-weight: 400;
52
- font-size: 12px;
53
- line-height: 20px;
54
- font-feature-settings:
55
- 'tnum' on,
56
- 'lnum' on,
57
- 'case' on,
58
- 'ss04' on;
59
- color: #212121;
60
- margin-bottom: 8px;
61
- }
62
-
63
- @media only screen and (max-width: 768px) {
64
- .bikStwH2 {
65
- font-size: 10px;
66
- }
67
-
68
- .bikStwCountryFlag {
69
- width: 22px;
70
- height: auto;
71
- }
72
-
73
- .bikDropDownItem {
74
- gap: 8px;
75
- padding: 3px 6px;
76
- }
77
- }
@@ -1,81 +0,0 @@
1
- import React, { useContext, useEffect, useRef, useState } from 'react';
2
- import { CountriesData } from '../../widgets/STW/utility';
3
- import { STWContext } from '../../widgets/STW/context';
4
-
5
- const CountriesDropDown: React.FC<{
6
- onListItemClickHandle: (code: string, dial: string, code3: string) => void;
7
- closeDropdown: () => void;
8
- }> = ({ onListItemClickHandle, closeDropdown }) => {
9
- const { preview } = useContext(STWContext);
10
- const [currentStyle, setCurrentStyle] = useState<any>(null);
11
- const wrapperRef = useRef(null);
12
-
13
- const handleClickOutside = event => {
14
- if (wrapperRef.current && !wrapperRef.current.contains(event.target)) {
15
- closeDropdown();
16
- }
17
- };
18
-
19
- useEffect(() => {
20
- document.addEventListener('mousedown', handleClickOutside);
21
-
22
- return () => {
23
- document.removeEventListener('mousedown', handleClickOutside);
24
- };
25
- }, []);
26
-
27
- useEffect(() => {
28
- const importStyles = async () => {
29
- let stylesModule;
30
- if (!preview) {
31
- stylesModule = await import('./countriesDropdown.module.css');
32
- }
33
- setCurrentStyle(stylesModule.default);
34
- };
35
- importStyles().then();
36
- }, [preview]);
37
-
38
- if (!currentStyle) {
39
- return <></>;
40
- }
41
-
42
- return (
43
- <>
44
- <div
45
- ref={wrapperRef}
46
- id={currentStyle.bikStwMandWaDropdown}
47
- className={currentStyle.dropdownContent}
48
- style={{
49
- overflowX: 'hidden',
50
- overflowY: 'auto',
51
- zIndex: 8,
52
- borderRadius: '8px',
53
- }}
54
- >
55
- <div>
56
- {CountriesData.map(data => {
57
- const flag = `https://flagcdn.com/${data.code.toLowerCase()}.svg`;
58
- const code = data.dial;
59
- return (
60
- <div
61
- key={data.dial}
62
- onClick={() => {
63
- onListItemClickHandle(data.code, data.dial, data.code3);
64
- }}
65
- >
66
- <div className={currentStyle.bikDropDownItem}>
67
- <img
68
- className={currentStyle.bikStwCountryFlag}
69
- src={`${flag}`}
70
- />
71
- <h2 className={currentStyle.bikStwH2}>{code}</h2>
72
- </div>
73
- </div>
74
- );
75
- })}
76
- </div>
77
- </div>
78
- </>
79
- );
80
- };
81
- export default CountriesDropDown;