kitchen-simulator 5.0.0-test.6 → 5.0.0-test.8

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 (178) hide show
  1. package/package.json +23 -3
  2. package/src/components/_export.js +11 -0
  3. package/src/components/viewer3d/scene-creator.js +23 -26
  4. package/src/components/viewer3d/viewer3d.js +18 -18
  5. package/src/components/catalog-view/catalog-breadcrumb.jsx +0 -53
  6. package/src/components/catalog-view/catalog-item.jsx +0 -229
  7. package/src/components/catalog-view/catalog-list.jsx +0 -173
  8. package/src/components/catalog-view/catalog-page-item.jsx +0 -110
  9. package/src/components/catalog-view/catalog-turn-back-page-item.jsx +0 -80
  10. package/src/components/configurator/custom-configurator.jsx +0 -77
  11. package/src/components/configurator/project-configurator.jsx +0 -120
  12. package/src/components/export.js +0 -36
  13. package/src/components/firstsetting/button/styles.js +0 -223
  14. package/src/components/firstsetting/export.js +0 -9
  15. package/src/components/firstsetting/firstsetting-content-button.jsx +0 -198
  16. package/src/components/firstsetting/firstsetting-toggle-button.jsx +0 -101
  17. package/src/components/firstsetting/firstsetting.jsx +0 -814
  18. package/src/components/footerbar/button/ControlButton.jsx +0 -43
  19. package/src/components/footerbar/button/DirectionButton.jsx +0 -54
  20. package/src/components/footerbar/button/DirectionPanSpinButton.jsx +0 -36
  21. package/src/components/footerbar/button/ToggleButton.jsx +0 -58
  22. package/src/components/footerbar/button/ToggleConvertButton.jsx +0 -48
  23. package/src/components/footerbar/button/ToggleMeasureButton.jsx +0 -33
  24. package/src/components/footerbar/button/styles.js +0 -217
  25. package/src/components/footerbar/export.js +0 -9
  26. package/src/components/footerbar/footer-content-button.jsx +0 -198
  27. package/src/components/footerbar/footer-toggle-button.jsx +0 -101
  28. package/src/components/footerbar/footerbar.jsx +0 -1103
  29. package/src/components/footerbar/styles.js +0 -263
  30. package/src/components/header/button/MenuButton.jsx +0 -46
  31. package/src/components/header/button/SaveButton.jsx +0 -54
  32. package/src/components/header/button/styles.js +0 -181
  33. package/src/components/header/export.js +0 -5
  34. package/src/components/header/header.jsx +0 -631
  35. package/src/components/header/header.style.css +0 -47
  36. package/src/components/header/styles.js +0 -320
  37. package/src/components/login/Login.js +0 -77
  38. package/src/components/login/LoginForm/index.js +0 -108
  39. package/src/components/login/Register.js +0 -83
  40. package/src/components/login/RegisterForm/index.js +0 -171
  41. package/src/components/login/jwtService.js +0 -201
  42. package/src/components/login/style.css +0 -158
  43. package/src/components/login/style.scss +0 -260
  44. package/src/components/myprojects/export.js +0 -5
  45. package/src/components/myprojects/index.jsx +0 -445
  46. package/src/components/myprojects/styles.js +0 -241
  47. package/src/components/sidebar/custom-accordion.jsx +0 -48
  48. package/src/components/sidebar/export.js +0 -15
  49. package/src/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.jsx +0 -73
  50. package/src/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.jsx +0 -101
  51. package/src/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.jsx +0 -149
  52. package/src/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.jsx +0 -316
  53. package/src/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.jsx +0 -108
  54. package/src/components/sidebar/panel-element-editor/element-editor.jsx +0 -1070
  55. package/src/components/sidebar/panel-element-editor/multi-elements-editor.jsx +0 -0
  56. package/src/components/sidebar/panel-element-editor/panel-element-editor.jsx +0 -104
  57. package/src/components/sidebar/panel-element-editor/panel-multi-elements-editor.jsx +0 -155
  58. package/src/components/sidebar/panel-group-editor.jsx +0 -272
  59. package/src/components/sidebar/panel-groups.jsx +0 -310
  60. package/src/components/sidebar/panel-guides.jsx +0 -192
  61. package/src/components/sidebar/panel-layer-elements.jsx +0 -298
  62. package/src/components/sidebar/panel-layers.jsx +0 -381
  63. package/src/components/sidebar/panel.jsx +0 -71
  64. package/src/components/sidebar/sidebar.jsx +0 -106
  65. package/src/components/sidebar/toolbar-panel.jsx +0 -139
  66. package/src/components/sign/export.js +0 -7
  67. package/src/components/sign/main/index.jsx +0 -523
  68. package/src/components/sign/main/styles.js +0 -163
  69. package/src/components/toolbar/button/ControlButton.jsx +0 -41
  70. package/src/components/toolbar/button/DirectionButton.jsx +0 -34
  71. package/src/components/toolbar/button/RightButton.jsx +0 -103
  72. package/src/components/toolbar/button/ToggleButton.jsx +0 -41
  73. package/src/components/toolbar/button/index.jsx +0 -55
  74. package/src/components/toolbar/button/styles.js +0 -127
  75. package/src/components/toolbar/components/DoorStyleMenu.jsx +0 -103
  76. package/src/components/toolbar/components/Pricing.jsx +0 -126
  77. package/src/components/toolbar/components/ReviewForQuote.jsx +0 -635
  78. package/src/components/toolbar/export.js +0 -21
  79. package/src/components/toolbar/main/Alert.js +0 -122
  80. package/src/components/toolbar/main/TakePictureModal.jsx +0 -104
  81. package/src/components/toolbar/main/confirm-popup.jsx +0 -99
  82. package/src/components/toolbar/main/index.jsx +0 -5687
  83. package/src/components/toolbar/main/lShaped.json +0 -311
  84. package/src/components/toolbar/main/longNarrow.json +0 -238
  85. package/src/components/toolbar/main/myComponents.js +0 -123
  86. package/src/components/toolbar/main/oRectangle.json +0 -220
  87. package/src/components/toolbar/main/rectangle.json +0 -238
  88. package/src/components/toolbar/main/style.css +0 -107
  89. package/src/components/toolbar/main/styles.js +0 -696
  90. package/src/components/toolbar/plugin-item.jsx +0 -123
  91. package/src/components/toolbar/popup/appliance/appliance-category/index.jsx +0 -73
  92. package/src/components/toolbar/popup/appliance/choose-appliance/index.jsx +0 -102
  93. package/src/components/toolbar/popup/appliance/index.jsx +0 -83
  94. package/src/components/toolbar/popup/autosaveprompt/index.jsx +0 -150
  95. package/src/components/toolbar/popup/autosaveprompt/styles.css +0 -64
  96. package/src/components/toolbar/popup/autosaveprompt/styles.js +0 -40
  97. package/src/components/toolbar/popup/cabinet/cabinet-category/index.jsx +0 -73
  98. package/src/components/toolbar/popup/cabinet/choose-product/index.jsx +0 -119
  99. package/src/components/toolbar/popup/cabinet/index.jsx +0 -85
  100. package/src/components/toolbar/popup/doorStyle/choose-style/index.jsx +0 -63
  101. package/src/components/toolbar/popup/doorStyle/index.jsx +0 -71
  102. package/src/components/toolbar/popup/doorStyle/style-category/index.jsx +0 -139
  103. package/src/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -2
  104. package/src/components/toolbar/popup/downloadsummary/downloadSummaryTemp.jsx +0 -157
  105. package/src/components/toolbar/popup/downloadsummary/index.jsx +0 -643
  106. package/src/components/toolbar/popup/downloadsummary/show2D/show2DView.jsx +0 -51
  107. package/src/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.jsx +0 -175
  108. package/src/components/toolbar/popup/downloadsummary/show3D/show3DView.jsx +0 -283
  109. package/src/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.jsx +0 -2257
  110. package/src/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -93
  111. package/src/components/toolbar/popup/downloadsummary/showElevation/showElevationView.jsx +0 -132
  112. package/src/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.jsx +0 -2198
  113. package/src/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.jsx +0 -152
  114. package/src/components/toolbar/popup/downloadsummary/showWarranty.jsx +0 -149
  115. package/src/components/toolbar/popup/downloadsummary/styles.css +0 -177
  116. package/src/components/toolbar/popup/downloadsummary/styles.js +0 -453
  117. package/src/components/toolbar/popup/finishingtouch/category/index.jsx +0 -34
  118. package/src/components/toolbar/popup/finishingtouch/index.jsx +0 -58
  119. package/src/components/toolbar/popup/finishingtouch/material-edit.jsx +0 -112
  120. package/src/components/toolbar/popup/finishingtouch/product/index.jsx +0 -116
  121. package/src/components/toolbar/popup/floorplan/choose-floor/confirm-popup.jsx +0 -101
  122. package/src/components/toolbar/popup/floorplan/choose-floor/index.jsx +0 -254
  123. package/src/components/toolbar/popup/floorplan/choose-floor/lShaped.json +0 -311
  124. package/src/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +0 -238
  125. package/src/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +0 -220
  126. package/src/components/toolbar/popup/floorplan/choose-floor/rectangle.json +0 -238
  127. package/src/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -86
  128. package/src/components/toolbar/popup/floorplan/floor-category/index.jsx +0 -109
  129. package/src/components/toolbar/popup/floorplan/index.jsx +0 -60
  130. package/src/components/toolbar/popup/index.jsx +0 -241
  131. package/src/components/toolbar/popup/newproject/index.jsx +0 -59
  132. package/src/components/toolbar/popup/newproject/styles.css +0 -64
  133. package/src/components/toolbar/popup/newproject/styles.js +0 -41
  134. package/src/components/toolbar/popup/product/appliance.jsx +0 -54
  135. package/src/components/toolbar/popup/product/cabinetproduct.jsx +0 -15
  136. package/src/components/toolbar/popup/product/doorstyle.jsx +0 -58
  137. package/src/components/toolbar/popup/product/doorstyleproduct.jsx +0 -47
  138. package/src/components/toolbar/popup/product/floor.jsx +0 -36
  139. package/src/components/toolbar/popup/product/floorproduct.jsx +0 -42
  140. package/src/components/toolbar/popup/product/index.jsx +0 -36
  141. package/src/components/toolbar/popup/product/primary.jsx +0 -77
  142. package/src/components/toolbar/popup/product/productline.jsx +0 -93
  143. package/src/components/toolbar/popup/product/reviewItem.jsx +0 -427
  144. package/src/components/toolbar/popup/product/reviewMolding.jsx +0 -310
  145. package/src/components/toolbar/popup/product/style.css +0 -54
  146. package/src/components/toolbar/popup/product/styles.js +0 -260
  147. package/src/components/toolbar/popup/savedesign/FullPictureForm.jsx +0 -146
  148. package/src/components/toolbar/popup/savedesign/index.jsx +0 -495
  149. package/src/components/toolbar/popup/savedesign/savedesign.style.css +0 -16
  150. package/src/components/toolbar/popup/savedesign/styles.js +0 -151
  151. package/src/components/toolbar/popup/setDoorStyleOption/index.jsx +0 -87
  152. package/src/components/toolbar/popup/styles.js +0 -909
  153. package/src/components/toolbar/popup/submitforquote/AddToCartOptions.jsx +0 -192
  154. package/src/components/toolbar/popup/submitforquote/CustomerRequestsForm.jsx +0 -96
  155. package/src/components/toolbar/popup/submitforquote/SkipDesignerReview.jsx +0 -54
  156. package/src/components/toolbar/popup/submitforquote/StepDots.jsx +0 -25
  157. package/src/components/toolbar/popup/submitforquote/cart-choice.jsx +0 -116
  158. package/src/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -38
  159. package/src/components/toolbar/popup/submitforquote/index.jsx +0 -698
  160. package/src/components/toolbar/popup/submitforquote/styles.css +0 -105
  161. package/src/components/toolbar/popup/submitforquote/styles.js +0 -294
  162. package/src/components/toolbar/popup/submitprompt/index.jsx +0 -89
  163. package/src/components/toolbar/popup/submitprompt/styles.css +0 -64
  164. package/src/components/toolbar/popup/submitprompt/styles.js +0 -42
  165. package/src/components/toolbar/toolbar-button.jsx +0 -90
  166. package/src/components/toolbar/toolbar-load-button.jsx +0 -36
  167. package/src/components/toolbar/toolbar-save-button.jsx +0 -32
  168. package/src/components/wizardstep/button/styles.js +0 -677
  169. package/src/components/wizardstep/export.js +0 -5
  170. package/src/components/wizardstep/index.jsx +0 -1372
  171. package/src/components/wizardstep/styles.js +0 -688
  172. package/src/components/wizardstep/wizardstep-content-button.jsx +0 -198
  173. package/src/components/wizardstep/wizardstep-toggle-button.jsx +0 -101
  174. package/src/hooks/useCheckCart.js +0 -38
  175. package/src/hooks/useGetPricesBySku.js +0 -59
  176. package/src/hooks/useValidateToken.js +0 -181
  177. package/src/styles/export.js +0 -7
  178. package/src/styles/tabs.css +0 -40
