stay_commerce-frontend 0.1.0 → 0.1.1

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/builds/bundle.css +8665 -6069
  3. data/app/assets/builds/bundle.css.map +3 -3
  4. data/app/assets/builds/bundle.js +37877 -27557
  5. data/app/assets/builds/bundle.js.map +4 -4
  6. data/app/assets/builds/styles.css +6328 -5031
  7. data/app/assets/builds/styles.css.map +3 -3
  8. data/app/javascript/react/components/Accountpage/AccountInfo.jsx +2 -1
  9. data/app/javascript/react/components/AddNewProperty/CommonLayout.jsx +0 -2
  10. data/app/javascript/react/components/AddNewProperty/Description.jsx +51 -52
  11. data/app/javascript/react/components/AddNewProperty/Details.jsx +212 -129
  12. data/app/javascript/react/components/AddNewProperty/Images.jsx +122 -45
  13. data/app/javascript/react/components/AddNewProperty/Location.jsx +21 -14
  14. data/app/javascript/react/components/AddNewProperty/Room.jsx +639 -548
  15. data/app/javascript/react/components/AvatarDropdown/AvatarDropDown.jsx +9 -1
  16. data/app/javascript/react/components/FacilitiesSection/Facilities.jsx +18 -0
  17. data/app/javascript/react/components/FixedNavbar/FixedNav.jsx +20 -14
  18. data/app/javascript/react/components/HeroSectionDesign/BookingForm.jsx +136 -88
  19. data/app/javascript/react/components/HeroSectionDesign/MyPropertiesListing.jsx +79 -69
  20. data/app/javascript/react/components/Layout/Layout.js +8 -1
  21. data/app/javascript/react/components/Listing-stay-Detail/ApartmentCard.jsx +3 -3
  22. data/app/javascript/react/components/Listing-stay-Detail/BookingModal.jsx +167 -122
  23. data/app/javascript/react/components/Listing-stay-Detail/CardManager.jsx +285 -0
  24. data/app/javascript/react/components/Listing-stay-Detail/CheckoutForm.jsx +147 -84
  25. data/app/javascript/react/components/Listing-stay-Detail/ListingStayDetailPage.jsx +1 -7
  26. data/app/javascript/react/components/Listing-stay-Detail/PropertiesPage.jsx +464 -0
  27. data/app/javascript/react/components/MobileNav/MobileMenu.jsx +1 -4
  28. data/app/javascript/react/components/PropertyListing/MyProperties.jsx +45 -44
  29. data/app/javascript/react/components/PropertyListing/StayBooking/BookingDetails.jsx +4 -4
  30. data/app/javascript/react/components/PropertyListing/StayBooking/MyBooking.jsx +41 -29
  31. data/app/javascript/react/components/StayCard/StayCard.jsx +5 -3
  32. data/app/javascript/react/packs/index.jsx +1 -0
  33. data/app/javascript/react/packs/routes/Route.jsx +18 -1
  34. data/app/javascript/react/pages/Home.jsx +6 -4
  35. data/app/javascript/react/redux/slices/PropertySlice/PropertySlice.jsx +21 -21
  36. data/app/javascript/react/redux/slices/PropertySlice/Searchslice.jsx +53 -6
  37. data/app/javascript/react/redux/slices/UserSlice/UserSlice.jsx +1 -0
  38. data/app/javascript/react/shared/Avatar/Avatar.jsx +5 -8
  39. data/app/javascript/react/shared/Button/SecondryButton.jsx +9 -0
  40. data/app/javascript/react/shared/Loader.jsx +13 -0
  41. data/app/javascript/react/shared/Pagination.jsx +53 -0
  42. data/app/javascript/react/shared/Schema/FormSchema +143 -0
  43. data/app/javascript/react/styles/BookingDetails.scss +1 -0
  44. data/app/javascript/react/styles/CardManager.scss +608 -0
  45. data/app/javascript/react/styles/Loader.scss +30 -0
  46. data/app/javascript/react/styles/Pagination.scss +33 -0
  47. data/app/javascript/react/styles/PropertiesPage.scss +0 -4
  48. data/app/javascript/react/styles/RenderSection.scss +1 -0
  49. data/app/javascript/react/styles/accountpage.scss +3 -0
  50. data/app/javascript/react/styles/application.scss +13 -1
  51. data/app/javascript/react/styles/bookingform.scss +56 -28
  52. data/app/javascript/react/styles/buttonSecondry.scss +24 -0
  53. data/app/javascript/react/styles/checkbox.scss +34 -35
  54. data/app/javascript/react/styles/commonlayout.scss +7 -2
  55. data/app/javascript/react/styles/commonpage.scss +5 -1
  56. data/app/javascript/react/styles/description.scss +3 -0
  57. data/app/javascript/react/styles/facilities.scss +2 -1
  58. data/app/javascript/react/styles/fixednavbar.scss +8 -0
  59. data/app/javascript/react/styles/listingstaydetailpage.scss +5 -0
  60. data/app/javascript/react/styles/mobilemenu.scss +0 -1
  61. data/app/javascript/react/styles/mybooking.scss +20 -0
  62. data/app/javascript/react/styles/myproperty.scss +26 -0
  63. data/app/javascript/react/styles/propertydetailscard.scss +265 -267
  64. data/app/javascript/react/styles/react-datepicker/react-datepicker.css +869 -0
  65. data/app/javascript/react/styles/room.scss +13 -8
  66. data/app/javascript/react/utils/helpers/ToastErros.js +12 -0
  67. data/db/migrate/20250627101451_add_role_to_stay_users.rb +5 -0
  68. data/lib/stay_commerce/frontend/version.rb +1 -1
  69. metadata +15 -5
  70. data/app/javascript/react/components/HeroSectionDesign/PropertiesPage.jsx +0 -122
  71. data/app/javascript/react/shared/DateField/CustomDatePicker.jsx +0 -69
  72. data/app/javascript/react/styles/customdatepicker.scss +0 -120
