@anker-in/ui 0.1.5 → 0.1.9
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.
- package/README.md +162 -37
- package/dist/DemoRoom-YZ2To7p9.d.mts +86 -0
- package/dist/DemoRoom-YZ2To7p9.d.ts +86 -0
- package/dist/demo-room.d.mts +18 -1
- package/dist/demo-room.d.ts +18 -1
- package/dist/demo-room.js +134 -122
- package/dist/demo-room.js.map +1 -1
- package/dist/demo-room.mjs +134 -122
- package/dist/demo-room.mjs.map +1 -1
- package/dist/index.d.mts +117 -3
- package/dist/index.d.ts +117 -3
- package/dist/index.js +404 -219
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +404 -219
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +0 -1
- package/package.json +1 -1
- package/dist/DemoRoom-CZyrsxWe.d.mts +0 -30
- package/dist/DemoRoom-CZyrsxWe.d.ts +0 -30
package/dist/demo-room.mjs
CHANGED
|
@@ -14,7 +14,7 @@ var Title = ({
|
|
|
14
14
|
title = "",
|
|
15
15
|
...props
|
|
16
16
|
}) => {
|
|
17
|
-
return /* @__PURE__ */ jsx("div", { className: cn("w-full"), ...props, children: /* @__PURE__ */ jsx("h2", { className: "text-[48px] font-
|
|
17
|
+
return /* @__PURE__ */ jsx("div", { className: cn("w-full"), ...props, children: /* @__PURE__ */ jsx("h2", { className: "text-[32px] min-l:text-[48px] font-bold mb-12 text-[#080A0F]", children: title }) });
|
|
18
18
|
};
|
|
19
19
|
Title.displayName = "Title";
|
|
20
20
|
var StudioCard = ({
|
|
@@ -22,18 +22,18 @@ var StudioCard = ({
|
|
|
22
22
|
name,
|
|
23
23
|
availableTime,
|
|
24
24
|
address,
|
|
25
|
-
city,
|
|
26
|
-
state,
|
|
27
|
-
zipCode,
|
|
28
|
-
country = "United States",
|
|
29
25
|
euifyMakeModel,
|
|
30
26
|
distance,
|
|
31
27
|
onSchedule,
|
|
28
|
+
pageData = {
|
|
29
|
+
scheduleNow: "Schedule Now",
|
|
30
|
+
available: "Available",
|
|
31
|
+
away: "away"
|
|
32
|
+
},
|
|
32
33
|
className,
|
|
33
34
|
style,
|
|
34
35
|
...props
|
|
35
36
|
}) => {
|
|
36
|
-
const fullAddress = `${address}, ${city}, ${state} ${country} ${zipCode}`;
|
|
37
37
|
const [isHovered, setIsHovered] = React2.useState(false);
|
|
38
38
|
const handleScheduleClick = () => {
|
|
39
39
|
onSchedule?.(code);
|
|
@@ -66,7 +66,8 @@ var StudioCard = ({
|
|
|
66
66
|
/* @__PURE__ */ jsx("h3", { className: "text-xl font-semibold text-gray-900", children: name }),
|
|
67
67
|
distance !== void 0 && /* @__PURE__ */ jsxs("span", { className: "text-sm font-medium text-[#2E8B57] bg-[#E8F5E9] px-3 py-1 rounded-full whitespace-nowrap ml-2", children: [
|
|
68
68
|
formatDistance(distance),
|
|
69
|
-
"
|
|
69
|
+
" ",
|
|
70
|
+
pageData.away
|
|
70
71
|
] })
|
|
71
72
|
] }),
|
|
72
73
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 mb-3", children: [
|
|
@@ -123,7 +124,8 @@ var StudioCard = ({
|
|
|
123
124
|
}
|
|
124
125
|
),
|
|
125
126
|
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("p", { className: "text-sm text-gray-600", children: [
|
|
126
|
-
|
|
127
|
+
pageData.available,
|
|
128
|
+
" ",
|
|
127
129
|
availableTime
|
|
128
130
|
] }) })
|
|
129
131
|
] }),
|
|
@@ -157,7 +159,7 @@ var StudioCard = ({
|
|
|
157
159
|
]
|
|
158
160
|
}
|
|
159
161
|
),
|
|
160
|
-
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-600", children:
|
|
162
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-600 break-words", children: address }) })
|
|
161
163
|
] }),
|
|
162
164
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 mb-6", children: [
|
|
163
165
|
/* @__PURE__ */ jsxs(
|
|
@@ -214,10 +216,10 @@ var StudioCard = ({
|
|
|
214
216
|
"w-full px-6 py-3 rounded-full",
|
|
215
217
|
"bg-white text-gray-900 border border-gray-900",
|
|
216
218
|
"font-medium text-sm",
|
|
217
|
-
"hover:bg-gray-900",
|
|
219
|
+
"hover:bg-gray-900 hover:text-white",
|
|
218
220
|
"transition-all duration-200"
|
|
219
221
|
),
|
|
220
|
-
children:
|
|
222
|
+
children: pageData.scheduleNow
|
|
221
223
|
}
|
|
222
224
|
)
|
|
223
225
|
]
|
|
@@ -249,6 +251,12 @@ var StudioMap = ({
|
|
|
249
251
|
defaultZoom = 4,
|
|
250
252
|
mapHeight = "600px",
|
|
251
253
|
onSchedule,
|
|
254
|
+
pageData = {
|
|
255
|
+
apiKeyRequired: "Google Maps API Key is required",
|
|
256
|
+
loadingMap: "Loading map...",
|
|
257
|
+
scheduleNow: "Schedule Now",
|
|
258
|
+
available: "Available"
|
|
259
|
+
},
|
|
252
260
|
className,
|
|
253
261
|
...props
|
|
254
262
|
}) => {
|
|
@@ -325,18 +333,22 @@ var StudioMap = ({
|
|
|
325
333
|
validLocations.forEach((location) => {
|
|
326
334
|
const lat = Number(location.lat);
|
|
327
335
|
const lng = Number(location.lng);
|
|
336
|
+
const svgIcon = {
|
|
337
|
+
url: `data:image/svg+xml;charset=UTF-8,${encodeURIComponent(`
|
|
338
|
+
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
339
|
+
<circle cx="24" cy="24" r="22" fill="#00000010"/>
|
|
340
|
+
<circle cx="24" cy="24" r="10" fill="#000000"/>
|
|
341
|
+
<circle cx="24" cy="24" r="5" fill="#3ADB67"/>
|
|
342
|
+
</svg>
|
|
343
|
+
`)}`,
|
|
344
|
+
scaledSize: { width: 48, height: 48 },
|
|
345
|
+
anchor: { x: 24, y: 24 }
|
|
346
|
+
};
|
|
328
347
|
const marker = new google.maps.Marker({
|
|
329
348
|
position: { lat, lng },
|
|
330
349
|
map: googleMapRef.current,
|
|
331
350
|
title: location.name,
|
|
332
|
-
icon:
|
|
333
|
-
path: google.maps.SymbolPath.CIRCLE,
|
|
334
|
-
scale: 10,
|
|
335
|
-
fillColor: "#000000",
|
|
336
|
-
fillOpacity: 1,
|
|
337
|
-
strokeColor: "#ffffff",
|
|
338
|
-
strokeWeight: 2
|
|
339
|
-
}
|
|
351
|
+
icon: svgIcon
|
|
340
352
|
});
|
|
341
353
|
marker.addListener("click", () => {
|
|
342
354
|
setSelectedLocation(location);
|
|
@@ -347,13 +359,13 @@ var StudioMap = ({
|
|
|
347
359
|
<svg style="display: inline-block; width: 16px; height: 16px; margin-right: 4px; vertical-align: middle;" fill="currentColor" viewBox="0 0 20 20">
|
|
348
360
|
<path d="M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z"/>
|
|
349
361
|
</svg>
|
|
350
|
-
<span style="vertical-align: middle;"
|
|
362
|
+
<span style="vertical-align: middle;">${pageData.available} ${location.availableTime}</span>
|
|
351
363
|
</div>` : ""}
|
|
352
364
|
<div style="margin-bottom: 8px; color: #666;">
|
|
353
365
|
<svg style="display: inline-block; width: 16px; height: 16px; margin-right: 4px; vertical-align: middle;" fill="currentColor" viewBox="0 0 20 20">
|
|
354
366
|
<path fill-rule="evenodd" d="M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z" clip-rule="evenodd"/>
|
|
355
367
|
</svg>
|
|
356
|
-
<span style="vertical-align: middle;">${location.address}
|
|
368
|
+
<span style="vertical-align: middle;">${location.address}</span>
|
|
357
369
|
</div>
|
|
358
370
|
${location.euifyMakeModel ? `<div style="margin-bottom: 12px; color: #666;">
|
|
359
371
|
<svg style="display: inline-block; width: 16px; height: 16px; margin-right: 4px; vertical-align: middle;" fill="currentColor" viewBox="0 0 20 20">
|
|
@@ -377,7 +389,7 @@ var StudioMap = ({
|
|
|
377
389
|
onmouseover="this.style.background='#333'"
|
|
378
390
|
onmouseout="this.style.background='#000'"
|
|
379
391
|
>
|
|
380
|
-
|
|
392
|
+
${pageData.scheduleNow}
|
|
381
393
|
</button>
|
|
382
394
|
</div>
|
|
383
395
|
`;
|
|
@@ -433,13 +445,13 @@ var StudioMap = ({
|
|
|
433
445
|
<svg style="display: inline-block; width: 16px; height: 16px; margin-right: 4px; vertical-align: middle;" fill="currentColor" viewBox="0 0 20 20">
|
|
434
446
|
<path d="M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z"/>
|
|
435
447
|
</svg>
|
|
436
|
-
<span style="vertical-align: middle;"
|
|
448
|
+
<span style="vertical-align: middle;">${pageData.available} ${location.availableTime}</span>
|
|
437
449
|
</div>` : ""}
|
|
438
450
|
<div style="margin-bottom: 8px; color: #666;">
|
|
439
451
|
<svg style="display: inline-block; width: 16px; height: 16px; margin-right: 4px; vertical-align: middle;" fill="currentColor" viewBox="0 0 20 20">
|
|
440
452
|
<path fill-rule="evenodd" d="M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z" clip-rule="evenodd"/>
|
|
441
453
|
</svg>
|
|
442
|
-
<span style="vertical-align: middle;">${location.address}
|
|
454
|
+
<span style="vertical-align: middle;">${location.address}</span>
|
|
443
455
|
</div>
|
|
444
456
|
${location.euifyMakeModel ? `<div style="margin-bottom: 12px; color: #666;">
|
|
445
457
|
<svg style="display: inline-block; width: 16px; height: 16px; margin-right: 4px; vertical-align: middle;" fill="currentColor" viewBox="0 0 20 20">
|
|
@@ -463,7 +475,7 @@ var StudioMap = ({
|
|
|
463
475
|
onmouseover="this.style.background='#333'"
|
|
464
476
|
onmouseout="this.style.background='#000'"
|
|
465
477
|
>
|
|
466
|
-
|
|
478
|
+
${pageData.scheduleNow}
|
|
467
479
|
</button>
|
|
468
480
|
</div>
|
|
469
481
|
`;
|
|
@@ -499,7 +511,7 @@ var StudioMap = ({
|
|
|
499
511
|
),
|
|
500
512
|
style: { height: mapHeight },
|
|
501
513
|
...props,
|
|
502
|
-
children: /* @__PURE__ */ jsx("p", { className: "text-gray-600", children:
|
|
514
|
+
children: /* @__PURE__ */ jsx("p", { className: "text-gray-600", children: pageData.apiKeyRequired })
|
|
503
515
|
}
|
|
504
516
|
);
|
|
505
517
|
}
|
|
@@ -512,7 +524,7 @@ var StudioMap = ({
|
|
|
512
524
|
/* @__PURE__ */ jsx("div", { ref: mapRef, style: { height: mapHeight } }),
|
|
513
525
|
!isLoaded && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-100", children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
514
526
|
/* @__PURE__ */ jsx("div", { className: "inline-block animate-spin rounded-full h-8 w-8 border-4 border-gray-300 border-t-gray-900 mb-2" }),
|
|
515
|
-
/* @__PURE__ */ jsx("p", { className: "text-gray-600", children:
|
|
527
|
+
/* @__PURE__ */ jsx("p", { className: "text-gray-600", children: pageData.loadingMap })
|
|
516
528
|
] }) })
|
|
517
529
|
]
|
|
518
530
|
}
|
|
@@ -608,65 +620,6 @@ var AntdMobileIsolated = ({
|
|
|
608
620
|
AntdMobileIsolated.displayName = "AntdMobileIsolated";
|
|
609
621
|
|
|
610
622
|
// src/components/DemoRoom/utils/addressParser.ts
|
|
611
|
-
var KNOWN_COUNTRIES = [
|
|
612
|
-
"United States",
|
|
613
|
-
"United Kingdom",
|
|
614
|
-
"American Samoa",
|
|
615
|
-
"United Arab Emirates",
|
|
616
|
-
"Bosnia and Herzegovina",
|
|
617
|
-
"Trinidad and Tobago",
|
|
618
|
-
"Saint Kitts and Nevis",
|
|
619
|
-
"Antigua and Barbuda",
|
|
620
|
-
"Saint Vincent and the Grenadines",
|
|
621
|
-
"S\xE3o Tom\xE9 and Pr\xEDncipe",
|
|
622
|
-
"United States Minor Outlying Islands",
|
|
623
|
-
"British Virgin Islands",
|
|
624
|
-
"United States Virgin Islands",
|
|
625
|
-
"Cayman Islands",
|
|
626
|
-
"Cook Islands",
|
|
627
|
-
"Falkland Islands",
|
|
628
|
-
"Faroe Islands",
|
|
629
|
-
"Marshall Islands",
|
|
630
|
-
"Northern Mariana Islands",
|
|
631
|
-
"Pitcairn Islands",
|
|
632
|
-
"Solomon Islands",
|
|
633
|
-
"Turks and Caicos Islands",
|
|
634
|
-
"Wallis and Futuna"
|
|
635
|
-
];
|
|
636
|
-
function parseAddress(address) {
|
|
637
|
-
const parts = address.split(",").map((part) => part.trim()).filter(Boolean);
|
|
638
|
-
let country = "United States";
|
|
639
|
-
let state = "";
|
|
640
|
-
let city = "";
|
|
641
|
-
if (parts.length === 0) {
|
|
642
|
-
return { country, state, city };
|
|
643
|
-
}
|
|
644
|
-
const lastPart = parts[parts.length - 1];
|
|
645
|
-
const matchedCountry = KNOWN_COUNTRIES.find(
|
|
646
|
-
(knownCountry) => lastPart.toLowerCase() === knownCountry.toLowerCase()
|
|
647
|
-
);
|
|
648
|
-
if (matchedCountry) {
|
|
649
|
-
country = matchedCountry;
|
|
650
|
-
if (parts.length >= 2) {
|
|
651
|
-
state = parts[parts.length - 2].split(" ")[0];
|
|
652
|
-
}
|
|
653
|
-
if (parts.length >= 3) {
|
|
654
|
-
city = parts[parts.length - 3];
|
|
655
|
-
}
|
|
656
|
-
} else {
|
|
657
|
-
if (parts.length >= 2) {
|
|
658
|
-
state = parts[parts.length - 1].split(" ")[0];
|
|
659
|
-
city = parts[parts.length - 2];
|
|
660
|
-
} else if (parts.length === 1) {
|
|
661
|
-
city = parts[0];
|
|
662
|
-
}
|
|
663
|
-
}
|
|
664
|
-
return {
|
|
665
|
-
country: country.trim(),
|
|
666
|
-
state: state.trim(),
|
|
667
|
-
city: city.trim()
|
|
668
|
-
};
|
|
669
|
-
}
|
|
670
623
|
function groupByAlphabet(items) {
|
|
671
624
|
const groups = /* @__PURE__ */ new Map();
|
|
672
625
|
items.forEach((item) => {
|
|
@@ -693,7 +646,15 @@ var LocationFilter = ({
|
|
|
693
646
|
locations,
|
|
694
647
|
onSelect,
|
|
695
648
|
visible = false,
|
|
696
|
-
onClose
|
|
649
|
+
onClose,
|
|
650
|
+
pageData = {
|
|
651
|
+
allLocations: "All Locations",
|
|
652
|
+
clear: "Clear",
|
|
653
|
+
country: "Country",
|
|
654
|
+
state: "State",
|
|
655
|
+
city: "City",
|
|
656
|
+
noStudiosFound: "No studios found in this location"
|
|
657
|
+
}
|
|
697
658
|
}) => {
|
|
698
659
|
const [currentLevel, setCurrentLevel] = useState("country");
|
|
699
660
|
const [selectedCountry, setSelectedCountry] = useState();
|
|
@@ -704,7 +665,7 @@ var LocationFilter = ({
|
|
|
704
665
|
const states = /* @__PURE__ */ new Map();
|
|
705
666
|
const cities = /* @__PURE__ */ new Map();
|
|
706
667
|
locations.forEach((location) => {
|
|
707
|
-
const { country, state, city } =
|
|
668
|
+
const { country, state, city } = location;
|
|
708
669
|
if (country) {
|
|
709
670
|
const existing = countries.get(country);
|
|
710
671
|
countries.set(country, {
|
|
@@ -841,7 +802,7 @@ var LocationFilter = ({
|
|
|
841
802
|
"pb-[4px] transition-colors",
|
|
842
803
|
currentLevel === "country" ? "text-[#1D1D1F] border-b-2 border-[#2E8B57]" : "text-[#767880]"
|
|
843
804
|
),
|
|
844
|
-
children:
|
|
805
|
+
children: pageData.country
|
|
845
806
|
}
|
|
846
807
|
),
|
|
847
808
|
/* @__PURE__ */ jsx(
|
|
@@ -854,7 +815,7 @@ var LocationFilter = ({
|
|
|
854
815
|
currentLevel === "state" ? "text-[#1D1D1F] border-b-2 border-[#2E8B57]" : "text-[#767880]",
|
|
855
816
|
!selectedCountry && "opacity-50 cursor-not-allowed"
|
|
856
817
|
),
|
|
857
|
-
children:
|
|
818
|
+
children: pageData.state
|
|
858
819
|
}
|
|
859
820
|
),
|
|
860
821
|
/* @__PURE__ */ jsx(
|
|
@@ -867,7 +828,7 @@ var LocationFilter = ({
|
|
|
867
828
|
currentLevel === "city" ? "text-[#1D1D1F] border-b-2 border-[#2E8B57]" : "text-[#767880]",
|
|
868
829
|
!selectedState && "opacity-50 cursor-not-allowed"
|
|
869
830
|
),
|
|
870
|
-
children:
|
|
831
|
+
children: pageData.city
|
|
871
832
|
}
|
|
872
833
|
)
|
|
873
834
|
] })
|
|
@@ -899,11 +860,38 @@ var LocationFilter = ({
|
|
|
899
860
|
);
|
|
900
861
|
};
|
|
901
862
|
LocationFilter.displayName = "LocationFilter";
|
|
863
|
+
var defaultPageData = {
|
|
864
|
+
title: "Find a Studio Near You",
|
|
865
|
+
loadingText: "Loading demo rooms...",
|
|
866
|
+
errorTitle: "Failed to load demo rooms",
|
|
867
|
+
machine: "eufymake E1",
|
|
868
|
+
locationFilter: {
|
|
869
|
+
allLocations: "All Locations",
|
|
870
|
+
clear: "Clear",
|
|
871
|
+
country: "Country",
|
|
872
|
+
state: "State",
|
|
873
|
+
city: "City",
|
|
874
|
+
noStudiosFound: "No studios found in this location"
|
|
875
|
+
},
|
|
876
|
+
studioCard: {
|
|
877
|
+
scheduleNow: "Schedule Now",
|
|
878
|
+
available: "Available",
|
|
879
|
+
away: "away"
|
|
880
|
+
},
|
|
881
|
+
map: {
|
|
882
|
+
apiKeyRequired: "Google Maps API Key is required",
|
|
883
|
+
loadingMap: "Loading map...",
|
|
884
|
+
scheduleNow: "Schedule Now",
|
|
885
|
+
available: "Available"
|
|
886
|
+
},
|
|
887
|
+
defaultCountry: "United States",
|
|
888
|
+
noAvailableTime: "No available time"
|
|
889
|
+
};
|
|
902
890
|
var defaultStudioLocations = [
|
|
903
891
|
{
|
|
904
892
|
id: "1",
|
|
905
893
|
name: "Design District Demo Room",
|
|
906
|
-
address: "111 8th St",
|
|
894
|
+
address: "111 8th St, San Francisco, CA, United States",
|
|
907
895
|
city: "San Francisco",
|
|
908
896
|
state: "CA",
|
|
909
897
|
zipCode: "94108",
|
|
@@ -916,7 +904,7 @@ var defaultStudioLocations = [
|
|
|
916
904
|
{
|
|
917
905
|
id: "2",
|
|
918
906
|
name: "Brooklyn Creative Studio",
|
|
919
|
-
address: "456 Broadway",
|
|
907
|
+
address: "456 Broadway, Brooklyn, NY, United States",
|
|
920
908
|
city: "Brooklyn",
|
|
921
909
|
state: "NY",
|
|
922
910
|
zipCode: "11211",
|
|
@@ -929,7 +917,7 @@ var defaultStudioLocations = [
|
|
|
929
917
|
{
|
|
930
918
|
id: "3",
|
|
931
919
|
name: "Austin Innovation Hub",
|
|
932
|
-
address: "789 Tech Blvd",
|
|
920
|
+
address: "789 Tech Blvd, Austin, TX, United States",
|
|
933
921
|
city: "Austin",
|
|
934
922
|
state: "TX",
|
|
935
923
|
zipCode: "78701",
|
|
@@ -942,7 +930,7 @@ var defaultStudioLocations = [
|
|
|
942
930
|
{
|
|
943
931
|
id: "4",
|
|
944
932
|
name: "Seattle Maker Space",
|
|
945
|
-
address: "321 Pine St",
|
|
933
|
+
address: "321 Pine St, Seattle, WA, United States",
|
|
946
934
|
city: "Seattle",
|
|
947
935
|
state: "WA",
|
|
948
936
|
zipCode: "98101",
|
|
@@ -955,7 +943,7 @@ var defaultStudioLocations = [
|
|
|
955
943
|
{
|
|
956
944
|
id: "5",
|
|
957
945
|
name: "Chicago Design Center",
|
|
958
|
-
address: "654 Michigan Ave",
|
|
946
|
+
address: "654 Michigan Ave, Chicago, IL, United States",
|
|
959
947
|
city: "Chicago",
|
|
960
948
|
state: "IL",
|
|
961
949
|
zipCode: "60611",
|
|
@@ -968,7 +956,7 @@ var defaultStudioLocations = [
|
|
|
968
956
|
{
|
|
969
957
|
id: "6",
|
|
970
958
|
name: "Miami Beach Studio",
|
|
971
|
-
address: "987 Ocean Drive",
|
|
959
|
+
address: "987 Ocean Drive, Miami Beach, FL, United States",
|
|
972
960
|
city: "Miami Beach",
|
|
973
961
|
state: "FL",
|
|
974
962
|
zipCode: "33139",
|
|
@@ -981,7 +969,7 @@ var defaultStudioLocations = [
|
|
|
981
969
|
{
|
|
982
970
|
id: "7",
|
|
983
971
|
name: "Denver Mountain Studio",
|
|
984
|
-
address: "147 16th St",
|
|
972
|
+
address: "147 16th St, Denver, CO, United States",
|
|
985
973
|
city: "Denver",
|
|
986
974
|
state: "CO",
|
|
987
975
|
zipCode: "80202",
|
|
@@ -994,7 +982,7 @@ var defaultStudioLocations = [
|
|
|
994
982
|
{
|
|
995
983
|
id: "8",
|
|
996
984
|
name: "Los Angeles Creative Lab",
|
|
997
|
-
address: "258 Main St",
|
|
985
|
+
address: "258 Main St, Los Angeles, CA, United States",
|
|
998
986
|
city: "Los Angeles",
|
|
999
987
|
state: "CA",
|
|
1000
988
|
zipCode: "90012",
|
|
@@ -1012,8 +1000,22 @@ var RoomsList = ({
|
|
|
1012
1000
|
teamCode,
|
|
1013
1001
|
brandWebsite,
|
|
1014
1002
|
onSchedule,
|
|
1003
|
+
pageData,
|
|
1015
1004
|
...props
|
|
1016
1005
|
}) => {
|
|
1006
|
+
const mergedPageData = useMemo(
|
|
1007
|
+
() => ({
|
|
1008
|
+
...defaultPageData,
|
|
1009
|
+
...pageData,
|
|
1010
|
+
locationFilter: {
|
|
1011
|
+
...defaultPageData.locationFilter,
|
|
1012
|
+
...pageData?.locationFilter
|
|
1013
|
+
},
|
|
1014
|
+
studioCard: { ...defaultPageData.studioCard, ...pageData?.studioCard },
|
|
1015
|
+
map: { ...defaultPageData.map, ...pageData?.map }
|
|
1016
|
+
}),
|
|
1017
|
+
[pageData]
|
|
1018
|
+
);
|
|
1017
1019
|
const [showLocationFilter, setShowLocationFilter] = useState(false);
|
|
1018
1020
|
const [selectedLocation, setSelectedLocation] = useState();
|
|
1019
1021
|
const [hoveredRoomId, setHoveredRoomId] = useState(null);
|
|
@@ -1032,18 +1034,22 @@ var RoomsList = ({
|
|
|
1032
1034
|
const nextAvailableTimeslot = room?.timeslots?.find(
|
|
1033
1035
|
(slot) => slot.status === "available"
|
|
1034
1036
|
);
|
|
1035
|
-
const
|
|
1037
|
+
const country = room.location?.country || mergedPageData.defaultCountry;
|
|
1038
|
+
const state = room.location?.state || "";
|
|
1039
|
+
const city = room.location?.city || "";
|
|
1040
|
+
const addressParts = [room.address, city, state, country].filter(Boolean);
|
|
1041
|
+
const fullAddress = addressParts.join(", ");
|
|
1036
1042
|
return {
|
|
1037
1043
|
id: room.code,
|
|
1038
1044
|
name: room.name,
|
|
1039
|
-
address:
|
|
1045
|
+
address: fullAddress,
|
|
1040
1046
|
city,
|
|
1041
1047
|
state,
|
|
1042
1048
|
zipCode: "",
|
|
1043
1049
|
country,
|
|
1044
1050
|
lat: Number(room.latitude) || 34.0522,
|
|
1045
1051
|
lng: Number(room.longitude) || -118.2437,
|
|
1046
|
-
availableTime: nextAvailableTimeslot ? `${nextAvailableTimeslot.start_time}` :
|
|
1052
|
+
availableTime: nextAvailableTimeslot ? `${nextAvailableTimeslot.start_time}` : mergedPageData.noAvailableTime,
|
|
1047
1053
|
euifyMakeModel: room?.description
|
|
1048
1054
|
};
|
|
1049
1055
|
});
|
|
@@ -1051,25 +1057,24 @@ var RoomsList = ({
|
|
|
1051
1057
|
const filteredStudioLocations = useMemo(() => {
|
|
1052
1058
|
if (!selectedLocation) return studioLocations;
|
|
1053
1059
|
return studioLocations.filter((location) => {
|
|
1054
|
-
const { country, state, city } = parseAddress(location.address);
|
|
1055
1060
|
if (selectedLocation.city) {
|
|
1056
|
-
return country === selectedLocation.country && state === selectedLocation.state && city === selectedLocation.city;
|
|
1061
|
+
return location.country === selectedLocation.country && location.state === selectedLocation.state && location.city === selectedLocation.city;
|
|
1057
1062
|
}
|
|
1058
1063
|
if (selectedLocation.state) {
|
|
1059
|
-
return country === selectedLocation.country && state === selectedLocation.state;
|
|
1064
|
+
return location.country === selectedLocation.country && location.state === selectedLocation.state;
|
|
1060
1065
|
}
|
|
1061
1066
|
if (selectedLocation.country) {
|
|
1062
|
-
return country === selectedLocation.country;
|
|
1067
|
+
return location.country === selectedLocation.country;
|
|
1063
1068
|
}
|
|
1064
1069
|
return true;
|
|
1065
1070
|
});
|
|
1066
1071
|
}, [studioLocations, selectedLocation]);
|
|
1067
1072
|
const getSelectedLocationName = () => {
|
|
1068
|
-
if (!selectedLocation) return
|
|
1073
|
+
if (!selectedLocation) return mergedPageData.locationFilter.allLocations;
|
|
1069
1074
|
if (selectedLocation.city) return selectedLocation.city;
|
|
1070
1075
|
if (selectedLocation.state) return selectedLocation.state;
|
|
1071
1076
|
if (selectedLocation.country) return selectedLocation.country;
|
|
1072
|
-
return
|
|
1077
|
+
return mergedPageData.locationFilter.allLocations;
|
|
1073
1078
|
};
|
|
1074
1079
|
const handleLocationSelect = (selection) => {
|
|
1075
1080
|
setSelectedLocation(selection);
|
|
@@ -1080,17 +1085,17 @@ var RoomsList = ({
|
|
|
1080
1085
|
};
|
|
1081
1086
|
console.log(filteredStudioLocations);
|
|
1082
1087
|
return /* @__PURE__ */ jsxs("div", { className, ...props, children: [
|
|
1083
|
-
/* @__PURE__ */ jsx(Title, { title:
|
|
1084
|
-
loading && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-[794px]", children: /* @__PURE__ */ jsx("div", { className: "text-center", children: /* @__PURE__ */ jsx("div", { className: "text-lg font-medium", children:
|
|
1088
|
+
/* @__PURE__ */ jsx(Title, { title: mergedPageData.title }),
|
|
1089
|
+
loading && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-[794px]", children: /* @__PURE__ */ jsx("div", { className: "text-center", children: /* @__PURE__ */ jsx("div", { className: "text-lg font-medium", children: mergedPageData.loadingText }) }) }),
|
|
1085
1090
|
error && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-[794px]", children: /* @__PURE__ */ jsxs("div", { className: "text-center", style: { color: "#FF4D4D" }, children: [
|
|
1086
|
-
/* @__PURE__ */ jsx("div", { className: "text-lg font-medium", children:
|
|
1091
|
+
/* @__PURE__ */ jsx("div", { className: "text-lg font-medium", children: mergedPageData.errorTitle }),
|
|
1087
1092
|
/* @__PURE__ */ jsx("div", { className: "text-sm mt-2", children: error.message })
|
|
1088
1093
|
] }) }),
|
|
1089
1094
|
!loading && !error && /* @__PURE__ */ jsxs("div", { className: "flex h-[794px] gap-4", children: [
|
|
1090
1095
|
/* @__PURE__ */ jsxs(
|
|
1091
1096
|
"div",
|
|
1092
1097
|
{
|
|
1093
|
-
className: "flex-none relative w-[420px]",
|
|
1098
|
+
className: "flex-none relative w-[420px] l:!w-full",
|
|
1094
1099
|
style: { height: "794px" },
|
|
1095
1100
|
children: [
|
|
1096
1101
|
/* @__PURE__ */ jsx("div", { className: "rounded-[12px] mb-4 bg-white border border-[#E4E5E6] px-[20px] py-[16px]", children: /* @__PURE__ */ jsxs("div", { className: "h-[40px] font-bold text-[16px] gap-10 flex items-center", children: [
|
|
@@ -1126,11 +1131,11 @@ var RoomsList = ({
|
|
|
1126
1131
|
{
|
|
1127
1132
|
onClick: handleClearFilter,
|
|
1128
1133
|
className: "ml-auto text-[14px] text-[#2E8B57] hover:underline",
|
|
1129
|
-
children:
|
|
1134
|
+
children: mergedPageData.locationFilter.clear
|
|
1130
1135
|
}
|
|
1131
1136
|
),
|
|
1132
1137
|
/* @__PURE__ */ jsxs("div", { className: "flex text-[#767880] cursor-not-allowed", children: [
|
|
1133
|
-
|
|
1138
|
+
mergedPageData.machine,
|
|
1134
1139
|
/* @__PURE__ */ jsx(
|
|
1135
1140
|
"svg",
|
|
1136
1141
|
{
|
|
@@ -1155,7 +1160,7 @@ var RoomsList = ({
|
|
|
1155
1160
|
{
|
|
1156
1161
|
style: { maxHeight: "706px", overflow: "auto" },
|
|
1157
1162
|
className: "rounded-[12px] bg-white border border-[#E4E5E6]",
|
|
1158
|
-
children: filteredStudioLocations.length === 0 ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-[200px] text-[#767880]", children:
|
|
1163
|
+
children: filteredStudioLocations.length === 0 ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-[200px] text-[#767880]", children: mergedPageData.locationFilter.noStudiosFound }) : filteredStudioLocations.map((item) => {
|
|
1159
1164
|
return /* @__PURE__ */ jsx(
|
|
1160
1165
|
StudioCard,
|
|
1161
1166
|
{
|
|
@@ -1169,7 +1174,8 @@ var RoomsList = ({
|
|
|
1169
1174
|
euifyMakeModel: item?.euifyMakeModel || "",
|
|
1170
1175
|
onSchedule,
|
|
1171
1176
|
onMouseEnter: () => setHoveredRoomId(item.id),
|
|
1172
|
-
onMouseLeave: () => setHoveredRoomId(null)
|
|
1177
|
+
onMouseLeave: () => setHoveredRoomId(null),
|
|
1178
|
+
pageData: mergedPageData.studioCard
|
|
1173
1179
|
},
|
|
1174
1180
|
item.id
|
|
1175
1181
|
);
|
|
@@ -1180,25 +1186,29 @@ var RoomsList = ({
|
|
|
1180
1186
|
LocationFilter,
|
|
1181
1187
|
{
|
|
1182
1188
|
locations: studioLocations.map((loc) => ({
|
|
1183
|
-
|
|
1184
|
-
|
|
1189
|
+
id: loc.id,
|
|
1190
|
+
country: loc.country,
|
|
1191
|
+
state: loc.state,
|
|
1192
|
+
city: loc.city
|
|
1185
1193
|
})),
|
|
1186
1194
|
visible: showLocationFilter,
|
|
1187
1195
|
onSelect: handleLocationSelect,
|
|
1188
|
-
onClose: () => setShowLocationFilter(false)
|
|
1196
|
+
onClose: () => setShowLocationFilter(false),
|
|
1197
|
+
pageData: mergedPageData.locationFilter
|
|
1189
1198
|
}
|
|
1190
1199
|
)
|
|
1191
1200
|
]
|
|
1192
1201
|
}
|
|
1193
1202
|
),
|
|
1194
|
-
googleMapsApiKey && /* @__PURE__ */ jsx("div", { className: cn("flex-1"), children: /* @__PURE__ */ jsx(
|
|
1203
|
+
googleMapsApiKey && /* @__PURE__ */ jsx("div", { className: cn("flex-1 l:!hidden"), children: /* @__PURE__ */ jsx(
|
|
1195
1204
|
StudioMap,
|
|
1196
1205
|
{
|
|
1197
1206
|
googleMapsApiKey,
|
|
1198
1207
|
locations: filteredStudioLocations,
|
|
1199
1208
|
hoveredLocationId: hoveredRoomId,
|
|
1200
1209
|
onSchedule,
|
|
1201
|
-
mapHeight: "794px"
|
|
1210
|
+
mapHeight: "794px",
|
|
1211
|
+
pageData: mergedPageData.map
|
|
1202
1212
|
}
|
|
1203
1213
|
) })
|
|
1204
1214
|
] })
|
|
@@ -1380,6 +1390,7 @@ var DemoRoom = ({
|
|
|
1380
1390
|
teamCode,
|
|
1381
1391
|
brandWebsite,
|
|
1382
1392
|
onSchedule,
|
|
1393
|
+
pageData,
|
|
1383
1394
|
...props
|
|
1384
1395
|
}) => {
|
|
1385
1396
|
const apiClient = useMemo(
|
|
@@ -1394,7 +1405,8 @@ var DemoRoom = ({
|
|
|
1394
1405
|
apiClient,
|
|
1395
1406
|
teamCode,
|
|
1396
1407
|
brandWebsite,
|
|
1397
|
-
onSchedule
|
|
1408
|
+
onSchedule,
|
|
1409
|
+
pageData
|
|
1398
1410
|
}
|
|
1399
1411
|
) });
|
|
1400
1412
|
};
|