@riosst100/pwa-marketplace 3.1.8 → 3.2.0
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/i18n/en_US.json +30 -1
- package/i18n/id_ID.json +30 -1
- package/package.json +1 -1
- package/src/components/AboutUs/aboutUs.js +9 -0
- package/src/components/AboutUs/index.js +1 -0
- package/src/components/AgeVerification/ageVerificationModal.js +163 -0
- package/src/components/AgeVerification/ageVerificationModal.module.css +85 -0
- package/src/components/AgeVerification/ageVerificationModal.shimmer.js +21 -0
- package/src/components/AgeVerification/index.js +2 -0
- package/src/components/AgeVerification/sellerCoupon.js +119 -0
- package/src/components/AgeVerification/sellerCouponCheckout.js +164 -0
- package/src/components/HelpCenter/helpCenter.js +95 -23
- package/src/components/HelpCenter/helpcenter.module.css +15 -2
- package/src/components/HelpCenter/questionDetail.js +1 -1
- package/src/components/LiveChat/MessagesModal.js +345 -0
- package/src/components/LiveChat/chatContent.js +3 -2
- package/src/components/MaintenancePage/maintenancePage.js +2 -2
- package/src/components/SellerCoupon/sellerCouponCheckout.js +2 -2
- package/src/components/SellerDetail/sellerDetail.js +38 -36
- package/src/components/SellerMegaMenu/sellerMegaMenu.js +2 -3
- package/src/components/SellerMegaMenu/sellerMegaMenuItem.js +1 -19
- package/src/components/SellerProducts/productContent.js +1 -6
- package/src/components/WebsiteSwitcher/websiteSwitcherItem.js +17 -7
- package/src/intercept.js +21 -0
- package/src/overwrites/venia-ui/lib/components/Adapter/adapter.js +23 -3
- package/src/overwrites/venia-ui/lib/components/FilterModal/CurrentFilters/currentFilters.js +1 -1
- package/src/overwrites/venia-ui/lib/components/Footer/footer.js +21 -22
- package/src/overwrites/venia-ui/lib/components/Footer/sampleData.js +35 -31
- package/src/overwrites/venia-ui/lib/components/Header/header.js +2 -2
- package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.js +105 -3
- package/src/overwrites/venia-ui/lib/components/StoreCodeRoute/storeCodeRoute.js +55 -53
- package/src/talons/HelpCenter/helpCenter.gql.js +50 -39
- package/src/talons/HelpCenter/useHelpCenter.js +67 -7
- package/src/talons/Seller/seller.gql.js +90 -0
- package/src/talons/Seller/useSeller.js +102 -4
- package/src/talons/SellerMegaMenu/megaMenu.gql.js +11 -18
- package/src/talons/SellerMegaMenu/useSellerMegaMenu.js +59 -2
- package/src/talons/SellerProducts/productContent.gql.js +5 -0
- package/src/talons/SellerProducts/useProductContent.js +61 -2
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { Suspense, useState } from 'react';
|
|
2
2
|
import { FormattedMessage } from 'react-intl';
|
|
3
|
+
import { useIntl } from 'react-intl';
|
|
4
|
+
import { useToasts } from '@magento/peregrine/lib/Toasts/useToasts';
|
|
5
|
+
import { useUserContext } from '@magento/peregrine/lib/context/user';
|
|
3
6
|
import { useSeller } from '@riosst100/pwa-marketplace/src/talons/Seller/useSeller';
|
|
4
7
|
import ErrorView from '@magento/venia-ui/lib/components/ErrorView';
|
|
5
8
|
import mapSeller from '@riosst100/pwa-marketplace/src/util/mapSeller';
|
|
@@ -9,22 +12,15 @@ import SellerProducts from '../SellerProducts';
|
|
|
9
12
|
import SellerInformation from '../SellerInformation';
|
|
10
13
|
import Reviews from '../SellerReview';
|
|
11
14
|
import {
|
|
12
|
-
Verify,
|
|
13
15
|
Sms,
|
|
14
|
-
Message,
|
|
15
|
-
Heart,
|
|
16
|
-
Share,
|
|
17
|
-
BoxTick,
|
|
18
|
-
Star1,
|
|
19
16
|
Shop,
|
|
20
17
|
} from 'iconsax-react';
|
|
21
18
|
|
|
22
19
|
import { Share2 } from 'react-feather';
|
|
23
20
|
|
|
24
21
|
import Image from '@magento/venia-ui/lib/components/Image';
|
|
25
|
-
import Button from '@magento/venia-ui/lib/components/Button';
|
|
26
|
-
import cn from 'classnames';
|
|
27
22
|
import Rating from '@riosst100/pwa-marketplace/src/components/commons/Rating';
|
|
23
|
+
import MessagesModal from '@riosst100/pwa-marketplace/src/components/LiveChat/MessagesModal';
|
|
28
24
|
|
|
29
25
|
const FavoriteSellerButton = React.lazy(() => import('@riosst100/pwa-marketplace/src/components/FavoriteSeller/AddToListButton'));
|
|
30
26
|
|
|
@@ -36,8 +32,11 @@ const SellerDetail = props => {
|
|
|
36
32
|
mapSeller
|
|
37
33
|
});
|
|
38
34
|
|
|
39
|
-
const { error, loading, seller, favoriteSellerButtonProps, couponData, couponError, couponLoading } = talonProps;
|
|
35
|
+
const { error, loading, seller, favoriteSellerButtonProps, couponData, couponError, couponLoading, handleSendMessage, messages, messagesLoading, handleReplyMessage, handleDeleteMessage } = talonProps;
|
|
40
36
|
const history = useHistory();
|
|
37
|
+
const [{ isSignedIn }] = useUserContext();
|
|
38
|
+
const [, { addToast }] = useToasts();
|
|
39
|
+
const { formatMessage } = useIntl();
|
|
41
40
|
|
|
42
41
|
if (loading && !seller)
|
|
43
42
|
return '';
|
|
@@ -76,7 +75,7 @@ const SellerDetail = props => {
|
|
|
76
75
|
[
|
|
77
76
|
{
|
|
78
77
|
id: 'product-tab',
|
|
79
|
-
title: '
|
|
78
|
+
title: 'Products',
|
|
80
79
|
content:
|
|
81
80
|
<SellerProducts
|
|
82
81
|
sellerId={seller?.seller_id}
|
|
@@ -98,31 +97,24 @@ const SellerDetail = props => {
|
|
|
98
97
|
}
|
|
99
98
|
];
|
|
100
99
|
|
|
101
|
-
const [
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
let result = '';
|
|
115
|
-
if (city && country) {
|
|
116
|
-
result = `${city}, ${country}`;
|
|
100
|
+
const [isMessagesOpen, setIsMessagesOpen] = useState(false);
|
|
101
|
+
const openMessagesModal = () => {
|
|
102
|
+
if (!isSignedIn) {
|
|
103
|
+
addToast({
|
|
104
|
+
type: 'info',
|
|
105
|
+
message: formatMessage({
|
|
106
|
+
id: 'messages.loginRequired',
|
|
107
|
+
defaultMessage: 'Please sign in to your account to send a message to the seller.'
|
|
108
|
+
}),
|
|
109
|
+
timeout: 3000
|
|
110
|
+
});
|
|
111
|
+
return;
|
|
117
112
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
return result;
|
|
125
|
-
}
|
|
113
|
+
setIsMessagesOpen(true);
|
|
114
|
+
};
|
|
115
|
+
const closeMessagesModal = () => setIsMessagesOpen(false);
|
|
116
|
+
|
|
117
|
+
// Address helper not used currently; removed to keep file lean
|
|
126
118
|
|
|
127
119
|
return (
|
|
128
120
|
<div className=' py-8'>
|
|
@@ -181,7 +173,7 @@ const SellerDetail = props => {
|
|
|
181
173
|
|
|
182
174
|
{/* Right: action buttons */}
|
|
183
175
|
<div className='flex xs_flex-wrap items-center xs_justify-center lg_justify-end gap-[10px] xs_mt-4 lg_mt-0 xs_pt-2 lg_pt-0 relative'>
|
|
184
|
-
<button className='send-message-btn flex items-center justify-center gap-[8px] px-[14px] py-[8px] bg-white rounded-[30px] border border-solid border-[#f76b1c] min-w-[44px]'>
|
|
176
|
+
<button onClick={openMessagesModal} className='send-message-btn flex items-center justify-center gap-[8px] px-[14px] py-[8px] bg-white rounded-[30px] border border-solid border-[#f76b1c] min-w-[44px]'>
|
|
185
177
|
<Sms color="#f76b1c" size={16} variant='Outline' className='stroke' />
|
|
186
178
|
<span className='text-[#f76b1c] text-[14px] font-medium whitespace-nowrap md_block xs_hidden'>Send Message</span>
|
|
187
179
|
</button>
|
|
@@ -201,6 +193,16 @@ const SellerDetail = props => {
|
|
|
201
193
|
</button>
|
|
202
194
|
</div>
|
|
203
195
|
</div>
|
|
196
|
+
<MessagesModal
|
|
197
|
+
isOpen={isMessagesOpen}
|
|
198
|
+
onClose={closeMessagesModal}
|
|
199
|
+
messages={messages}
|
|
200
|
+
seller={seller}
|
|
201
|
+
onReply={handleReplyMessage}
|
|
202
|
+
onDelete={handleDeleteMessage}
|
|
203
|
+
onSend={handleSendMessage}
|
|
204
|
+
loading={messagesLoading}
|
|
205
|
+
/>
|
|
204
206
|
<Tabs
|
|
205
207
|
data={dataTabs}
|
|
206
208
|
tabContentWrapperClassName='!p-0'
|
|
@@ -31,11 +31,10 @@ const SellerMegaMenu = (props) => {
|
|
|
31
31
|
handleClickOutside
|
|
32
32
|
} = useSellerMegaMenu({ mainNavRef });
|
|
33
33
|
|
|
34
|
-
const allowedCategoryUids = props.allowedCategoryUids || ['NTI=', 'NTA=', 'NTM=', 'MjY='];
|
|
34
|
+
// const allowedCategoryUids = props.allowedCategoryUids || ['NTI=', 'NTA=', 'NTM=', 'MjY='];
|
|
35
35
|
|
|
36
36
|
const filteredChildren = Array.isArray(megaMenuData?.children)
|
|
37
|
-
? megaMenuData.children
|
|
38
|
-
: [];
|
|
37
|
+
? megaMenuData.children : [];
|
|
39
38
|
|
|
40
39
|
const [mainNavWidth, setMainNavWidth] = useState(0);
|
|
41
40
|
const shouldRenderItems = useIsInViewport({
|
|
@@ -65,21 +65,7 @@ const SellerMegaMenuItem = props => {
|
|
|
65
65
|
const arrow = <ArrowDown2 className='ml-2 stroke-current' size="14" color={textPrimary} variant="Outline" />;
|
|
66
66
|
|
|
67
67
|
const children = useMemo(() => {
|
|
68
|
-
return
|
|
69
|
-
<SellerSubmenu
|
|
70
|
-
isFocused={isFocused}
|
|
71
|
-
sellerSubMenuState={sellerSubMenuState}
|
|
72
|
-
items={category.children}
|
|
73
|
-
seller={seller}
|
|
74
|
-
parentCategory={category}
|
|
75
|
-
shopByItems={category.shop_by}
|
|
76
|
-
mainNavWidth={mainNavWidth}
|
|
77
|
-
handleCloseSellerSubMenu={handleCloseSellerSubMenu}
|
|
78
|
-
categoryUrlSuffix={categoryUrlSuffix}
|
|
79
|
-
onNavigate={onNavigate}
|
|
80
|
-
arrow={arrow}
|
|
81
|
-
/>
|
|
82
|
-
) : null;
|
|
68
|
+
return null;
|
|
83
69
|
}, [
|
|
84
70
|
category,
|
|
85
71
|
isFocused,
|
|
@@ -124,7 +110,6 @@ const SellerMegaMenuItem = props => {
|
|
|
124
110
|
>
|
|
125
111
|
<Link
|
|
126
112
|
{...linkAttributes}
|
|
127
|
-
onKeyDown={handleKeyDown}
|
|
128
113
|
className={cn(
|
|
129
114
|
isActive ? classes.sellerMegaMenuLinkActive : classes.sellerMegaMenuLink,
|
|
130
115
|
titleClassName,
|
|
@@ -132,12 +117,9 @@ const SellerMegaMenuItem = props => {
|
|
|
132
117
|
)}
|
|
133
118
|
data-cy="SellerMegaMenu-SellerMegaMenuItem-link"
|
|
134
119
|
to={'/seller/' + seller?.url_key + categoryUrl}
|
|
135
|
-
onClick={onNavigate}
|
|
136
120
|
>
|
|
137
121
|
{category.name}
|
|
138
|
-
{/* {maybeDownArrowIcon} */}
|
|
139
122
|
</Link>
|
|
140
|
-
{children}
|
|
141
123
|
</div>
|
|
142
124
|
);
|
|
143
125
|
};
|
|
@@ -85,7 +85,7 @@ const ProductContent = props => {
|
|
|
85
85
|
const shouldShowFilterShimmer = filters === null;
|
|
86
86
|
|
|
87
87
|
const sidebar = shouldShowFilterButtons ? (
|
|
88
|
-
<FilterSidebar children={[]} filters={filters} />
|
|
88
|
+
<FilterSidebar category={category} children={[]} filters={filters} />
|
|
89
89
|
) : shouldShowFilterShimmer ? (
|
|
90
90
|
<FilterSidebarShimmer />
|
|
91
91
|
) : null;
|
|
@@ -266,11 +266,6 @@ const ProductContent = props => {
|
|
|
266
266
|
</span>
|
|
267
267
|
</h1>
|
|
268
268
|
</div>
|
|
269
|
-
<>
|
|
270
|
-
{currentFilter && <AlphaFilter isSingles={isSingles} items={items} handleActiveLetter={handleActiveLetter} activeLetter={activeLetter} />}
|
|
271
|
-
{shopby != "gauge" && category?.name != "Collectible Card Games" ? <SubCategory parent={parent} children={children} /> : ''}
|
|
272
|
-
|
|
273
|
-
</>
|
|
274
269
|
<FilterTop shopby={shopby} filters={filters} category={category} children={children} />
|
|
275
270
|
</div>
|
|
276
271
|
<div className='w-full flex items-start gap-x-[30px]'>
|
|
@@ -10,26 +10,36 @@ const WebsiteSwitcherItem = props => {
|
|
|
10
10
|
const { active, onClick, option, option2, children } = props;
|
|
11
11
|
const classes = useStyle(defaultClasses, props.classes);
|
|
12
12
|
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const { location } = globalThis;
|
|
14
|
+
const href = location.href;
|
|
15
|
+
|
|
16
|
+
let match = location && location.pathname.split("/")[1];
|
|
17
|
+
|
|
18
|
+
const websiteCode = option2 != "base" ? option2 : '';
|
|
19
|
+
if (option2 == "base") {
|
|
20
|
+
match = match + "/";
|
|
21
|
+
}
|
|
22
|
+
const url = href.replace(match, websiteCode);
|
|
23
|
+
|
|
24
|
+
// const handleClick = useCallback(() => {
|
|
25
|
+
// onClick(option, option2);
|
|
26
|
+
// }, [option, option2, onClick]);
|
|
16
27
|
|
|
17
28
|
const activeIcon = active ? (
|
|
18
29
|
<Icon data-cy="WebsiteSwitcherItem-activeIcon" size={20} src={Check} />
|
|
19
30
|
) : null;
|
|
20
31
|
|
|
21
32
|
return (
|
|
22
|
-
<
|
|
33
|
+
<a
|
|
23
34
|
data-cy="WebsiteSwitcherItem-button"
|
|
24
35
|
className={classes.root}
|
|
25
|
-
|
|
26
|
-
onClick={handleClick}
|
|
36
|
+
href={url}
|
|
27
37
|
>
|
|
28
38
|
<span className={classes.content}>
|
|
29
39
|
<span className={classes.text}>{children}</span>
|
|
30
40
|
{activeIcon}
|
|
31
41
|
</span>
|
|
32
|
-
</
|
|
42
|
+
</a>
|
|
33
43
|
);
|
|
34
44
|
};
|
|
35
45
|
|
package/src/intercept.js
CHANGED
|
@@ -87,6 +87,27 @@ module.exports = targets => {
|
|
|
87
87
|
authed: true,
|
|
88
88
|
redirectTo: "/sign-in"
|
|
89
89
|
},
|
|
90
|
+
{
|
|
91
|
+
exact: true,
|
|
92
|
+
name: "HelpCenter",
|
|
93
|
+
pattern: "/help-center",
|
|
94
|
+
path: require.resolve("./components/HelpCenter/index.js"),
|
|
95
|
+
authed: false,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
exact: true,
|
|
99
|
+
name: "AboutUs",
|
|
100
|
+
pattern: "/about-us",
|
|
101
|
+
path: require.resolve("./components/AboutUs/index.js"),
|
|
102
|
+
authed: false,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
exact: true,
|
|
106
|
+
name: "HelpCenterQuestionDetail",
|
|
107
|
+
pattern: "/help-center/question/:questionId",
|
|
108
|
+
path: require.resolve("./components/HelpCenter/questionDetail.js"),
|
|
109
|
+
authed: false,
|
|
110
|
+
},
|
|
90
111
|
{
|
|
91
112
|
exact: true,
|
|
92
113
|
name: "VerifyEmailPage",
|
|
@@ -23,9 +23,14 @@ const Adapter = props => {
|
|
|
23
23
|
reduxProps,
|
|
24
24
|
routerProps,
|
|
25
25
|
isMaintenance,
|
|
26
|
+
isCheckingMaintenance,
|
|
26
27
|
apiBase
|
|
27
28
|
} = talonProps;
|
|
28
29
|
|
|
30
|
+
if (isCheckingMaintenance) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
|
|
29
34
|
// console.log('isMaintenance',isMaintenance)
|
|
30
35
|
|
|
31
36
|
// useEffect(() => {
|
|
@@ -89,10 +94,23 @@ const Adapter = props => {
|
|
|
89
94
|
|
|
90
95
|
useEffect(() => {
|
|
91
96
|
if (!websiteCodeInUrl) {
|
|
92
|
-
|
|
97
|
+
history.replace(location.pathname + location.search)
|
|
93
98
|
} else if (websiteCodeInUrl && websiteCodeInUrl !== currentWebsiteCode) {
|
|
94
99
|
const storeCodeInUrl = websiteStores[websiteCodeInUrl];
|
|
95
100
|
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
// const search = location.search;
|
|
104
|
+
|
|
105
|
+
// const query = new URLSearchParams(search);
|
|
106
|
+
// const isAccessBaseWebsite = query.get('access_base_website') || (
|
|
107
|
+
// storage.getItem('access_base_website') || null
|
|
108
|
+
// );
|
|
109
|
+
|
|
110
|
+
// routerProps.basename = websiteCodeInUrl != process.env.WEBSITE_CODE && !isAccessBaseWebsite ? '/'+websiteCodeInUrl : '/';
|
|
111
|
+
|
|
112
|
+
// setNewRouterProps(routerProps);
|
|
113
|
+
|
|
96
114
|
// await removeCart();
|
|
97
115
|
|
|
98
116
|
// alert(storeCodeInUrl)
|
|
@@ -109,6 +127,8 @@ const Adapter = props => {
|
|
|
109
127
|
|
|
110
128
|
// await apolloClient.clearCacheData(apolloClient, 'cart');
|
|
111
129
|
// await removeCart();
|
|
130
|
+
|
|
131
|
+
// klo enabled jd redirect tros
|
|
112
132
|
storage.removeItem('cartId');
|
|
113
133
|
|
|
114
134
|
storage.setItem('store_view_code', storeCodeInUrl);
|
|
@@ -124,7 +144,7 @@ const Adapter = props => {
|
|
|
124
144
|
|
|
125
145
|
// We're required to reload the page as the basename doesn't
|
|
126
146
|
// change entirely without a full page reload.
|
|
127
|
-
|
|
147
|
+
history.go(0);
|
|
128
148
|
}
|
|
129
149
|
|
|
130
150
|
if (!websiteCodeInUrl && getWebsiteByUserIp) {
|
|
@@ -164,7 +184,7 @@ const Adapter = props => {
|
|
|
164
184
|
);
|
|
165
185
|
}
|
|
166
186
|
}
|
|
167
|
-
}, [websiteCodeInUrl, getWebsiteByUserIp])
|
|
187
|
+
}, [websiteCodeInUrl, getWebsiteByUserIp]);
|
|
168
188
|
|
|
169
189
|
// TODO: Replace with app skeleton. See PWA-547.
|
|
170
190
|
if (!initialized) {
|
|
@@ -12,7 +12,7 @@ const CurrentFilters = props => {
|
|
|
12
12
|
const classes = useStyle(defaultClasses, props.classes);
|
|
13
13
|
const { formatMessage } = useIntl();
|
|
14
14
|
|
|
15
|
-
const defaultTopFilterAttrCode = category.default_top_filter.attribute_code;
|
|
15
|
+
const defaultTopFilterAttrCode = category && category.default_top_filter ? category.default_top_filter.attribute_code : null;
|
|
16
16
|
|
|
17
17
|
// create elements and params at the same time for efficiency
|
|
18
18
|
const filterElements = useMemo(() => {
|
|
@@ -30,14 +30,25 @@ const Footer = props => {
|
|
|
30
30
|
const linkGroups = Array.from(links, ([groupKey, linkProps]) => {
|
|
31
31
|
const linkElements = Array.from(linkProps, ([text, pathInfo]) => {
|
|
32
32
|
let path = pathInfo;
|
|
33
|
+
let url = null;
|
|
33
34
|
let Component = Fragment;
|
|
34
35
|
if (pathInfo && typeof pathInfo === 'object') {
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
url = pathInfo.url;
|
|
37
|
+
if (pathInfo.Component) {
|
|
38
|
+
Component = pathInfo.Component;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (pathInfo.path) {
|
|
42
|
+
path = pathInfo.path;
|
|
43
|
+
}
|
|
37
44
|
}
|
|
38
45
|
|
|
39
46
|
const itemKey = `text: ${text} path:${path}`;
|
|
40
|
-
const child =
|
|
47
|
+
const child = url ? (
|
|
48
|
+
<a data-cy="Footer-link" className={classes.link} href={url}>
|
|
49
|
+
<FormattedMessage id={text} defaultMessage={text} />
|
|
50
|
+
</a>
|
|
51
|
+
) : path ? (
|
|
41
52
|
<Link data-cy="Footer-link" className={classes.link} to={path}>
|
|
42
53
|
<FormattedMessage id={text} defaultMessage={text} />
|
|
43
54
|
</Link>
|
|
@@ -75,24 +86,19 @@ const Footer = props => {
|
|
|
75
86
|
}
|
|
76
87
|
}
|
|
77
88
|
>
|
|
78
|
-
{!isCheckoutPage && <div className={classes.links}>
|
|
89
|
+
{!isCheckoutPage && <div className={classes.links} style={{"display":"flex"}}>
|
|
79
90
|
{linkGroups}
|
|
80
|
-
<div>
|
|
91
|
+
{/* <div>
|
|
81
92
|
<Newsletter />
|
|
82
|
-
</div>
|
|
83
|
-
<div className={classes.callout}>
|
|
93
|
+
</div> */}
|
|
94
|
+
{/* <div className={classes.callout}>
|
|
84
95
|
<span
|
|
85
96
|
data-cy="Footer-calloutHeading"
|
|
86
97
|
className={classes.calloutHeading}
|
|
87
98
|
>
|
|
88
|
-
|
|
99
|
+
Connect with Us
|
|
89
100
|
</span>
|
|
90
101
|
<ul className={classes.socialLinks}>
|
|
91
|
-
<li>
|
|
92
|
-
<Link to="" className="bg-darkblue-900 rounded-full flex justify-center items-center w-[34px] h-[34px]">
|
|
93
|
-
<Instagram size={15} color='#FFFFFF' />
|
|
94
|
-
</Link>
|
|
95
|
-
</li>
|
|
96
102
|
<li>
|
|
97
103
|
<Link to="" className="bg-darkblue-900 rounded-full flex justify-center items-center w-[34px] h-[34px]">
|
|
98
104
|
<Facebook size={15} color='#FFFFFF' />
|
|
@@ -105,18 +111,11 @@ const Footer = props => {
|
|
|
105
111
|
</li>
|
|
106
112
|
<li>
|
|
107
113
|
<Link to="" className="bg-darkblue-900 rounded-full flex justify-center items-center w-[34px] h-[34px]">
|
|
108
|
-
<
|
|
109
|
-
<path d="M12.9311 4.27218C12.8573 4.19836 12.7835 4.19836 12.6358 4.19836C12.4144 4.19836 12.2667 4.19836 12.0453 4.12454C10.7903 3.82925 9.90442 2.86957 9.8306 1.61459V1.31931C9.8306 1.09784 9.68295 0.950195 9.46148 0.950195H7.173C6.95154 0.950195 6.80389 1.09784 6.80389 1.31931V10.5471C6.80389 11.4329 6.06567 12.0973 5.25363 12.0973C4.73688 12.0973 4.29395 11.8758 3.99866 11.5067C3.4819 10.8423 3.62955 9.80883 4.29395 9.29208C4.58923 9.07061 4.88452 9.07061 5.4751 9.07061C5.54892 9.07061 5.69656 9.07061 5.77039 8.99679C5.84421 8.92297 5.91803 8.84915 5.91803 8.7015V6.26538C5.91803 6.11773 5.77039 5.89627 5.62274 5.89627C4.44159 5.74862 3.26044 6.04391 2.37457 6.78213C1.56253 7.52035 0.971956 8.55386 0.824312 9.80883C0.602846 11.2115 1.1196 12.6879 2.07929 13.6476C2.96515 14.6073 4.22012 15.0502 5.40128 15.0502C6.58243 15.0502 7.76358 14.6073 8.64944 13.7214C9.53531 12.8355 10.0521 11.6544 10.0521 10.3994V6.3392C10.9379 6.78213 11.8976 7.07742 12.8573 7.07742C13.0788 7.07742 13.2264 6.92978 13.2264 6.70831V4.49365C13.0788 4.41983 13.0049 4.34601 12.9311 4.27218Z" fill="white" />
|
|
110
|
-
</svg>
|
|
111
|
-
</Link>
|
|
112
|
-
</li>
|
|
113
|
-
<li>
|
|
114
|
-
<Link to="" className="bg-darkblue-900 rounded-full flex justify-center items-center w-[34px] h-[34px]">
|
|
115
|
-
<Linkedin size={15} color='#FFFFFF' />
|
|
114
|
+
<Instagram size={15} color='#FFFFFF' />
|
|
116
115
|
</Link>
|
|
117
116
|
</li>
|
|
118
117
|
</ul>
|
|
119
|
-
</div>
|
|
118
|
+
</div> */}
|
|
120
119
|
</div>}
|
|
121
120
|
<div className={"flex flex-row justify-between py-4 border-t border-gray-100 w-full py-[15px] mx-[auto] flex justify-between items-center" + (isCheckoutPage ? " max-w-[1000px]" : " max-w-[1300px]")}>
|
|
122
121
|
<p className="text-colorDefault">{copyrightText || null}</p>
|
|
@@ -1,46 +1,50 @@
|
|
|
1
1
|
import { ContactLink } from '@magento/venia-ui/lib/components/ContactPage';
|
|
2
2
|
|
|
3
|
+
const { location } = globalThis;
|
|
4
|
+
const origin = location.origin;
|
|
5
|
+
|
|
3
6
|
const accountLinks = new Map()
|
|
4
|
-
.set('
|
|
5
|
-
.set('
|
|
6
|
-
.set('
|
|
7
|
-
.set('
|
|
7
|
+
.set('Let Us Help You', null)
|
|
8
|
+
.set('Your Account', '/account-information')
|
|
9
|
+
.set('Your Orders', '/order-history')
|
|
10
|
+
.set('Help', '/help-center')
|
|
8
11
|
|
|
9
|
-
const
|
|
10
|
-
.set('
|
|
11
|
-
.set('
|
|
12
|
-
.set('
|
|
13
|
-
.set('
|
|
14
|
-
.set('Intelectual Property Claims', '/');
|
|
12
|
+
const socialMediaLinks = new Map()
|
|
13
|
+
.set('Connect With Us', null)
|
|
14
|
+
.set('Facebook', '/')
|
|
15
|
+
.set('Twitter', '/')
|
|
16
|
+
.set('Instagram', '/');
|
|
15
17
|
|
|
16
|
-
const
|
|
18
|
+
const brandLinks = new Map()
|
|
19
|
+
.set('Protect and Build Your Brand', null)
|
|
20
|
+
.set('Sell on TCG Collective', '/')
|
|
21
|
+
.set('Partners/Affiliates', '/');
|
|
22
|
+
|
|
23
|
+
const getToKnowUsLinks = new Map()
|
|
24
|
+
.set('Get to Know Us', null)
|
|
17
25
|
.set('About Us', '/about-us')
|
|
18
|
-
.set('
|
|
19
|
-
.set('
|
|
20
|
-
.set('Give Back', null);
|
|
26
|
+
.set('Careers', '/career')
|
|
27
|
+
.set('Contact Us', '/contact-us');
|
|
21
28
|
|
|
22
29
|
const sitesLinks = new Map()
|
|
23
|
-
.set('
|
|
24
|
-
.set('
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
.set('
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
.set('
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
.set('
|
|
34
|
-
|
|
35
|
-
.set('Contact Us', {
|
|
36
|
-
path: '/contact-us',
|
|
37
|
-
Component: ContactLink
|
|
30
|
+
.set('Our Stores (Country/Region)', null)
|
|
31
|
+
.set('Global', {
|
|
32
|
+
url: origin + '/'
|
|
33
|
+
})
|
|
34
|
+
.set('Singapore', {
|
|
35
|
+
url: origin + '/sg'
|
|
36
|
+
})
|
|
37
|
+
.set('Indonesia', {
|
|
38
|
+
url: origin + '/id'
|
|
39
|
+
})
|
|
40
|
+
.set('Malaysia', {
|
|
41
|
+
url: origin + '/my'
|
|
38
42
|
})
|
|
39
|
-
.set('Order Status', null)
|
|
40
|
-
.set('Returns', null);
|
|
41
43
|
|
|
42
44
|
export const DEFAULT_LINKS = new Map()
|
|
43
45
|
.set('us', getToKnowUsLinks)
|
|
46
|
+
.set('social-media', socialMediaLinks)
|
|
47
|
+
.set('brand', brandLinks)
|
|
44
48
|
.set('account', accountLinks)
|
|
45
49
|
.set('sites', sitesLinks);
|
|
46
50
|
|
|
@@ -46,8 +46,8 @@ const Header = props => {
|
|
|
46
46
|
const baseUrl = data?.storeConfig?.base_media_url;
|
|
47
47
|
const imageSource = data?.storeConfig?.header_logo_src;
|
|
48
48
|
const LogoImageSource = `${baseUrl}/logo/${imageSource}`;
|
|
49
|
-
const IMAGE_HEIGHT = data?.storeConfig?.logo_width ||
|
|
50
|
-
const IMAGE_WIDTH = data?.storeConfig?.logo_height ||
|
|
49
|
+
const IMAGE_HEIGHT = data?.storeConfig?.logo_width || 33;
|
|
50
|
+
const IMAGE_WIDTH = data?.storeConfig?.logo_height || 230;
|
|
51
51
|
const IMAGE_ALT = data?.storeConfig?.logo_alt || 'TCG Collective';
|
|
52
52
|
|
|
53
53
|
const classes = useStyle(defaultClasses, props.classes);
|