@thefittingroom/shop-ui 5.0.1 → 5.0.3
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/dist/index.js +352 -194
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -19102,10 +19102,10 @@ function keyframes() {
|
|
|
19102
19102
|
};
|
|
19103
19103
|
}
|
|
19104
19104
|
const themeData = {
|
|
19105
|
-
brand_font_family: "
|
|
19105
|
+
brand_font_family: "TN web use only, Times New Roman, serif",
|
|
19106
19106
|
brand_link_text_decoration: "underline",
|
|
19107
|
-
brand_button_background_color: "#
|
|
19108
|
-
brand_button_text_color: "#
|
|
19107
|
+
brand_button_background_color: "#FFA273",
|
|
19108
|
+
brand_button_text_color: "#21201F",
|
|
19109
19109
|
color_danger: "#900B09",
|
|
19110
19110
|
color_fg_text: "#21201F",
|
|
19111
19111
|
color_tfr_800: "#265A64",
|
|
@@ -19136,7 +19136,8 @@ const Button = reactExports.forwardRef(({
|
|
|
19136
19136
|
background: "none",
|
|
19137
19137
|
border: "none",
|
|
19138
19138
|
cursor: "pointer",
|
|
19139
|
-
textAlign: "center"
|
|
19139
|
+
textAlign: "center",
|
|
19140
|
+
fontFamily: theme.font_family
|
|
19140
19141
|
},
|
|
19141
19142
|
primary: {
|
|
19142
19143
|
display: "block",
|
|
@@ -19147,6 +19148,7 @@ const Button = reactExports.forwardRef(({
|
|
|
19147
19148
|
borderRadius: "25px",
|
|
19148
19149
|
padding: "16px 24px",
|
|
19149
19150
|
cursor: "pointer",
|
|
19151
|
+
fontFamily: theme.font_family,
|
|
19150
19152
|
fontSize: "16px",
|
|
19151
19153
|
fontWeight: "bold",
|
|
19152
19154
|
textAlign: "center"
|
|
@@ -19160,9 +19162,12 @@ const Button = reactExports.forwardRef(({
|
|
|
19160
19162
|
borderRadius: "25px",
|
|
19161
19163
|
padding: "16px 24px",
|
|
19162
19164
|
cursor: "pointer",
|
|
19163
|
-
|
|
19164
|
-
|
|
19165
|
-
|
|
19165
|
+
fontFamily: theme.font_family,
|
|
19166
|
+
fontSize: "14px",
|
|
19167
|
+
fontWeight: "500",
|
|
19168
|
+
textAlign: "center",
|
|
19169
|
+
textTransform: "uppercase",
|
|
19170
|
+
letterSpacing: "0.75px"
|
|
19166
19171
|
}
|
|
19167
19172
|
}));
|
|
19168
19173
|
return /* @__PURE__ */ jsx$1("button", { ref, css: [variantCss, css2, "", ""], ...props, children });
|
|
@@ -20726,7 +20731,7 @@ function TextT({
|
|
|
20726
20731
|
return /* @__PURE__ */ jsx$1(Text, { ...props, children: translatedText });
|
|
20727
20732
|
}
|
|
20728
20733
|
const SvgArrowBack = (props) => /* @__PURE__ */ reactExports.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ reactExports.createElement("path", { d: "M7.825 13L13.425 18.6L12 20L4 12L12 4L13.425 5.4L7.825 11H20V13H7.825Z", fill: "#1E1E1E" }));
|
|
20729
|
-
const
|
|
20734
|
+
const AVATAR_BOTTOM_BACKGROUND_URL = "data:image/png;base64,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";
|
|
20730
20735
|
const SvgCheckCircle = (props) => /* @__PURE__ */ reactExports.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ reactExports.createElement("g", { clipPath: "url(#clip0_4454_620)" }, /* @__PURE__ */ reactExports.createElement("path", { d: "M14.6666 7.38674V8.00007C14.6658 9.43769 14.2003 10.8365 13.3395 11.988C12.4787 13.1394 11.2688 13.9817 9.89016 14.3893C8.51154 14.797 7.03809 14.748 5.68957 14.2498C4.34104 13.7516 3.18969 12.8308 2.40723 11.6248C1.62476 10.4188 1.25311 8.99211 1.3477 7.55761C1.44229 6.12312 1.99806 4.75762 2.93211 3.66479C3.86615 2.57195 5.12844 1.81033 6.53071 1.4935C7.93298 1.17668 9.4001 1.32163 10.7133 1.90674M14.6666 2.66674L7.99992 9.34007L5.99992 7.34007", stroke: "#21201F", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" })), /* @__PURE__ */ reactExports.createElement("defs", null, /* @__PURE__ */ reactExports.createElement("clipPath", { id: "clip0_4454_620" }, /* @__PURE__ */ reactExports.createElement("rect", { width: 16, height: 16, fill: "white" }))));
|
|
20731
20736
|
const SvgChevronLeft = (props) => /* @__PURE__ */ reactExports.createElement("svg", { width: 48, height: 48, viewBox: "0 0 48 48", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ reactExports.createElement("g", { opacity: 0.35 }, /* @__PURE__ */ reactExports.createElement("path", { d: "M30 36L18 24L30 12", stroke: "#1E1E1E", strokeWidth: 4, strokeLinecap: "round", strokeLinejoin: "round" })));
|
|
20732
20737
|
const SvgChevronRight = (props) => /* @__PURE__ */ reactExports.createElement("svg", { width: 48, height: 48, viewBox: "0 0 48 48", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ reactExports.createElement("g", { opacity: 0.35 }, /* @__PURE__ */ reactExports.createElement("path", { d: "M18 36L30 24L18 12", stroke: "#1E1E1E", strokeWidth: 4, strokeLinecap: "round", strokeLinejoin: "round" })));
|
|
@@ -20874,7 +20879,7 @@ function SidecarModalFrame({
|
|
|
20874
20879
|
frameContentBase: {
|
|
20875
20880
|
position: "absolute",
|
|
20876
20881
|
inset: "0 0 auto auto",
|
|
20877
|
-
width: "min(1100px, 100vw)",
|
|
20882
|
+
width: "max(min(1100px, 100vw), 80vw)",
|
|
20878
20883
|
height: "100vh",
|
|
20879
20884
|
margin: 0,
|
|
20880
20885
|
padding: 0,
|
|
@@ -20886,6 +20891,9 @@ function SidecarModalFrame({
|
|
|
20886
20891
|
left: 0,
|
|
20887
20892
|
width: "100vw",
|
|
20888
20893
|
height: "100vh",
|
|
20894
|
+
margin: 0,
|
|
20895
|
+
padding: 0,
|
|
20896
|
+
border: "none",
|
|
20889
20897
|
backgroundColor: "#FFFFFF"
|
|
20890
20898
|
}
|
|
20891
20899
|
}));
|
|
@@ -41512,93 +41520,22 @@ async function getStyleByExternalId(brandId, externalId) {
|
|
|
41512
41520
|
recordCache[cacheKey] = record;
|
|
41513
41521
|
return record;
|
|
41514
41522
|
}
|
|
41523
|
+
const AVATAR_IMAGE_ASPECT_RATIO = 2 / 3;
|
|
41524
|
+
const AVATAR_DESKTOP_BOTTOM_CONTAINER_HEIGHT_PX = 100;
|
|
41515
41525
|
const logger$1 = getLogger("vto-single");
|
|
41516
41526
|
function VtoSingleOverlay() {
|
|
41517
|
-
const {
|
|
41518
|
-
t
|
|
41519
|
-
} = useTranslation();
|
|
41520
41527
|
const {
|
|
41521
41528
|
brandId
|
|
41522
41529
|
} = getStaticData();
|
|
41523
41530
|
const userIsLoggedIn = useMainStore((state) => state.userIsLoggedIn);
|
|
41524
41531
|
const userHasAvatar = useMainStore((state) => state.userHasAvatar);
|
|
41525
41532
|
const userProfile = useMainStore((state) => state.userProfile);
|
|
41533
|
+
const deviceLayout = useMainStore((state) => state.deviceLayout);
|
|
41526
41534
|
const openOverlay = useMainStore((state) => state.openOverlay);
|
|
41527
41535
|
const closeOverlay = useMainStore((state) => state.closeOverlay);
|
|
41528
41536
|
const [loadedProductData, setLoadedProductData] = reactExports.useState(null);
|
|
41529
41537
|
const [selectedSizeLabel, setSelectedSizeLabel] = reactExports.useState(null);
|
|
41530
41538
|
const [selectedColorLabel, setSelectedColorLabel] = reactExports.useState(null);
|
|
41531
|
-
const css2 = useCss((theme) => ({
|
|
41532
|
-
mainContainer: {
|
|
41533
|
-
display: "flex",
|
|
41534
|
-
height: "100%"
|
|
41535
|
-
},
|
|
41536
|
-
rightContainer: {
|
|
41537
|
-
flexGrow: 1,
|
|
41538
|
-
padding: "16px",
|
|
41539
|
-
display: "flex",
|
|
41540
|
-
flexDirection: "column"
|
|
41541
|
-
},
|
|
41542
|
-
contentContainer: {
|
|
41543
|
-
flexGrow: 1,
|
|
41544
|
-
display: "flex",
|
|
41545
|
-
flexDirection: "column",
|
|
41546
|
-
margin: "8px 0px",
|
|
41547
|
-
padding: "16px 48px",
|
|
41548
|
-
overflowY: "auto"
|
|
41549
|
-
},
|
|
41550
|
-
productNameContainer: {},
|
|
41551
|
-
productNameText: {
|
|
41552
|
-
fontSize: "32px"
|
|
41553
|
-
},
|
|
41554
|
-
priceContainer: {
|
|
41555
|
-
marginTop: "8px"
|
|
41556
|
-
},
|
|
41557
|
-
priceText: {
|
|
41558
|
-
fontSize: "18px"
|
|
41559
|
-
},
|
|
41560
|
-
colorContainer: {
|
|
41561
|
-
marginTop: "16px"
|
|
41562
|
-
},
|
|
41563
|
-
colorLabelText: {
|
|
41564
|
-
fontSize: "12px"
|
|
41565
|
-
},
|
|
41566
|
-
colorSelect: {
|
|
41567
|
-
border: "none",
|
|
41568
|
-
color: theme.color_fg_text,
|
|
41569
|
-
fontFamily: theme.font_family,
|
|
41570
|
-
fontSize: "12px"
|
|
41571
|
-
},
|
|
41572
|
-
sizeRecContainer: {
|
|
41573
|
-
marginTop: "16px"
|
|
41574
|
-
},
|
|
41575
|
-
buttonContainer: {
|
|
41576
|
-
marginTop: "24px"
|
|
41577
|
-
},
|
|
41578
|
-
descriptionContainer: {
|
|
41579
|
-
marginTop: "32px"
|
|
41580
|
-
},
|
|
41581
|
-
descriptionText: {
|
|
41582
|
-
fontSize: "12px"
|
|
41583
|
-
},
|
|
41584
|
-
footerContainer: {
|
|
41585
|
-
marginLeft: "auto",
|
|
41586
|
-
marginRight: "auto",
|
|
41587
|
-
paddingBottom: "16px",
|
|
41588
|
-
display: "flex",
|
|
41589
|
-
justifyContent: "center",
|
|
41590
|
-
alignItems: "center",
|
|
41591
|
-
gap: "4px"
|
|
41592
|
-
},
|
|
41593
|
-
footerSignOutLink: {
|
|
41594
|
-
fontSize: "10px",
|
|
41595
|
-
color: theme.color_tfr_800
|
|
41596
|
-
},
|
|
41597
|
-
footerTfrIcon: {
|
|
41598
|
-
width: "100px",
|
|
41599
|
-
height: "24px"
|
|
41600
|
-
}
|
|
41601
|
-
}));
|
|
41602
41539
|
reactExports.useEffect(() => {
|
|
41603
41540
|
if (!userIsLoggedIn) {
|
|
41604
41541
|
openOverlay(OverlayName.LANDING, {
|
|
@@ -41763,10 +41700,6 @@ function VtoSingleOverlay() {
|
|
|
41763
41700
|
logger$1.logError("Error during logout:", error);
|
|
41764
41701
|
});
|
|
41765
41702
|
}, [closeOverlay, openOverlay]);
|
|
41766
|
-
const handleColorSelectChange = reactExports.useCallback((e) => {
|
|
41767
|
-
const newColorLabel = e.target.value || null;
|
|
41768
|
-
setSelectedColorLabel(newColorLabel);
|
|
41769
|
-
}, []);
|
|
41770
41703
|
const handleAddToCartClick = reactExports.useCallback(async () => {
|
|
41771
41704
|
try {
|
|
41772
41705
|
if (!selectedSizeLabel) {
|
|
@@ -41787,35 +41720,158 @@ function VtoSingleOverlay() {
|
|
|
41787
41720
|
if (!userIsLoggedIn || !userHasAvatar || !loadedProductData || !selectedColorSizeRecord) {
|
|
41788
41721
|
return /* @__PURE__ */ jsx$1(SidecarModalFrame, { onRequestClose: closeOverlay, children: /* @__PURE__ */ jsx$1(Loading, {}) });
|
|
41789
41722
|
}
|
|
41790
|
-
|
|
41791
|
-
|
|
41723
|
+
let Layout;
|
|
41724
|
+
if (deviceLayout === DeviceLayout.MOBILE_PORTRAIT || deviceLayout === DeviceLayout.TABLET_PORTRAIT) {
|
|
41725
|
+
Layout = MobileLayout;
|
|
41726
|
+
} else {
|
|
41727
|
+
Layout = DesktopLayout;
|
|
41728
|
+
}
|
|
41729
|
+
return /* @__PURE__ */ jsx$1(SidecarModalFrame, { onRequestClose: closeOverlay, children: /* @__PURE__ */ jsx$1(Layout, { loadedProductData, selectedColorSizeRecord, availableColorLabels, selectedColorLabel, selectedSizeLabel, frameUrls, onClose: closeOverlay, onChangeColor: setSelectedColorLabel, onChangeSize: setSelectedSizeLabel, onAddToCart: handleAddToCartClick, onSignOut: handleSignOutClick }) });
|
|
41730
|
+
}
|
|
41731
|
+
function MobileLayout({
|
|
41732
|
+
// loadedProductData,
|
|
41733
|
+
// selectedColorSizeRecord,
|
|
41734
|
+
// availableColorLabels,
|
|
41735
|
+
// selectedColorLabel,
|
|
41736
|
+
// selectedSizeLabel,
|
|
41737
|
+
frameUrls
|
|
41738
|
+
// onClose,
|
|
41739
|
+
// onChangeColor,
|
|
41740
|
+
// onChangeSize,
|
|
41741
|
+
// onAddToCart,
|
|
41742
|
+
// onSignOut,
|
|
41743
|
+
}) {
|
|
41744
|
+
const css2 = useCss((_theme) => ({
|
|
41745
|
+
mainContainer: {
|
|
41746
|
+
width: "100%",
|
|
41747
|
+
height: "100%"
|
|
41748
|
+
}
|
|
41749
|
+
}));
|
|
41750
|
+
return /* @__PURE__ */ jsx$1("div", { css: css2.mainContainer, children: /* @__PURE__ */ jsx$1(Avatar, { frameUrls }) });
|
|
41751
|
+
}
|
|
41752
|
+
function DesktopLayout({
|
|
41753
|
+
loadedProductData,
|
|
41754
|
+
selectedColorSizeRecord,
|
|
41755
|
+
availableColorLabels,
|
|
41756
|
+
selectedColorLabel,
|
|
41757
|
+
selectedSizeLabel,
|
|
41758
|
+
frameUrls,
|
|
41759
|
+
onClose,
|
|
41760
|
+
onChangeColor,
|
|
41761
|
+
onChangeSize,
|
|
41762
|
+
onAddToCart,
|
|
41763
|
+
onSignOut
|
|
41764
|
+
}) {
|
|
41765
|
+
const {
|
|
41766
|
+
t
|
|
41767
|
+
} = useTranslation();
|
|
41768
|
+
const css2 = useCss((_theme) => ({
|
|
41769
|
+
mainContainer: {
|
|
41770
|
+
display: "flex",
|
|
41771
|
+
height: "100%"
|
|
41772
|
+
},
|
|
41773
|
+
rightContainer: {
|
|
41774
|
+
flexGrow: 1,
|
|
41775
|
+
padding: "16px",
|
|
41776
|
+
display: "flex",
|
|
41777
|
+
flexDirection: "column"
|
|
41778
|
+
},
|
|
41779
|
+
contentContainer: {
|
|
41780
|
+
flexGrow: 1,
|
|
41781
|
+
display: "flex",
|
|
41782
|
+
flexDirection: "column",
|
|
41783
|
+
margin: "8px 0px",
|
|
41784
|
+
padding: "16px 48px",
|
|
41785
|
+
overflowY: "auto"
|
|
41786
|
+
},
|
|
41787
|
+
productNameContainer: {},
|
|
41788
|
+
productNameText: {
|
|
41789
|
+
fontSize: "32px"
|
|
41790
|
+
},
|
|
41791
|
+
priceContainer: {
|
|
41792
|
+
marginTop: "8px"
|
|
41793
|
+
},
|
|
41794
|
+
priceText: {
|
|
41795
|
+
fontSize: "18px"
|
|
41796
|
+
},
|
|
41797
|
+
colorContainer: {
|
|
41798
|
+
marginTop: "16px"
|
|
41799
|
+
},
|
|
41800
|
+
sizeRecommendationContainer: {
|
|
41801
|
+
marginTop: "16px",
|
|
41802
|
+
display: "flex",
|
|
41803
|
+
flexDirection: "column",
|
|
41804
|
+
border: "1px solid rgba(33, 32, 31, 0.2)",
|
|
41805
|
+
padding: "32px 56px",
|
|
41806
|
+
justifyContent: "center",
|
|
41807
|
+
alignItems: "center"
|
|
41808
|
+
},
|
|
41809
|
+
recommendedSizeContainer: {
|
|
41810
|
+
display: "flex",
|
|
41811
|
+
alignItems: "center",
|
|
41812
|
+
gap: "6px",
|
|
41813
|
+
lineHeight: "normal"
|
|
41814
|
+
},
|
|
41815
|
+
recommendedSizeText: {
|
|
41816
|
+
fontWeight: "600"
|
|
41817
|
+
},
|
|
41818
|
+
itemFitContainer: {
|
|
41819
|
+
marginTop: "8px",
|
|
41820
|
+
lineHeight: "normal"
|
|
41821
|
+
},
|
|
41822
|
+
itemFitText: {},
|
|
41823
|
+
selectSizeLabelContainer: {
|
|
41824
|
+
lineHeight: "normal"
|
|
41825
|
+
},
|
|
41826
|
+
selectSizeLabelText: {},
|
|
41827
|
+
sizeSelectorContainer: {
|
|
41828
|
+
marginTop: "24px"
|
|
41829
|
+
},
|
|
41830
|
+
itemFitDetailsContainer: {
|
|
41831
|
+
marginTop: "24px",
|
|
41832
|
+
width: "100%"
|
|
41833
|
+
},
|
|
41834
|
+
buttonContainer: {
|
|
41835
|
+
marginTop: "24px"
|
|
41836
|
+
},
|
|
41837
|
+
descriptionContainer: {
|
|
41838
|
+
marginTop: "32px"
|
|
41839
|
+
}
|
|
41840
|
+
}));
|
|
41841
|
+
return /* @__PURE__ */ jsxs("div", { css: css2.mainContainer, children: [
|
|
41842
|
+
/* @__PURE__ */ jsx$1(Avatar, { frameUrls }),
|
|
41792
41843
|
/* @__PURE__ */ jsxs("div", { css: css2.rightContainer, children: [
|
|
41793
|
-
/* @__PURE__ */ jsx$1(ModalTitlebar, { title: t("try_it_on"), onCloseClick:
|
|
41844
|
+
/* @__PURE__ */ jsx$1(ModalTitlebar, { title: t("try_it_on"), onCloseClick: onClose }),
|
|
41794
41845
|
/* @__PURE__ */ jsxs("div", { css: css2.contentContainer, children: [
|
|
41795
41846
|
/* @__PURE__ */ jsx$1("div", { css: css2.productNameContainer, children: /* @__PURE__ */ jsx$1(Text, { variant: "brand", css: css2.productNameText, children: loadedProductData.productName }) }),
|
|
41796
41847
|
/* @__PURE__ */ jsx$1("div", { css: css2.priceContainer, children: /* @__PURE__ */ jsx$1(Text, { variant: "base", css: css2.priceText, children: selectedColorSizeRecord.priceFormatted }) }),
|
|
41797
|
-
|
|
41798
|
-
|
|
41799
|
-
/* @__PURE__ */
|
|
41800
|
-
|
|
41801
|
-
|
|
41802
|
-
|
|
41803
|
-
|
|
41804
|
-
|
|
41805
|
-
|
|
41848
|
+
/* @__PURE__ */ jsx$1("div", { css: css2.colorContainer, children: /* @__PURE__ */ jsx$1(ColorSelector, { availableColorLabels, selectedColorLabel, onChangeColor }) }),
|
|
41849
|
+
/* @__PURE__ */ jsxs("div", { css: css2.sizeRecommendationContainer, children: [
|
|
41850
|
+
/* @__PURE__ */ jsxs("div", { css: css2.recommendedSizeContainer, children: [
|
|
41851
|
+
/* @__PURE__ */ jsx$1(SvgInfoIcon, {}),
|
|
41852
|
+
/* @__PURE__ */ jsx$1(RecommendedSizeText, { loadedProductData, css: css2.recommendedSizeText })
|
|
41853
|
+
] }),
|
|
41854
|
+
/* @__PURE__ */ jsx$1("div", { css: css2.itemFitContainer, children: /* @__PURE__ */ jsx$1(ItemFitText, { loadedProductData, css: css2.itemFitText }) }),
|
|
41855
|
+
/* @__PURE__ */ jsx$1("div", { css: css2.selectSizeLabelContainer, children: /* @__PURE__ */ jsx$1(TextT, { variant: "base", css: css2.selectSizeLabelText, t: "size-rec.select_size" }) }),
|
|
41856
|
+
/* @__PURE__ */ jsx$1("div", { css: css2.sizeSelectorContainer, children: /* @__PURE__ */ jsx$1(SizeSelector, { loadedProductData, selectedSizeLabel, onChangeSize }) }),
|
|
41857
|
+
/* @__PURE__ */ jsx$1("div", { css: css2.itemFitDetailsContainer, children: /* @__PURE__ */ jsx$1(ItemFitDetails, { loadedProductData, selectedSizeLabel }) })
|
|
41858
|
+
] }),
|
|
41859
|
+
/* @__PURE__ */ jsx$1("div", { css: css2.buttonContainer, children: /* @__PURE__ */ jsx$1(AddToCartButton, { onClick: onAddToCart }) }),
|
|
41860
|
+
/* @__PURE__ */ jsx$1("div", { css: css2.descriptionContainer, children: /* @__PURE__ */ jsx$1(ProductDescriptionText, { loadedProductData }) })
|
|
41806
41861
|
] }),
|
|
41807
|
-
/* @__PURE__ */
|
|
41808
|
-
/* @__PURE__ */ jsx$1(LinkT, { variant: "underline", css: css2.footerSignOutLink, onClick: handleSignOutClick, t: "vto-single.sign_out" }),
|
|
41809
|
-
/* @__PURE__ */ jsx$1(SvgTfrName, { css: css2.footerTfrIcon })
|
|
41810
|
-
] })
|
|
41862
|
+
/* @__PURE__ */ jsx$1(Footer, { onSignOutClick: onSignOut })
|
|
41811
41863
|
] })
|
|
41812
|
-
] })
|
|
41864
|
+
] });
|
|
41813
41865
|
}
|
|
41814
|
-
|
|
41815
|
-
function VtoAvatar({
|
|
41866
|
+
function Avatar({
|
|
41816
41867
|
frameUrls
|
|
41817
41868
|
}) {
|
|
41818
|
-
const
|
|
41869
|
+
const deviceLayout = useMainStore((state) => state.deviceLayout);
|
|
41870
|
+
const isMobileLayout = deviceLayout === DeviceLayout.MOBILE_PORTRAIT || deviceLayout === DeviceLayout.TABLET_PORTRAIT;
|
|
41871
|
+
const [containerSize, setContainerSize] = reactExports.useState({
|
|
41872
|
+
width: window.innerWidth,
|
|
41873
|
+
height: window.innerHeight
|
|
41874
|
+
});
|
|
41819
41875
|
const topContainerRef = reactExports.useRef(null);
|
|
41820
41876
|
const [selectedFrameIndex, setSelectedFrameIndex] = reactExports.useState(null);
|
|
41821
41877
|
const css2 = useCss((theme) => ({
|
|
@@ -41848,17 +41904,17 @@ function VtoAvatar({
|
|
|
41848
41904
|
width: "48px",
|
|
41849
41905
|
height: "48px"
|
|
41850
41906
|
},
|
|
41851
|
-
|
|
41907
|
+
bottomContainer: {
|
|
41852
41908
|
position: "absolute",
|
|
41853
41909
|
bottom: "0",
|
|
41854
|
-
height:
|
|
41910
|
+
height: "50px",
|
|
41855
41911
|
display: "flex",
|
|
41856
41912
|
flexDirection: "column",
|
|
41857
41913
|
alignItems: "center",
|
|
41858
41914
|
justifyContent: "center",
|
|
41859
41915
|
paddingBottom: "32px",
|
|
41860
41916
|
backgroundColor: "#FFFFFF",
|
|
41861
|
-
backgroundImage: `url(${
|
|
41917
|
+
backgroundImage: `url(${AVATAR_BOTTOM_BACKGROUND_URL})`,
|
|
41862
41918
|
backgroundSize: "contain",
|
|
41863
41919
|
backgroundRepeat: "repeat-y"
|
|
41864
41920
|
},
|
|
@@ -41872,7 +41928,15 @@ function VtoAvatar({
|
|
|
41872
41928
|
}));
|
|
41873
41929
|
reactExports.useEffect(() => {
|
|
41874
41930
|
const handleResize = () => {
|
|
41875
|
-
|
|
41931
|
+
const containerEl = topContainerRef.current;
|
|
41932
|
+
const size = containerEl ? {
|
|
41933
|
+
width: containerEl.clientWidth,
|
|
41934
|
+
height: containerEl.clientHeight
|
|
41935
|
+
} : {
|
|
41936
|
+
width: window.innerWidth,
|
|
41937
|
+
height: window.innerHeight
|
|
41938
|
+
};
|
|
41939
|
+
setContainerSize(size);
|
|
41876
41940
|
};
|
|
41877
41941
|
handleResize();
|
|
41878
41942
|
window.addEventListener("resize", handleResize);
|
|
@@ -41893,8 +41957,42 @@ function VtoAvatar({
|
|
|
41893
41957
|
}, 200);
|
|
41894
41958
|
}
|
|
41895
41959
|
}, [frameUrls, selectedFrameIndex]);
|
|
41896
|
-
const
|
|
41897
|
-
|
|
41960
|
+
const {
|
|
41961
|
+
imageSize,
|
|
41962
|
+
bottomContainerSize
|
|
41963
|
+
} = reactExports.useMemo(() => {
|
|
41964
|
+
let imageSize2;
|
|
41965
|
+
let bottomContainerSize2;
|
|
41966
|
+
if (isMobileLayout) {
|
|
41967
|
+
const imageWidthPx = containerSize.width;
|
|
41968
|
+
const imageHeightPx = Math.floor(imageWidthPx / AVATAR_IMAGE_ASPECT_RATIO);
|
|
41969
|
+
const bottomContainerHeightPx = containerSize.height - imageHeightPx;
|
|
41970
|
+
imageSize2 = {
|
|
41971
|
+
width: imageWidthPx,
|
|
41972
|
+
height: imageHeightPx
|
|
41973
|
+
};
|
|
41974
|
+
bottomContainerSize2 = {
|
|
41975
|
+
width: imageWidthPx,
|
|
41976
|
+
height: bottomContainerHeightPx
|
|
41977
|
+
};
|
|
41978
|
+
} else {
|
|
41979
|
+
const imageHeightPx = containerSize.height - AVATAR_DESKTOP_BOTTOM_CONTAINER_HEIGHT_PX;
|
|
41980
|
+
const imageWidthPx = Math.floor(imageHeightPx * AVATAR_IMAGE_ASPECT_RATIO);
|
|
41981
|
+
const bottomContainerHeightPx = AVATAR_DESKTOP_BOTTOM_CONTAINER_HEIGHT_PX;
|
|
41982
|
+
imageSize2 = {
|
|
41983
|
+
width: imageWidthPx,
|
|
41984
|
+
height: imageHeightPx
|
|
41985
|
+
};
|
|
41986
|
+
bottomContainerSize2 = {
|
|
41987
|
+
width: imageWidthPx,
|
|
41988
|
+
height: bottomContainerHeightPx
|
|
41989
|
+
};
|
|
41990
|
+
}
|
|
41991
|
+
return {
|
|
41992
|
+
imageSize: imageSize2,
|
|
41993
|
+
bottomContainerSize: bottomContainerSize2
|
|
41994
|
+
};
|
|
41995
|
+
}, [isMobileLayout, containerSize]);
|
|
41898
41996
|
const rotateLeft = reactExports.useCallback(() => {
|
|
41899
41997
|
setSelectedFrameIndex((prevIndex) => {
|
|
41900
41998
|
if (prevIndex == null) {
|
|
@@ -41936,86 +42034,127 @@ function VtoAvatar({
|
|
|
41936
42034
|
if (frameUrls && selectedFrameIndex != null) {
|
|
41937
42035
|
contentNode = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
41938
42036
|
/* @__PURE__ */ jsxs("div", { css: css2.imageContainer, style: {
|
|
41939
|
-
width:
|
|
41940
|
-
height:
|
|
42037
|
+
width: imageSize.width + "px",
|
|
42038
|
+
height: imageSize.height + "px"
|
|
41941
42039
|
}, children: [
|
|
41942
42040
|
/* @__PURE__ */ jsx$1("img", { src: frameUrls[selectedFrameIndex], css: css2.image, style: {
|
|
41943
|
-
width:
|
|
41944
|
-
height:
|
|
42041
|
+
width: imageSize.width + "px",
|
|
42042
|
+
height: imageSize.height + "px"
|
|
41945
42043
|
}, onMouseDown: handleImageDrag }),
|
|
41946
42044
|
/* @__PURE__ */ jsx$1("div", { css: css2.chevronLeftContainer, onClick: rotateLeft, children: /* @__PURE__ */ jsx$1(SvgChevronLeft, { css: css2.chevronIcon }) }),
|
|
41947
42045
|
/* @__PURE__ */ jsx$1("div", { css: css2.chevronRightContainer, onClick: rotateRight, children: /* @__PURE__ */ jsx$1(SvgChevronRight, { css: css2.chevronIcon }) })
|
|
41948
42046
|
] }),
|
|
41949
|
-
/* @__PURE__ */
|
|
41950
|
-
width:
|
|
41951
|
-
|
|
42047
|
+
/* @__PURE__ */ jsx$1("div", { css: css2.bottomContainer, style: {
|
|
42048
|
+
width: bottomContainerSize.width + "px",
|
|
42049
|
+
height: bottomContainerSize.height + "px"
|
|
42050
|
+
}, children: isMobileLayout ? /* @__PURE__ */ jsx$1(Fragment, { children: " " }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
41952
42051
|
/* @__PURE__ */ jsx$1("input", { type: "range", min: 0, max: frameUrls.length - 1, step: 1, value: selectedFrameIndex, onChange: (e) => setSelectedFrameIndex(Number(e.target.value)), css: css2.sliderInput }),
|
|
41953
42052
|
/* @__PURE__ */ jsx$1(TextT, { variant: "base", t: "vto-single.slide_to_rotate", css: css2.sliderText })
|
|
41954
|
-
] })
|
|
42053
|
+
] }) })
|
|
41955
42054
|
] });
|
|
41956
42055
|
} else {
|
|
41957
42056
|
contentNode = /* @__PURE__ */ jsx$1(Loading, { t: "vto-single.avatar_loading" });
|
|
41958
42057
|
}
|
|
41959
42058
|
return /* @__PURE__ */ jsx$1("div", { ref: topContainerRef, css: css2.topContainer, style: {
|
|
41960
|
-
width:
|
|
42059
|
+
width: imageSize.width + "px"
|
|
41961
42060
|
}, children: contentNode });
|
|
41962
42061
|
}
|
|
41963
|
-
function
|
|
42062
|
+
function ColorSelector({
|
|
42063
|
+
availableColorLabels,
|
|
42064
|
+
selectedColorLabel,
|
|
42065
|
+
onChangeColor
|
|
42066
|
+
}) {
|
|
42067
|
+
const css2 = useCss((theme) => ({
|
|
42068
|
+
colorContainer: {},
|
|
42069
|
+
colorLabelText: {
|
|
42070
|
+
fontSize: "12px"
|
|
42071
|
+
},
|
|
42072
|
+
colorSelect: {
|
|
42073
|
+
border: "none",
|
|
42074
|
+
color: theme.color_fg_text,
|
|
42075
|
+
fontFamily: theme.font_family,
|
|
42076
|
+
fontSize: "12px"
|
|
42077
|
+
}
|
|
42078
|
+
}));
|
|
42079
|
+
const handleColorSelectChange = reactExports.useCallback((e) => {
|
|
42080
|
+
const newColorLabel = e.target.value || null;
|
|
42081
|
+
onChangeColor(newColorLabel);
|
|
42082
|
+
}, []);
|
|
42083
|
+
if (availableColorLabels.length < 2) {
|
|
42084
|
+
return null;
|
|
42085
|
+
}
|
|
42086
|
+
return /* @__PURE__ */ jsx$1("div", { css: css2.colorContainer, children: /* @__PURE__ */ jsxs("label", { children: [
|
|
42087
|
+
/* @__PURE__ */ jsx$1(TextT, { variant: "base", css: css2.colorLabelText, t: "vto-single.color_label" }),
|
|
42088
|
+
/* @__PURE__ */ jsx$1("select", { value: selectedColorLabel ?? "", onChange: handleColorSelectChange, css: css2.colorSelect, children: availableColorLabels.map((colorLabel) => /* @__PURE__ */ jsx$1("option", { value: colorLabel, children: colorLabel }, colorLabel)) })
|
|
42089
|
+
] }) });
|
|
42090
|
+
}
|
|
42091
|
+
function SizeSelector({
|
|
41964
42092
|
loadedProductData,
|
|
41965
42093
|
selectedSizeLabel,
|
|
41966
42094
|
onChangeSize
|
|
41967
42095
|
}) {
|
|
41968
|
-
const {
|
|
41969
|
-
t
|
|
41970
|
-
} = useTranslation();
|
|
41971
42096
|
const css2 = useCss((_theme) => ({
|
|
41972
|
-
|
|
41973
|
-
display: "flex",
|
|
41974
|
-
flexDirection: "column",
|
|
41975
|
-
border: "1px solid rgba(33, 32, 31, 0.2)",
|
|
41976
|
-
padding: "32px 56px",
|
|
41977
|
-
justifyContent: "center",
|
|
41978
|
-
alignItems: "center"
|
|
41979
|
-
},
|
|
41980
|
-
recommendedSizeContainer: {
|
|
41981
|
-
display: "flex",
|
|
41982
|
-
alignItems: "center",
|
|
41983
|
-
gap: "6px",
|
|
41984
|
-
lineHeight: "normal"
|
|
41985
|
-
},
|
|
41986
|
-
recommendedSizeText: {
|
|
41987
|
-
fontWeight: "600"
|
|
41988
|
-
},
|
|
41989
|
-
itemFitContainer: {
|
|
41990
|
-
marginTop: "8px",
|
|
41991
|
-
lineHeight: "normal"
|
|
41992
|
-
},
|
|
41993
|
-
itemFitText: {},
|
|
41994
|
-
selectSizeLabelContainer: {
|
|
41995
|
-
lineHeight: "normal"
|
|
41996
|
-
},
|
|
41997
|
-
selectSizeLabelText: {},
|
|
41998
|
-
sizeSelectorContainer: {
|
|
41999
|
-
marginTop: "24px",
|
|
42097
|
+
container: {
|
|
42000
42098
|
display: "flex",
|
|
42001
42099
|
alignItems: "center",
|
|
42002
42100
|
gap: "12px"
|
|
42003
42101
|
},
|
|
42004
|
-
|
|
42102
|
+
button: {
|
|
42005
42103
|
width: "54px",
|
|
42006
42104
|
height: "44px",
|
|
42007
42105
|
border: "1px solid rgba(33, 32, 31, 0.2)",
|
|
42008
42106
|
padding: "9px 5px"
|
|
42009
42107
|
},
|
|
42010
|
-
|
|
42108
|
+
selectedButton: {
|
|
42011
42109
|
border: "1px solid rgb(33, 32, 31)",
|
|
42012
42110
|
cursor: "default"
|
|
42013
|
-
}
|
|
42014
|
-
|
|
42015
|
-
|
|
42111
|
+
}
|
|
42112
|
+
}));
|
|
42113
|
+
const sizeSelectorNodeList = reactExports.useMemo(() => loadedProductData.sizes.map((sizeRecord) => {
|
|
42114
|
+
const isSelected = sizeRecord.sizeLabel === selectedSizeLabel;
|
|
42115
|
+
return /* @__PURE__ */ jsx$1(Button, { variant: "base", css: /* @__PURE__ */ css$1({
|
|
42116
|
+
...css2.button,
|
|
42117
|
+
...isSelected && css2.selectedButton
|
|
42118
|
+
}, "", ""), onClick: () => {
|
|
42119
|
+
if (isSelected) {
|
|
42120
|
+
return;
|
|
42121
|
+
}
|
|
42122
|
+
onChangeSize(sizeRecord.sizeLabel);
|
|
42123
|
+
}, children: sizeRecord.sizeLabel }, sizeRecord.sizeLabel);
|
|
42124
|
+
}), [loadedProductData.sizes, selectedSizeLabel, onChangeSize]);
|
|
42125
|
+
return /* @__PURE__ */ jsx$1("div", { css: css2.container, children: sizeSelectorNodeList });
|
|
42126
|
+
}
|
|
42127
|
+
function RecommendedSizeText({
|
|
42128
|
+
loadedProductData,
|
|
42129
|
+
css: css2
|
|
42130
|
+
}) {
|
|
42131
|
+
return /* @__PURE__ */ jsx$1(TextT, { variant: "base", css: css2, t: "size-rec.recommended_size", vars: {
|
|
42132
|
+
size: loadedProductData.recommendedSizeLabel
|
|
42133
|
+
} });
|
|
42134
|
+
}
|
|
42135
|
+
function ItemFitText({
|
|
42136
|
+
loadedProductData,
|
|
42137
|
+
css: css2
|
|
42138
|
+
}) {
|
|
42139
|
+
const {
|
|
42140
|
+
t
|
|
42141
|
+
} = useTranslation();
|
|
42142
|
+
return /* @__PURE__ */ jsx$1(TextT, { variant: "base", css: css2, t: "size-rec.item_fit", vars: {
|
|
42143
|
+
fit: t(`size-rec.fitClassification.${loadedProductData.fitClassification}`) || loadedProductData.fitClassification
|
|
42144
|
+
} });
|
|
42145
|
+
}
|
|
42146
|
+
function ItemFitDetails({
|
|
42147
|
+
loadedProductData,
|
|
42148
|
+
selectedSizeLabel
|
|
42149
|
+
}) {
|
|
42150
|
+
const {
|
|
42151
|
+
t
|
|
42152
|
+
} = useTranslation();
|
|
42153
|
+
const css2 = useCss((_theme) => ({
|
|
42154
|
+
container: {
|
|
42016
42155
|
width: "100%"
|
|
42017
42156
|
},
|
|
42018
|
-
|
|
42157
|
+
line: {
|
|
42019
42158
|
display: "flex",
|
|
42020
42159
|
justifyContent: "space-between",
|
|
42021
42160
|
alignItems: "center",
|
|
@@ -42024,29 +42163,17 @@ function SizeRecommendation({
|
|
|
42024
42163
|
borderTop: "1px solid rgb(33, 32, 31)",
|
|
42025
42164
|
paddingTop: "4px"
|
|
42026
42165
|
},
|
|
42027
|
-
|
|
42166
|
+
firstLine: {
|
|
42028
42167
|
borderTop: "none",
|
|
42029
42168
|
marginTop: "0px",
|
|
42030
42169
|
paddingTop: "0px"
|
|
42031
42170
|
},
|
|
42032
|
-
|
|
42171
|
+
detailCell: {
|
|
42033
42172
|
display: "flex",
|
|
42034
42173
|
alignItems: "center",
|
|
42035
42174
|
gap: "6px"
|
|
42036
42175
|
}
|
|
42037
42176
|
}));
|
|
42038
|
-
const sizeSelectorNodeList = reactExports.useMemo(() => loadedProductData.sizes.map((sizeRecord) => {
|
|
42039
|
-
const isSelected = sizeRecord.sizeLabel === selectedSizeLabel;
|
|
42040
|
-
return /* @__PURE__ */ jsx$1(Button, { variant: "base", css: /* @__PURE__ */ css$1({
|
|
42041
|
-
...css2.sizeSelectorButton,
|
|
42042
|
-
...isSelected && css2.sizeSelectorButtonSelected
|
|
42043
|
-
}, "", ""), onClick: () => {
|
|
42044
|
-
if (isSelected) {
|
|
42045
|
-
return;
|
|
42046
|
-
}
|
|
42047
|
-
onChangeSize(sizeRecord.sizeLabel);
|
|
42048
|
-
}, children: sizeRecord.sizeLabel }, sizeRecord.sizeLabel);
|
|
42049
|
-
}), [loadedProductData.sizes, selectedSizeLabel, onChangeSize]);
|
|
42050
42177
|
const fitLineNodeList = reactExports.useMemo(() => {
|
|
42051
42178
|
const selectedSizeRecord = loadedProductData.sizes.find((s) => s.sizeLabel === selectedSizeLabel);
|
|
42052
42179
|
if (!selectedSizeRecord) {
|
|
@@ -42056,9 +42183,9 @@ function SizeRecommendation({
|
|
|
42056
42183
|
const locationLabel = t(`size-rec.measurementLocation.${mlf.measurement_location}`) || mlf.measurement_location;
|
|
42057
42184
|
const fit = mlf.fit;
|
|
42058
42185
|
const fitLabel = t(`size-rec.fit.${fit}`) || fit;
|
|
42059
|
-
return /* @__PURE__ */ jsxs("div", { css: [css2.
|
|
42060
|
-
/* @__PURE__ */ jsx$1("div", { css: css2.
|
|
42061
|
-
/* @__PURE__ */ jsx$1("div", { css: css2.
|
|
42186
|
+
return /* @__PURE__ */ jsxs("div", { css: [css2.line, index === 0 && css2.firstLine, "", ""], children: [
|
|
42187
|
+
/* @__PURE__ */ jsx$1("div", { css: css2.detailCell, children: locationLabel }),
|
|
42188
|
+
/* @__PURE__ */ jsx$1("div", { css: css2.detailCell, children: fit === "perfect_fit" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42062
42189
|
/* @__PURE__ */ jsx$1(SvgCheckCircle, {}),
|
|
42063
42190
|
" ",
|
|
42064
42191
|
fitLabel
|
|
@@ -42066,19 +42193,50 @@ function SizeRecommendation({
|
|
|
42066
42193
|
] }, index);
|
|
42067
42194
|
});
|
|
42068
42195
|
}, [loadedProductData, selectedSizeLabel]);
|
|
42069
|
-
return /* @__PURE__ */
|
|
42070
|
-
|
|
42071
|
-
|
|
42072
|
-
|
|
42073
|
-
|
|
42074
|
-
|
|
42075
|
-
|
|
42076
|
-
|
|
42077
|
-
|
|
42078
|
-
|
|
42079
|
-
|
|
42080
|
-
|
|
42081
|
-
|
|
42196
|
+
return /* @__PURE__ */ jsx$1("div", { css: css2.container, children: fitLineNodeList });
|
|
42197
|
+
}
|
|
42198
|
+
function AddToCartButton({
|
|
42199
|
+
onClick
|
|
42200
|
+
}) {
|
|
42201
|
+
return /* @__PURE__ */ jsx$1(ButtonT, { variant: "brand", t: "vto-single.add_to_cart", onClick });
|
|
42202
|
+
}
|
|
42203
|
+
function ProductDescriptionText({
|
|
42204
|
+
loadedProductData
|
|
42205
|
+
}) {
|
|
42206
|
+
const css2 = useCss((_theme) => ({
|
|
42207
|
+
descriptionText: {
|
|
42208
|
+
fontSize: "12px"
|
|
42209
|
+
}
|
|
42210
|
+
}));
|
|
42211
|
+
return /* @__PURE__ */ jsx$1(Text, { variant: "base", css: css2.descriptionText, children: /* @__PURE__ */ jsx$1("span", { dangerouslySetInnerHTML: {
|
|
42212
|
+
__html: loadedProductData.productDescriptionHtml
|
|
42213
|
+
} }) });
|
|
42214
|
+
}
|
|
42215
|
+
function Footer({
|
|
42216
|
+
onSignOutClick
|
|
42217
|
+
}) {
|
|
42218
|
+
const css2 = useCss((theme) => ({
|
|
42219
|
+
container: {
|
|
42220
|
+
marginLeft: "auto",
|
|
42221
|
+
marginRight: "auto",
|
|
42222
|
+
paddingBottom: "16px",
|
|
42223
|
+
display: "flex",
|
|
42224
|
+
justifyContent: "center",
|
|
42225
|
+
alignItems: "center",
|
|
42226
|
+
gap: "4px"
|
|
42227
|
+
},
|
|
42228
|
+
signOutLink: {
|
|
42229
|
+
fontSize: "10px",
|
|
42230
|
+
color: theme.color_tfr_800
|
|
42231
|
+
},
|
|
42232
|
+
tfrIcon: {
|
|
42233
|
+
width: "100px",
|
|
42234
|
+
height: "24px"
|
|
42235
|
+
}
|
|
42236
|
+
}));
|
|
42237
|
+
return /* @__PURE__ */ jsxs("div", { css: css2.container, children: [
|
|
42238
|
+
/* @__PURE__ */ jsx$1(LinkT, { variant: "underline", css: css2.signOutLink, onClick: onSignOutClick, t: "vto-single.sign_out" }),
|
|
42239
|
+
/* @__PURE__ */ jsx$1(SvgTfrName, { css: css2.tfrIcon })
|
|
42082
42240
|
] });
|
|
42083
42241
|
}
|
|
42084
42242
|
function useSizeRecommendation(load) {
|
|
@@ -42182,7 +42340,7 @@ function VtoButtonWidget({}) {
|
|
|
42182
42340
|
};
|
|
42183
42341
|
return /* @__PURE__ */ jsxs("button", { type: "button", onClick: openVto, css: css2.button, children: [
|
|
42184
42342
|
/* @__PURE__ */ jsx$1(SvgTfrIcon, { css: css2.icon }),
|
|
42185
|
-
/* @__PURE__ */ jsx$1(TextT, { variant: "
|
|
42343
|
+
/* @__PURE__ */ jsx$1(TextT, { variant: "base", css: css2.text, t: "try_it_on" })
|
|
42186
42344
|
] });
|
|
42187
42345
|
}
|
|
42188
42346
|
var DeviceLayout = /* @__PURE__ */ ((DeviceLayout2) => {
|
|
@@ -42378,9 +42536,9 @@ const SHARED_CONFIG = {
|
|
|
42378
42536
|
appGooglePlayUrl: "https://play.google.com/store/apps/details?id=com.thefittingroom.marketplace"
|
|
42379
42537
|
},
|
|
42380
42538
|
build: {
|
|
42381
|
-
version: `${"5.0.
|
|
42382
|
-
commitHash: `${"
|
|
42383
|
-
date: `${"2026-01-
|
|
42539
|
+
version: `${"5.0.3"}`,
|
|
42540
|
+
commitHash: `${"7ef9b58"}`,
|
|
42541
|
+
date: `${"2026-01-07T07:58:58.896Z"}`
|
|
42384
42542
|
}
|
|
42385
42543
|
};
|
|
42386
42544
|
const CONFIGS = {
|