@@ -1,698 +0,0 @@
1
- import React from 'react';
2
- import * as S from './styles';
3
- import './styles.css';
4
- import { withStyles } from '@material-ui/core/styles';
5
- import { emailValidation } from '../../../../utils/email-validator';
6
- import {
7
- SECONDARY_PURPLE_COLOR,
8
- TEXT_COLOR_NEUTRAL_1,
9
- DEFAULT_FONT_FAMILY,
10
- TEXT_COLOR_NEUTRAL_2,
11
- BG_COLOR_1,
12
- SUBMIT_REQUEST_ASSIST,
13
- SUBMIT_ADD_CART,
14
- LOCAL_STORAGE_CUSTOMER_INFO
15
- } from '../../../../constants';
16
- import Dialog from '@material-ui/core/Dialog';
17
- import styled from 'styled-components';
18
- import Checkbox from '@material-ui/core/Checkbox';
19
- import FormControlLabel from '@material-ui/core/FormControlLabel';
20
- import CircularProgress from '@material-ui/core/CircularProgress';
21
- import SnackBar from '../../../atoms/Snackbar/index';
22
- import { phoneValidation } from '../../../../utils/phone-validator';
23
- import CartChoice from '../../../../../src/components/toolbar/popup/submitforquote/cart-choice';
24
- import CustomerRequestsForm from './CustomerRequestsForm';
25
- import { Box } from '@material-ui/core';
26
- import AddToCartOptions from '../../../../../src/components/toolbar/popup/submitforquote/AddToCartOptions';
27
- import SkipDesignerReview from '../../../../../src/components/toolbar/popup/submitforquote/SkipDesignerReview';
28
- import { StepDots } from './StepDots';
29
-
30
- const StyledDialog = styled(Dialog)`
31
- .MuiDialog-paperWidthSm {
32
- border-radius: 10px;
33
- width: 480px;
34
- padding: 32px;
35
- }
36
- `;
37
-
38
- const StyledMuiCheckbox = withStyles({
39
- root: {
40
- color: TEXT_COLOR_NEUTRAL_2,
41
- '&$checked': {
42
- color: SECONDARY_PURPLE_COLOR
43
- }
44
- },
45
- checked: {}
46
- })(props => <Checkbox color="default" {...props} />);
47
-
48
- const DialogContents = styled.span`
49
- font-family: ${DEFAULT_FONT_FAMILY};
50
- color: ${TEXT_COLOR_NEUTRAL_1};
51
- padding: 10px 0px;
52
-
53
- @media screen and (min-width: 1024) {
54
- font-size: 11px;
55
- }
56
- @media screen and (max-width: 1024) {
57
- font-size: 11px;
58
- }
59
- @media screen and (min-width: 1366) {
60
- font-size: 13px;
61
- }
62
- @media screen and (max-width: 1366) {
63
- font-size: 13px;
64
- }
65
- @media screen and (min-width: 1440) {
66
- font-size: 16px;
67
- }
68
- @media screen and (max-width: 1440) {
69
- font-size: 16px;
70
- }
71
- font-weight: 400;
72
- line-height: 18px;
73
- text-align: left;
74
- `;
75
- class SubmitForQuotePopup extends React.Component {
76
- constructor(props) {
77
- super(props);
78
-
79
- const email = sessionStorage.getItem('email');
80
- const phone = sessionStorage.getItem('phone');
81
-
82
- this.state = {
83
- email,
84
- emailfocusOn: false,
85
- phone,
86
- phonefocusOn: false,
87
- notes: '',
88
- notesFocusOn: false,
89
-
90
- check: 'email',
91
- error: false,
92
-
93
- // // For Door Styles
94
- // selectedDoorCategory: '',
95
- // selectedDoorColor: 0
96
-
97
- //For question
98
- isSnackBarOpen: false,
99
- snackBarMessage: '',
100
- phoneCall: false,
101
- phoneSMS: false,
102
- isLoading: false,
103
- customer_requests: {
104
- reviewOptions: [],
105
- notes: '',
106
- expressCheckout: false
107
- },
108
- step: 0
109
- };
110
- }
111
-
112
- setEmailAndPhone() {
113
- const email = sessionStorage.getItem('email');
114
- const phone = sessionStorage.getItem('phone');
115
- if (email !== null && email !== 'temp_xxx@yyy.com') {
116
- this.setState({ email });
117
- }
118
- if (phone !== null) {
119
- this.setState({ phone });
120
- }
121
- }
122
-
123
- componentDidMount() {
124
- this.setEmailAndPhone();
125
- }
126
-
127
- /**
128
- * Get door information
129
- * @param {{success:boolean,data}} categoryData Category data from server
130
- * @param {number} doorColorId Door color id
131
- * @returns {[selectedDoorCategory,selectedDoorStyle,selectedDoorColor,selectedDoorColorItem]} Door tree information
132
- */
133
- getDoorInfo(categoryData, doorColorId) {
134
- if (categoryData.success) {
135
- let {
136
- data: { doorStyles: doorStyleProp }
137
- } = categoryData;
138
-
139
- // According to door style id
140
- // Find out the name of door category & door style
141
- let styleItem = null;
142
- let colorItem = null;
143
- let categoryItem = doorStyleProp.items.find(category => {
144
- let tempStyleItem = category.items.find(style => {
145
- let item = style.items.find(it => it.id === doorColorId);
146
- if (item) {
147
- colorItem = item;
148
- return true;
149
- } else {
150
- return false;
151
- }
152
- });
153
- if (tempStyleItem) {
154
- styleItem = tempStyleItem;
155
- }
156
- return !!tempStyleItem;
157
- });
158
-
159
- if (!categoryItem) {
160
- return null;
161
- }
162
-
163
- return [categoryItem.name, styleItem.name, doorColorId, colorItem];
164
- }
165
- return null;
166
- }
167
-
168
- componentWillReceiveProps(newProps) {
169
- // When visible
170
- if (newProps.visible && !this.props.visible) {
171
- this.setEmailAndPhone();
172
- this.setState({ error: false });
173
- }
174
-
175
- // Check for curDoorStyle change
176
- if (
177
- this.props.curDoorStyle !== newProps.curDoorStyle &&
178
- newProps.curDoorStyle !== null
179
- ) {
180
- if (newProps.curDoorStyle !== undefined) {
181
- let doorColorId =
182
- newProps.curDoorStyle.id !== undefined
183
- ? newProps.curDoorStyle.id
184
- : newProps.curDoorStyle.get('id');
185
- let { categoryData } = this.props;
186
- let info = this.getDoorInfo(categoryData, doorColorId);
187
- if (info)
188
- this.setState({
189
- selectedDoorCategory: info[0],
190
- selectedDoorColor: info[2]
191
- });
192
- }
193
- }
194
- }
195
-
196
- async _submit() {
197
- const {
198
- email,
199
- phone,
200
- check,
201
- selectedDoorCategory,
202
- selectedDoorColor,
203
- notes,
204
- phoneCall,
205
- phoneSMS
206
- } = this.state;
207
- let info = this.getDoorInfo(this.props.categoryData, selectedDoorColor);
208
- let colorItem = info[3];
209
- let selectedDoorStyle = info[1];
210
-
211
- if (check === '') {
212
- this.setState({
213
- snackBarMessage: 'Please select a preferred contact method.',
214
- isSnackBarOpen: true
215
- });
216
- return;
217
- }
218
-
219
- if (
220
- (email === '' && check === 'email') ||
221
- (!emailValidation(email) && check === 'email') ||
222
- (phone === '' && check === 'phone') ||
223
- (!phoneValidation(phone) && check === 'phone')
224
- ) {
225
- let msg;
226
- if (email === '' && check === 'email') msg = 'Type your email address';
227
- else if (phone === '' && check === 'phone')
228
- msg = 'Type your phone number';
229
- else if (!emailValidation(email) && check === 'email')
230
- msg = 'Type your valid email address';
231
- else if (!phoneValidation(phone) && check === 'phone')
232
- msg = 'Type your valid phone';
233
- this.setState({ snackBarMessage: msg, isSnackBarOpen: true });
234
- return;
235
- }
236
-
237
- let contact_preference = 'Email';
238
- if (check === 'phone') {
239
- if (phoneCall) {
240
- contact_preference = 'Call';
241
- } else if (phoneSMS) {
242
- contact_preference = 'Text/SMS';
243
- }
244
- }
245
-
246
- if (this) {
247
- this.setState({ isLoading: true });
248
- const rlt = await this.props.submitForQuote({
249
- email,
250
- phone,
251
- check,
252
- contact_preference,
253
- firstName: sessionStorage.getItem('firstName'),
254
- lastName: sessionStorage.getItem('lastName'),
255
- products: JSON.parse(sessionStorage.getItem('usedObjects')),
256
- selectedDoorCategory,
257
- selectedDoorColor: `${colorItem.name}/${colorItem.thumbnail}`,
258
- selectedDoorStyle,
259
- customer_requests: this.state.customer_requests,
260
- flag: this.props.submitType
261
- });
262
- if (rlt?.success) {
263
- this.closePanel();
264
- }
265
- this.setState({ isLoading: false });
266
- }
267
- }
268
-
269
- closePanel() {
270
- this.setState({
271
- step: 0
272
- });
273
- this.props.handleSubmitForQuote(false);
274
- }
275
- handleEmailChange(e) {
276
- this.setState({ email: e.target.value });
277
- }
278
- handleCheckChange(event) {
279
- this.setState({ [event.target.value]: event.target.checked });
280
- }
281
-
282
- render() {
283
- let { visible, submitType } = this.props;
284
- const {
285
- email,
286
- emailfocusOn,
287
- phone,
288
- phonefocusOn,
289
- check,
290
- phoneSMS,
291
- phoneCall,
292
- isLoading
293
- } = this.state;
294
-
295
- const updatePhoneSectionOnFocusHandler = () => {
296
- this.setState(prevState => {
297
- let newPhoneCall = prevState.phoneCall;
298
- let newPhoneSMS = prevState.phoneSMS;
299
- if (!prevState.phoneCall && !prevState.phoneSMS) {
300
- newPhoneCall = true;
301
- newPhoneSMS = false;
302
- }
303
-
304
- return {
305
- phonefocusOn: true,
306
- check: 'phone',
307
- phoneCall: newPhoneCall,
308
- phoneSMS: newPhoneSMS
309
- };
310
- });
311
- };
312
-
313
- const updatePhoneReceiveMethodHandler = (callClicked = true) => {
314
- this.setState(prevState => {
315
- let newPhoneCall = prevState.phoneCall;
316
- let newPhoneSMS = prevState.phoneSMS;
317
-
318
- if (callClicked) {
319
- newPhoneCall = !newPhoneCall;
320
- newPhoneSMS = !newPhoneCall;
321
- } else {
322
- newPhoneSMS = !newPhoneSMS;
323
- newPhoneCall = !newPhoneSMS;
324
- }
325
-
326
- return {
327
- phoneCall: newPhoneCall,
328
- phoneSMS: newPhoneSMS,
329
- check: 'phone'
330
- };
331
- });
332
- };
333
-
334
- if (this.state.step === 0 && submitType === SUBMIT_REQUEST_ASSIST) {
335
- return (
336
- <StyledDialog open={visible} onClose={() => this.closePanel()}>
337
- <SnackBar
338
- isOpen={this.state.isSnackBarOpen}
339
- message={this.state.snackBarMessage}
340
- handleClose={() =>
341
- this.setState({ isSnackBarOpen: false, snackBarMessage: '' })
342
- }
343
- />
344
- <S.DialogTitle>Request Designer Assistance</S.DialogTitle>
345
- <S.DialogContent>
346
- <div
347
- style={{
348
- marginBottom: '2rem'
349
- }}
350
- >
351
- We’re here to help! Tell us a bit more so our designers can assist
352
- you quickly and accurately.
353
- </div>
354
- <div style={{ marginBottom: '10px' }}>
355
- <b>* What do you need help with? </b>(select all that apply)
356
- </div>
357
- </S.DialogContent>
358
- <S.DialogContentSelection>
359
- {isLoading && (
360
- <Box
361
- position="absolute"
362
- top={0}
363
- left={0}
364
- width="100%"
365
- height="100%"
366
- display="flex"
367
- alignItems="center"
368
- justifyContent="center"
369
- zIndex={2}
370
- style={{ opacity: 0.5 }}
371
- >
372
- <CircularProgress size={40} style={{ color: '#4C12A1' }} />
373
- </Box>
374
- )}
375
-
376
- <CustomerRequestsForm
377
- currentStep={this.state.step}
378
- onStepChange={stepNumber => {
379
- this.setState({ step: stepNumber });
380
- }}
381
- onCancel={() => this.closePanel()}
382
- onSubmit={result => {
383
- this.setState({ step: 1, customer_requests: result });
384
- }}
385
- />
386
- </S.DialogContentSelection>
387
- </StyledDialog>
388
- );
389
- }
390
-
391
- if (this.state.step === 0 && submitType === SUBMIT_ADD_CART) {
392
- return (
393
- <StyledDialog open={visible} onClose={this.closePanel.bind(this)}>
394
- <SnackBar
395
- isOpen={this.state.isSnackBarOpen}
396
- message={this.state.snackBarMessage}
397
- handleClose={() =>
398
- this.setState({ isSnackBarOpen: false, snackBarMessage: '' })
399
- }
400
- />
401
- <S.DialogTitle>Add to Cart</S.DialogTitle>
402
- <S.DialogContent
403
- style={{
404
- paddingTop: 0,
405
- paddingBottom: 0,
406
- lineHeight: '21px',
407
- marginBottom: '2rem'
408
- }}
409
- >
410
- <>
411
- Once you submit, one of our designers will review your project for
412
- accuracy, check for issues, and help ensure your quote is
413
- complete.
414
- </>
415
- </S.DialogContent>
416
- <S.DialogContentSelection>
417
- <CartChoice accessToken={this.props.accessToken} />
418
- <AddToCartOptions
419
- currentStep={this.state.currentStep}
420
- onStepChange={stepNumber => {
421
- this.setState({ step: stepNumber });
422
- }}
423
- onCancel={() => this.closePanel()}
424
- onSubmit={result => {
425
- if (
426
- !result.notes &&
427
- !result.reviewOptions.length &&
428
- !result.expressCheckout
429
- ) {
430
- this.setState({
431
- snackBarMessage: 'Please choose an option.',
432
- isSnackBarOpen: true
433
- });
434
- } else {
435
- this.setState({ step: 1, customer_requests: result });
436
- }
437
- }}
438
- />
439
- </S.DialogContentSelection>
440
- </StyledDialog>
441
- );
442
- }
443
-
444
- if (this.state.customer_requests?.expressCheckout) {
445
- return (
446
- <StyledDialog open={visible} onClose={this.closePanel.bind(this)}>
447
- {isLoading && (
448
- <Box
449
- position="absolute"
450
- top={0}
451
- left={0}
452
- width="100%"
453
- height="100%"
454
- display="flex"
455
- alignItems="center"
456
- justifyContent="center"
457
- zIndex={2}
458
- style={{ opacity: 0.5 }}
459
- >
460
- <CircularProgress size={40} style={{ color: '#4C12A1' }} />
461
- </Box>
462
- )}
463
- <SnackBar
464
- isOpen={this.state.isSnackBarOpen}
465
- message={this.state.snackBarMessage}
466
- handleClose={() =>
467
- this.setState({ isSnackBarOpen: false, snackBarMessage: '' })
468
- }
469
- />
470
- <S.DialogTitle>Skip Designer Review?</S.DialogTitle>
471
- <S.DialogContent>
472
- <SkipDesignerReview
473
- currentStep={this.state.step}
474
- onStepChange={stepNumber => {
475
- this.setState({ step: stepNumber });
476
- }}
477
- onBack={() => {
478
- this.setState({ step: 0 });
479
- }}
480
- onProceed={this._submit.bind(this)}
481
- />
482
- </S.DialogContent>
483
- </StyledDialog>
484
- );
485
- }
486
-
487
- return (
488
- <StyledDialog open={visible} onClose={this.closePanel.bind(this)}>
489
- {isLoading && (
490
- <Box
491
- position="absolute"
492
- top={0}
493
- left={0}
494
- width="100%"
495
- height="100%"
496
- display="flex"
497
- alignItems="center"
498
- justifyContent="center"
499
- zIndex={2}
500
- style={{ opacity: 0.5 }}
501
- >
502
- <CircularProgress size={40} style={{ color: '#4C12A1' }} />
503
- </Box>
504
- )}
505
- <SnackBar
506
- isOpen={this.state.isSnackBarOpen}
507
- message={this.state.snackBarMessage}
508
- handleClose={() =>
509
- this.setState({ isSnackBarOpen: false, snackBarMessage: '' })
510
- }
511
- />
512
- <S.DialogTitle>Request Designer Assistance</S.DialogTitle>
513
- <S.DialogContent
514
- style={{
515
- paddingTop: 0,
516
- paddingBottom: 0,
517
- fontSize: 14,
518
- lineHeight: '21px',
519
- marginBottom: '2rem'
520
- }}
521
- >
522
- What is the best way to reach you for the next steps?
523
- <br />
524
- </S.DialogContent>
525
- <S.DialogContentSelection>
526
- <S.StyledInputWrapper>
527
- <S.StyledCheck
528
- style={{
529
- color: check === 'email' && SECONDARY_PURPLE_COLOR,
530
- backgroundColor:
531
- check === 'email' ? SECONDARY_PURPLE_COLOR : BG_COLOR_1
532
- }}
533
- onClick={() =>
534
- this.setState({
535
- check: 'email',
536
- phoneCall: false,
537
- phoneSMS: false
538
- })
539
- }
540
- />
541
- <S.StyledInput
542
- style={{ cursor: check !== 'email' && 'pointer' }}
543
- value={email}
544
- // onClick={() => this.setState({emailCheck: true})}
545
- onChange={e => this.setState({ email: e.target.value })}
546
- onFocus={e =>
547
- this.setState({
548
- emailfocusOn: true,
549
- check: 'email',
550
- phoneCall: false,
551
- phoneSMS: false
552
- })
553
- }
554
- onBlur={e => this.setState({ emailfocusOn: false })}
555
- required
556
- // disabled={!emailCheck}
557
- />
558
- {!emailfocusOn && !!!email.length && (
559
- <S.StyledInputLabel
560
- style={{
561
- cursor: check !== 'email' && 'no-drop',
562
- pointerEvents: 'none'
563
- }}
564
- >
565
- Email Address
566
- </S.StyledInputLabel>
567
- )}
568
- {(emailfocusOn || !!email.length) && (
569
- <S.StyledInputHeadLabel
570
- style={{ color: !emailfocusOn && TEXT_COLOR_NEUTRAL_2 }}
571
- >
572
- Email Address
573
- </S.StyledInputHeadLabel>
574
- )}
575
- {emailfocusOn && !!!email.length && (
576
- <S.StyledInputLabel>Enter email address</S.StyledInputLabel>
577
- )}
578
- {!!email.length && (
579
- <S.PlusImage
580
- maskImage="/assets/img/svg/bottombar/arrow-plus.svg"
581
- onClick={() => this.setState({ email: '' })}
582
- />
583
- )}
584
- </S.StyledInputWrapper>
585
- <S.StyledInputWrapper>
586
- <S.StyledCheck
587
- style={{
588
- color: check === 'phone' && SECONDARY_PURPLE_COLOR,
589
- backgroundColor:
590
- check === 'phone' ? SECONDARY_PURPLE_COLOR : BG_COLOR_1
591
- }}
592
- onClick={updatePhoneSectionOnFocusHandler}
593
- />
594
- <S.StyledInput
595
- style={{ cursor: check !== 'phone' && 'pointer' }}
596
- value={phone}
597
- onChange={e => this.setState({ phone: e.target.value })}
598
- onFocus={updatePhoneSectionOnFocusHandler}
599
- onBlur={e => this.setState({ phonefocusOn: false })}
600
- maxLength={50}
601
- required
602
- />
603
- {!phonefocusOn && !!!phone.length && (
604
- <S.StyledInputLabel
605
- style={{
606
- cursor: check !== 'phone' && 'no-drop',
607
- pointerEvents: 'none'
608
- }}
609
- >
610
- Phone
611
- </S.StyledInputLabel>
612
- )}
613
- {(phonefocusOn || !!phone.length) && (
614
- <S.StyledInputHeadLabel
615
- style={{ color: !phonefocusOn && TEXT_COLOR_NEUTRAL_2 }}
616
- >
617
- Phone
618
- </S.StyledInputHeadLabel>
619
- )}
620
- {phonefocusOn && !!!phone.length && (
621
- <S.StyledInputLabel>Enter phone number</S.StyledInputLabel>
622
- )}
623
- {!!phone.length && (
624
- <S.PlusImage
625
- maskImage="/assets/img/svg/bottombar/arrow-plus.svg"
626
- onClick={() => this.setState({ phone: '' })}
627
- />
628
- )}
629
- </S.StyledInputWrapper>
630
- <S.StyledPhoneMethod style={{ paddingLeft: '30px' }}>
631
- <span style={{ paddingRight: '10px' }}>Method: </span>
632
- <FormControlLabel
633
- style={{ alignItems: 'flex-start' }}
634
- margin-left="10px"
635
- control={
636
- <StyledMuiCheckbox
637
- style={{ padding: 'unset', margin: '0 5px' }}
638
- checked={phoneCall}
639
- onChange={() => updatePhoneReceiveMethodHandler(true)}
640
- value={phoneCall}
641
- />
642
- }
643
- label={<S.DialogContents> Call </S.DialogContents>}
644
- />
645
- <span style={{ paddingRight: '18px' }}> or </span>
646
- <FormControlLabel
647
- style={{ alignItems: 'flex-start' }}
648
- margin-left="10px"
649
- control={
650
- <StyledMuiCheckbox
651
- style={{ padding: 'unset', margin: '0 5px' }}
652
- checked={phoneSMS}
653
- onChange={() => updatePhoneReceiveMethodHandler(false)}
654
- value={phoneSMS}
655
- />
656
- }
657
- label={<S.DialogContents> Text/SMS </S.DialogContents>}
658
- />
659
- </S.StyledPhoneMethod>
660
- </S.DialogContentSelection>
661
-
662
- <S.DialogAction>
663
- <StepDots
664
- currentStep={this.state.step}
665
- onStepChange={stepNumber => {
666
- this.setState({ step: stepNumber });
667
- }}
668
- />
669
-
670
- <S.Button
671
- onClick={() =>
672
- this.setState({
673
- step: 0,
674
- customer_requests: {
675
- reviewOptions: [],
676
- notes: '',
677
- expressCheckout: false
678
- }
679
- })
680
- }
681
- >
682
- Back
683
- </S.Button>
684
- <S.Button
685
- style={{
686
- marginRight: 0
687
- }}
688
- onClick={this._submit.bind(this)}
689
- >
690
- Send
691
- </S.Button>
692
- </S.DialogAction>
693
- </StyledDialog>
694
- );
695
- }
696
- }
697
-
698
- export default SubmitForQuotePopup;