@@ -2,301 +2,299 @@
2
2
 
3
3
  // Reset and base styles
4
4
  * {
5
- box-sizing: border-box;
6
- margin: 0;
7
- padding: 0;
8
-
5
+ box-sizing: border-box;
6
+ margin: 0;
7
+ padding: 0;
8
+ }
9
+
10
+ .hotel-carousel-container {
11
+ width: 100%;
12
+ margin: auto;
13
+ padding: 0 15px;
14
+ padding-bottom: 2.5rem;
15
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
16
+ Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
17
+ border-radius: 0.75rem;
18
+ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
19
+ margin-top: 4rem;
20
+ }
21
+
22
+ .section-title {
23
+ font-size: 1.5rem;
24
+ font-weight: 600;
25
+ color: #333;
26
+ padding-top: 0;
27
+ margin-top: 0;
28
+ }
29
+
30
+ // Hotel Card Styles
31
+ .hotel-card {
32
+ background-color: #fff;
33
+ border-radius: 8px;
34
+ overflow: hidden;
35
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
36
+ margin: 10px;
37
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
38
+ cursor: pointer;
39
+ height: 380px;
40
+ display: flex;
41
+ flex-direction: column;
42
+
43
+ &:hover {
44
+ transform: translateY(-5px);
45
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
9
46
  }
10
-
11
- .hotel-carousel-container {
47
+
48
+ .card-image {
49
+ height: 180px;
12
50
  width: 100%;
13
- margin: auto;
14
- padding: 0 15px;
15
- padding-bottom:2.5rem;
16
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
17
- border-radius: 0.75rem;
18
- box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
19
- margin-top:4rem;
51
+ overflow: hidden;
52
+
53
+ img {
54
+ width: 100%;
55
+ height: 100%;
56
+ object-fit: cover;
57
+ transition: transform 0.3s ease;
58
+ }
59
+
60
+ &:hover img {
61
+ transform: scale(1.05);
62
+ }
63
+ }
64
+
65
+ .card-content {
66
+ padding: 15px;
67
+ flex: 1;
68
+ display: flex;
69
+ flex-direction: column;
20
70
  }
21
-
22
- .section-title {
23
- font-size: 1.5rem;
71
+
72
+ .hotel-type {
73
+ display: flex;
74
+ align-items: center;
75
+ margin-bottom: 8px;
76
+ font-size: 14px;
77
+ color: #555;
78
+
79
+ .star {
80
+ color: #ffc107;
81
+ margin-left: 5px;
82
+ font-size: 16px;
83
+ }
84
+ }
85
+
86
+ .hotel-name {
87
+ font-size: 16px;
24
88
  font-weight: 600;
25
- margin-bottom: 1.5rem;
89
+ margin-bottom: 8px;
26
90
  color: #333;
27
- padding-top:2rem;
28
-
91
+ line-height: 1.3;
92
+ flex-grow: 1;
29
93
  }
30
-
31
- // Hotel Card Styles
32
- .hotel-card {
33
- background-color: #fff;
34
- border-radius: 8px;
35
- overflow: hidden;
36
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
37
- margin: 10px;
38
- transition: transform 0.3s ease, box-shadow 0.3s ease;
39
- cursor: pointer;
40
- height: 380px;
94
+
95
+ .hotel-rating {
96
+ font-size: 14px;
97
+ color: #0071c2;
98
+ margin-bottom: 8px;
99
+ font-weight: 500;
100
+ }
101
+
102
+ .hotel-distance {
103
+ font-size: 14px;
104
+ color: #666;
105
+ margin-bottom: 15px;
41
106
  display: flex;
42
- flex-direction: column;
43
-
44
- &:hover {
45
- transform: translateY(-5px);
46
- box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
107
+ align-items: center;
108
+
109
+ .location-icon {
110
+ margin-right: 5px;
111
+ color: #555;
47
112
  }
48
-
49
- .card-image {
50
- height: 180px;
51
- width: 100%;
52
- overflow: hidden;
53
-
54
- img {
55
- width: 100%;
56
- height: 100%;
57
- object-fit: cover;
58
- transition: transform 0.3s ease;
59
- }
60
-
61
- &:hover img {
62
- transform: scale(1.05);
63
- }
113
+ }
114
+
115
+ .price-section {
116
+ margin-top: auto;
117
+
118
+ .starting-from {
119
+ font-size: 12px;
120
+ color: #777;
121
+ margin-bottom: 2px;
64
122
  }
65
-
66
- .card-content {
67
- padding: 15px;
68
- flex: 1;
69
- display: flex;
70
- flex-direction: column;
123
+
124
+ .price {
125
+ font-size: 18px;
126
+ font-weight: 700;
127
+ color: #333;
71
128
  }
72
-
73
- .hotel-type {
129
+ }
130
+ }
131
+
132
+ // Custom Slick Carousel Styles
133
+ .carousel-wrapper {
134
+ position: relative;
135
+ margin: 0 auto 30px;
136
+
137
+ // Fix for slick-list (the container for slides)
138
+ .slick-list {
139
+ overflow: hidden;
140
+ margin: 0 -10px;
141
+ }
142
+
143
+ .slick-track {
144
+ display: flex;
145
+ align-items: stretch;
146
+ }
147
+
148
+ // Fix for slick slide sizing
149
+ .slick-slide {
150
+ padding: 0 10px;
151
+ display: flex !important;
152
+ justify-content: center;
153
+ float: left;
154
+ align-items: center;
155
+
156
+ > div {
157
+ height: 100%;
158
+ width: 100%;
74
159
  display: flex;
75
- align-items: center;
76
- margin-bottom: 8px;
77
- font-size: 14px;
78
- color: #555;
79
-
80
- .star {
81
- color: #ffc107;
82
- margin-left: 5px;
83
- font-size: 16px;
84
- }
85
160
  }
86
-
87
- .hotel-name {
161
+ }
162
+
163
+ .slick-slide[aria-hidden="true"] {
164
+ opacity: 0.5;
165
+ pointer-events: none;
166
+ }
167
+ .slick-arrow {
168
+ position: absolute;
169
+ top: 50%;
170
+ transform: translateY(-50%); /* Center vertically */
171
+ z-index: 10;
172
+ width: 36px;
173
+ height: 36px;
174
+ border-radius: 50%;
175
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
176
+ display: flex !important;
177
+ align-items: center;
178
+ justify-content: center;
179
+ opacity: 1;
180
+ border: none;
181
+ text-indent: -9999px;
182
+ overflow: hidden;
183
+ cursor: pointer;
184
+
185
+ &:before {
186
+ content: "";
187
+ color: #fff;
88
188
  font-size: 16px;
89
- font-weight: 600;
90
- margin-bottom: 8px;
91
- color: #333;
92
- line-height: 1.3;
93
- flex-grow: 1;
94
- }
95
-
96
- .hotel-rating {
97
- font-size: 14px;
98
- color: #0071c2;
99
- margin-bottom: 8px;
100
- font-weight: 500;
189
+ font-weight: bold;
190
+ opacity: 1;
191
+ position: absolute;
192
+ left: 50%;
193
+ top: 50%;
194
+ transform: translate(-50%, -50%);
101
195
  }
102
-
103
- .hotel-distance {
104
- font-size: 14px;
105
- color: #666;
106
- margin-bottom: 15px;
107
- display: flex;
108
- align-items: center;
109
-
110
- .location-icon {
111
- margin-right: 5px;
112
- color: #555;
113
- }
196
+
197
+ &:hover {
198
+ opacity: 1;
114
199
  }
115
-
116
- .price-section {
117
- margin-top: auto;
118
-
119
- .starting-from {
120
- font-size: 12px;
121
- color: #777;
122
- margin-bottom: 2px;
123
- }
124
-
125
- .price {
126
- font-size: 18px;
127
- font-weight: 700;
128
- color: #333;
129
- }
200
+
201
+ &.slick-disabled {
202
+ opacity: 0.7;
203
+ cursor: not-allowed;
130
204
  }
131
205
  }
132
-
133
- // Custom Slick Carousel Styles
134
- .carousel-wrapper {
135
- position: relative;
136
- margin: 0 auto 30px;
137
-
138
- // Fix for slick-list (the container for slides)
139
- .slick-list {
140
- overflow: hidden;
141
- margin: 0 -10px;
142
- }
143
206
 
144
- .slick-track {
145
- display: flex;
146
- align-items: stretch;
147
- }
148
-
149
-
150
- // Fix for slick slide sizing
151
- .slick-slide {
152
- padding: 0 10px;
153
- display: flex !important;
154
- justify-content: center;
155
- float: left;
156
- align-items: center;
157
-
158
- > div {
159
- height: 100%;
160
- width: 100%;
161
- display: flex;
162
- }
207
+ .slick-prev {
208
+ left: -18px;
209
+ &:before {
210
+ content: "<";
211
+ font-family: Arial, sans-serif;
212
+ line-height: 1;
163
213
  }
164
-
165
- .slick-slide[aria-hidden="true"] {
166
- opacity: 0.5;
167
- pointer-events: none;
214
+ }
215
+
216
+ .slick-next {
217
+ right: -18px;
218
+ &:before {
219
+ content: ">";
220
+ font-family: Arial, sans-serif;
221
+ line-height: 1;
168
222
  }
169
- .slick-arrow {
170
- position: absolute;
171
- top: 50%;
172
- transform: translateY(-50%); /* Center vertically */
173
- z-index: 10;
174
- width: 36px;
175
- height: 36px;
176
- border-radius: 50%;
177
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
178
- display: flex !important;
179
- align-items: center;
180
- justify-content: center;
181
- opacity: 1;
182
- border: none;
183
- text-indent: -9999px;
184
- overflow: hidden;
185
- cursor: pointer;
186
-
187
- &:before {
188
- content: '';
189
- color: #fff;
190
- font-size: 16px;
191
- font-weight: bold;
192
- opacity: 1;
193
- position: absolute;
194
- left: 50%;
195
- top: 50%;
196
- transform: translate(-50%, -50%);
197
- }
198
-
199
- &:hover {
223
+ }
224
+
225
+ // Dots (pagination)
226
+ .slick-dots {
227
+ bottom: -30px;
228
+
229
+ li {
230
+ margin: 0 4px;
231
+
232
+ button:before {
233
+ font-size: 10px;
234
+ color: #ccc;
200
235
  opacity: 1;
201
236
  }
202
-
203
- &.slick-disabled {
204
- opacity: 0.7;
205
- cursor: not-allowed;
206
- }
207
- }
208
-
209
- .slick-prev {
210
- left: -18px;
211
- &:before {
212
- content: '<';
213
- font-family: Arial, sans-serif;
214
- line-height: 1;
215
- }
216
- }
217
-
218
- .slick-next {
219
- right: -18px;
220
- &:before {
221
- content: '>';
222
- font-family: Arial, sans-serif;
223
- line-height: 1;
237
+
238
+ &.slick-active button:before {
239
+ color: #0071c2;
224
240
  }
225
241
  }
226
-
227
- // Dots (pagination)
228
- .slick-dots {
229
- bottom: -30px;
230
-
231
- li {
232
- margin: 0 4px;
233
-
234
- button:before {
235
- font-size: 10px;
236
- color: #ccc;
237
- opacity: 1;
238
- }
239
-
240
- &.slick-active button:before {
241
- color: #0071c2;
242
- }
242
+ }
243
+
244
+ // Fix for slick initialization
245
+ .slick-initialized .slick-slide {
246
+ display: flex;
247
+ height: auto;
248
+ }
249
+ }
250
+
251
+ // Additional styles to mimic the original card design
252
+ .hotel-card {
253
+ .hotel-type {
254
+ .star {
255
+ &:not(:first-child) {
256
+ margin-left: 1px;
243
257
  }
244
258
  }
245
-
246
- // Fix for slick initialization
247
- .slick-initialized .slick-slide {
248
- display: flex;
249
- height: auto;
250
- }
251
259
  }
252
-
253
- // Additional styles to mimic the original card design
260
+ }
261
+
262
+ // Custom rating colors
263
+ .hotel-rating {
264
+ &:contains("Exceptional") {
265
+ color: #1a9f29;
266
+ }
267
+
268
+ &:contains("Excellent") {
269
+ color: #1a9f29;
270
+ }
271
+
272
+ &:contains("Very good") {
273
+ color: #17a2b8;
274
+ }
275
+
276
+ &:contains("Good") {
277
+ color: #6f42c1;
278
+ }
279
+
280
+ &:contains("Review score") {
281
+ color: #fd7e14;
282
+ }
283
+ }
284
+
285
+ // Responsive adjustments
286
+ @media (max-width: 992px) {
254
287
  .hotel-card {
255
- .hotel-type {
256
- .star {
257
- &:not(:first-child) {
258
- margin-left: 1px;
259
- }
260
- }
261
- }
288
+ height: 360px;
262
289
  }
263
-
264
- // Custom rating colors
265
- .hotel-rating {
266
- &:contains("Exceptional") {
267
- color: #1a9f29;
268
- }
269
-
270
- &:contains("Excellent") {
271
- color: #1a9f29;
272
- }
273
-
274
- &:contains("Very good") {
275
- color: #17a2b8;
276
- }
277
-
278
- &:contains("Good") {
279
- color: #6f42c1;
280
- }
281
-
282
- &:contains("Review score") {
283
- color: #fd7e14;
284
- }
290
+ }
291
+
292
+ @media (max-width: 576px) {
293
+ .hotel-carousel-container {
294
+ padding: 0 10px;
285
295
  }
286
-
287
- // Responsive adjustments
288
- @media (max-width: 992px) {
289
- .hotel-card {
290
- height: 360px;
291
- }
296
+
297
+ .slick-arrow {
298
+ display: none !important;
292
299
  }
293
-
294
- @media (max-width: 576px) {
295
- .hotel-carousel-container {
296
- padding: 0 10px;
297
- }
298
-
299
- .slick-arrow {
300
- display: none !important;
301
- }
302
- }
300
+ }