@riosst100/pwa-marketplace 3.3.1 → 3.3.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.
Files changed (34) hide show
  1. package/package.json +1 -1
  2. package/src/componentOverrideMapping.js +1 -0
  3. package/src/components/AboutUs/aboutUs.css +111 -0
  4. package/src/components/AboutUs/aboutUs.js +6 -2
  5. package/src/components/AgeVerificationModal/ageVerificationModal.js +6 -4
  6. package/src/components/AgeVerificationModal/ageVerificationModal.module.css +23 -4
  7. package/src/components/LoadingRequest/index.js +1 -0
  8. package/src/components/LoadingRequest/loadingRequest.js +40 -0
  9. package/src/components/LoadingRequest/loadingRequest.module.css +150 -0
  10. package/src/components/PrivacyPolicy/index.js +1 -0
  11. package/src/components/PrivacyPolicy/privacyPolicy.css +125 -0
  12. package/src/components/PrivacyPolicy/privacyPolicy.js +13 -0
  13. package/src/components/SocialLogin/socialLogin.js +5 -55
  14. package/src/components/TermsOfUse/index.js +1 -0
  15. package/src/components/TermsOfUse/termsOfUse.css +113 -0
  16. package/src/components/TermsOfUse/termsOfUse.js +13 -0
  17. package/src/intercept.js +14 -0
  18. package/src/overwrites/peregrine/lib/Apollo/links/storeLink.js +34 -0
  19. package/src/overwrites/peregrine/lib/context/cart.js +13 -1
  20. package/src/overwrites/peregrine/lib/store/actions/cart/asyncActions.js +15 -3
  21. package/src/overwrites/peregrine/lib/talons/Adapter/useAdapter.js +7 -4
  22. package/src/overwrites/peregrine/lib/talons/SignIn/useSignIn.js +19 -1
  23. package/src/overwrites/peregrine/lib/util/makeUrl.js +132 -0
  24. package/src/overwrites/venia-ui/lib/components/Adapter/adapter.js +47 -43
  25. package/src/overwrites/venia-ui/lib/components/Footer/footer.js +2 -2
  26. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/components/productFAQ.js +82 -0
  27. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.js +47 -39
  28. package/src/overwrites/venia-ui/lib/components/SignIn/signIn.js +3 -1
  29. package/src/overwrites/venia-ui/lib/components/SignInPage/signInPage.js +27 -21
  30. package/src/overwrites/venia-ui/lib/components/StoreCodeRoute/storeCodeRoute.js +10 -43
  31. package/src/talons/ProductFAQ/productFaq.gql.js +39 -0
  32. package/src/talons/ProductFAQ/useProductFAQ.js +48 -0
  33. package/src/talons/RFQ/useRFQ.js +0 -2
  34. package/src/talons/SocialLogin/useSocialLogin.js +5 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@riosst100/pwa-marketplace",
3
3
  "author": "riosst100@gmail.com",
4
- "version": "3.3.1",
4
+ "version": "3.3.3",
5
5
  "main": "src/index.js",
6
6
  "pwa-studio": {
7
7
  "targets": {
@@ -1,4 +1,5 @@
1
1
  module.exports = componentOverrideMapping = {
2
+ ['@magento/peregrine/lib/Apollo/links/storeLink.js']: '@riosst100/pwa-marketplace/src/overwrites/peregrine/lib/Apollo/links/storeLink.js',
2
3
  ['@magento/peregrine/lib/talons/CreateAccount/useCreateAccount.js']: '@riosst100/pwa-marketplace/src/overwrites/peregrine/lib/talons/CreateAccount/useCreateAccount.js',
3
4
  ['@magento/peregrine/lib/talons/CheckoutPage/PaymentInformation/usePaymentMethods.js']: '@riosst100/pwa-marketplace/src/overwrites/peregrine/lib/talons/CheckoutPage/PaymentInformation/usePaymentMethods.js',
4
5
  ['@magento/venia-ui/lib/components/CartPage/PriceAdjustments/CouponCode/couponCode.js']: '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/CartPage/PriceAdjustments/CouponCode/couponCode.js',
@@ -0,0 +1,111 @@
1
+ .root {
2
+ /* Theme color variables mapped from tcg-theme-preset.js */
3
+ --tcg-color-text: #1B1B1B; /* textColor.colorDefault */
4
+ --tcg-color-link: #3d84ff; /* brand.base */
5
+ --tcg-color-link-hover: #f76b1c; /* brand.dark */
6
+ --tcg-color-border: #E6E9EA; /* gray.100 */
7
+ --tcg-color-table-head-bg: #F8F8F8; /* gray.50 */
8
+ --tcg-color-muted: #999999; /* gray.200 */
9
+
10
+ max-width: 1300px;
11
+ margin: 0 auto;
12
+ padding: 0 1rem;
13
+ color: var(--tcg-color-text);
14
+ }
15
+ @media (min-width: 768px) {
16
+ .root { padding: 0; }
17
+ }
18
+
19
+ /* Ensure CMS-injected wrapper classes are styled */
20
+ :global(.row-content){
21
+ max-width: 1300px;
22
+ width: 100%;
23
+ margin: 0 auto;
24
+ }
25
+
26
+ .root h1,
27
+ .root h2,
28
+ .root h3 {
29
+ margin: 1.25rem 0 0.75rem;
30
+ font-weight: 600;
31
+ }
32
+
33
+ .root p {
34
+ margin: 0.75rem 0;
35
+ line-height: 1.7;
36
+ color: var(--tcg-color-text);
37
+ }
38
+
39
+ .root ul,
40
+ .root ol {
41
+ margin: 0.75rem 0 0.75rem 1.25rem;
42
+ padding-left: 1.25rem;
43
+ }
44
+ .root ul { list-style: disc; }
45
+ .root ol { list-style: decimal; }
46
+ .root li { margin: 0.375rem 0; }
47
+
48
+ .root a {
49
+ color: var(--tcg-color-link);
50
+ text-decoration: underline;
51
+ text-underline-offset: 2px;
52
+ }
53
+ .root a:hover { color: var(--tcg-color-link-hover); }
54
+
55
+ .root img {
56
+ max-width: 100%;
57
+ height: auto;
58
+ }
59
+
60
+ /* Headings scale */
61
+ .root h1 {
62
+ text-align: center;
63
+ font-size: 1.5rem;
64
+ line-height: 1.3;
65
+ margin: 1.5rem 0 0.75rem;
66
+ }
67
+ @media (min-width: 768px) {
68
+ .root h1 { font-size: 1.75rem; }
69
+ }
70
+
71
+ .root h2 {
72
+ font-size: 1.125rem;
73
+ margin: 1.25rem 0 0.5rem;
74
+ }
75
+ @media (min-width: 768px) {
76
+ .root h2 { font-size: 1.25rem; }
77
+ }
78
+
79
+ .root h3 {
80
+ font-size: 1rem;
81
+ margin: 1rem 0 0.5rem;
82
+ }
83
+
84
+ .root hr {
85
+ border: 0;
86
+ border-top: 1px solid var(--tcg-color-border);
87
+ margin: 2rem 0;
88
+ }
89
+
90
+ .root table {
91
+ width: 100%;
92
+ border-collapse: collapse;
93
+ margin: 1rem 0;
94
+ }
95
+ .root th,
96
+ .root td {
97
+ border: 1px solid var(--tcg-color-border);
98
+ padding: 0.5rem 0.75rem;
99
+ text-align: left;
100
+ }
101
+ .root thead th {
102
+ background: var(--tcg-color-table-head-bg);
103
+ font-weight: 600;
104
+ }
105
+
106
+ .root blockquote {
107
+ border-left: 3px solid var(--tcg-color-border);
108
+ padding-left: 1rem;
109
+ color: var(--tcg-color-muted);
110
+ margin: 1rem 0;
111
+ }
@@ -1,9 +1,13 @@
1
1
  import React from 'react';
2
2
  import CMSPage from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/RootComponents/CMS/cms';
3
-
3
+ import classes from './aboutUs.css';
4
4
 
5
5
  const AboutUs = () => {
6
- return <CMSPage identifier="about-us" />
6
+ return (
7
+ <div className={classes.root}>
8
+ <CMSPage identifier="about-us" />
9
+ </div>
10
+ );
7
11
  }
8
12
 
9
13
  export default AboutUs;
@@ -38,10 +38,12 @@ const AgeVerificationModal = props => {
38
38
  <div className={modalClasses.backdrop} />
39
39
  <div className={modalClasses.dialog}>
40
40
  <div className={modalClasses.body}>
41
- <div><Icon src={AlertTriangle} attrs={{ width: 20 }} /></div>
41
+ <div><Icon src={AlertTriangle} classes={{
42
+ icon: modalClasses.icon
43
+ }} attrs={{ width: 40 }} /></div>
42
44
  <h2 className={modalClasses.title}>Are you over 18 years old?</h2>
43
- <p>You must be at least 18 years old to access this page. Please verify your age.</p>
44
- <label>Your Birthday</label>
45
+ <p style={{"paddingTop": "10px"}}>You must be at least 18 years old to access this page. Please verify your age.</p>
46
+ <label className={modalClasses.formLabel}>Your Birthday:</label>
45
47
  <div className={modalClasses.birthday}>
46
48
  {/* Month */}
47
49
  <select onChange={(e) => setMonth(e.target.value)}>
@@ -67,7 +69,7 @@ const AgeVerificationModal = props => {
67
69
  ))}
68
70
  </select>
69
71
  </div>
70
- {ageVerificationErrorMessage && <div>{ageVerificationErrorMessage}</div>}
72
+ {ageVerificationErrorMessage && <div className={modalClasses.error}>{ageVerificationErrorMessage}</div>}
71
73
  <div className={modalClasses.actions}>
72
74
  <button className={modalClasses.btnUnder} onClick={handleUnderAge}>I'm under 18 years old</button>
73
75
  <button className={modalClasses.btnOver} onClick={handleOverAge}>I'm 18 years old</button>
@@ -6,6 +6,13 @@
6
6
  text-align: left;
7
7
  }
8
8
 
9
+ .formLabel {
10
+ font-weight: 500;
11
+ padding-top: 30px;
12
+ font-size: 13px;
13
+ padding-bottom: 10px;
14
+ }
15
+
9
16
  /* Birthday selects */
10
17
  .birthday {
11
18
  display: flex;
@@ -28,7 +35,7 @@
28
35
 
29
36
  .btnUnder {
30
37
  flex: 1;
31
- padding: 10px;
38
+ /* padding: 10px; */
32
39
  border: none;
33
40
  border-radius: 6px;
34
41
  color: white;
@@ -38,7 +45,7 @@
38
45
 
39
46
  .btnOver {
40
47
  flex: 1;
41
- padding: 10px;
48
+ /* padding: 10px; */
42
49
  border: none;
43
50
  border-radius: 6px;
44
51
  color: white;
@@ -98,7 +105,7 @@
98
105
  font-size:20px;
99
106
  font-weight:600;
100
107
  margin:0;
101
- color:#333
108
+ color:red;
102
109
  }
103
110
  .closeBtn{
104
111
  background:none;
@@ -110,12 +117,24 @@
110
117
  padding:4px 8px;
111
118
  border-radius:6px
112
119
  }
120
+ .error {
121
+ color: red;
122
+ padding: 10px;
123
+ font-size: 13px;
124
+ margin-top: -20px;
125
+ margin-bottom: 20px;
126
+ }
113
127
  .closeBtn:hover{
114
128
  background:#f5f5f5;
115
129
  color:#222
116
130
  }
131
+ .icon {
132
+ --stroke: red;
133
+ stroke: red;
134
+ color: red;
135
+ }
117
136
  .body{
118
- padding: 20px 50px;
137
+ padding: 30px 50px;
119
138
  overflow: auto;
120
139
  display: flex;
121
140
  flex-direction: column;
@@ -0,0 +1 @@
1
+ export { default } from './loadingRequest';
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import ReactDOM from 'react-dom';
3
+ import modalClasses from './loadingRequest.module.css';
4
+
5
+ // Simple portal root fallback
6
+ const getPortalRoot = () => {
7
+ let root = document.getElementById('loading-request-portal');
8
+ if (!root) {
9
+ root = document.createElement('div');
10
+ root.id = 'loading-request-portal';
11
+ document.body.appendChild(root);
12
+ }
13
+ return root;
14
+ };
15
+
16
+ const LoadingRequest = props => {
17
+
18
+ const {
19
+ isLoading
20
+ } = props;
21
+
22
+ const modal = isLoading ? (
23
+ <div className={modalClasses.overlay} role="dialog" aria-modal="true" aria-label="Modal">
24
+ <div className={modalClasses.backdrop} />
25
+ <div className={modalClasses.dialog}>
26
+ <div className={modalClasses.body}>
27
+ <img src={process.env.MAGENTO_BACKEND_URL + "/media/images/spinner2.gif"} style={{"width":"15%"}} />
28
+ <div style={{
29
+ "marginTop": "10px",
30
+ "color": "white"
31
+ }}>Please wait...</div>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ ) : null;
36
+
37
+ return <>{isLoading ? ReactDOM.createPortal(modal, getPortalRoot()) : null}</>;
38
+ };
39
+
40
+ export default LoadingRequest;
@@ -0,0 +1,150 @@
1
+ .modal label {
2
+ display: block;
3
+ font-size: 14px;
4
+ font-weight: bold;
5
+ margin-bottom: 8px;
6
+ text-align: left;
7
+ }
8
+
9
+ /* Birthday selects */
10
+ .birthday {
11
+ display: flex;
12
+ gap: 10px;
13
+ margin-bottom: 20px;
14
+ }
15
+
16
+ .birthday select {
17
+ flex: 1;
18
+ padding: 8px;
19
+ border-radius: 6px;
20
+ border: 1px solid #ccc;
21
+ }
22
+
23
+ /* Buttons */
24
+ .actions {
25
+ display: flex;
26
+ gap: 10px;
27
+ }
28
+
29
+ .btnUnder {
30
+ flex: 1;
31
+ padding: 10px;
32
+ border: none;
33
+ border-radius: 6px;
34
+ color: white;
35
+ font-size: 14px;
36
+ cursor: pointer;
37
+ }
38
+
39
+ .btnOver {
40
+ flex: 1;
41
+ padding: 10px;
42
+ border: none;
43
+ border-radius: 6px;
44
+ color: white;
45
+ font-size: 14px;
46
+ cursor: pointer;
47
+ }
48
+
49
+ .btnUnder {
50
+ background: #ef4444;
51
+ }
52
+
53
+ .btnOver {
54
+ background: #22c55e;
55
+ }
56
+
57
+ .btnOver:hover {
58
+ opacity: 0.9;
59
+ }
60
+
61
+ .btnUnder:hover {
62
+ opacity: 0.9;
63
+ }
64
+
65
+ .overlay{
66
+ position:fixed;
67
+ inset:0;
68
+ display:flex;
69
+ padding:5vh 24px;
70
+ font-family:inherit;
71
+ align-items: center;
72
+ justify-content: center;
73
+ z-index: 9999;
74
+ }
75
+ .backdrop{
76
+ position:absolute;
77
+ inset:0;
78
+ background: rgba(0, 0, 0, 0.64);
79
+ backdrop-filter: blur(8px);
80
+ }
81
+ .dialog{
82
+ position:relative;
83
+ width:clamp(320px,80vw,500px);
84
+ display:flex;
85
+ flex-direction:column
86
+ }
87
+ .header{
88
+ display:flex;
89
+ align-items:center;
90
+ justify-content:space-between;
91
+ padding:16px 20px;
92
+ border-bottom:1px solid #eee
93
+ }
94
+ .title{
95
+ font-size:20px;
96
+ font-weight:600;
97
+ margin:0;
98
+ color:#333
99
+ }
100
+ .closeBtn{
101
+ background:none;
102
+ border:none;
103
+ font-size:24px;
104
+ line-height:1;
105
+ cursor:pointer;
106
+ color:#777;
107
+ padding:4px 8px;
108
+ border-radius:6px
109
+ }
110
+ .closeBtn:hover{
111
+ background:#f5f5f5;
112
+ color:#222
113
+ }
114
+ .body{
115
+ padding: 20px 50px;
116
+ overflow: auto;
117
+ display: flex;
118
+ flex-direction: column;
119
+ text-align: center;
120
+ flex-wrap: wrap;
121
+ align-content: center;
122
+ }
123
+ .triggerBtn{
124
+ background:#f76b1c;
125
+ color:#fff;
126
+ border:none;
127
+ padding:10px 18px;
128
+ border-radius:8px;
129
+ font-weight:600;
130
+ cursor:pointer
131
+ }
132
+ .triggerBtn:hover{
133
+ background:#f26313
134
+ }
135
+ /* Vertical stack wrapper for existing sellerCoupon card styles */
136
+ .stack{
137
+ display:flex;
138
+ flex-direction:column;
139
+ gap:16px;
140
+ padding:4px 2px 12px;
141
+ }
142
+ @media (max-width:640px){
143
+ .dialog{
144
+ width:92vw;
145
+ padding-bottom:8px
146
+ }
147
+ .grid{
148
+ grid-template-columns:repeat(auto-fill,minmax(160px,1fr))
149
+ }
150
+ }
@@ -0,0 +1 @@
1
+ export {default} from './privacyPolicy';
@@ -0,0 +1,125 @@
1
+ .root {
2
+ /* Theme color variables mapped from tcg-theme-preset.js */
3
+ --tcg-color-text: #1B1B1B; /* textColor.colorDefault */
4
+ --tcg-color-link: #3d84ff; /* brand.base */
5
+ --tcg-color-link-hover: #f76b1c; /* brand.dark */
6
+ --tcg-color-border: #E6E9EA; /* gray.100 */
7
+ --tcg-color-table-head-bg: #F8F8F8; /* gray.50 */
8
+ --tcg-color-muted: #999999; /* gray.200 */
9
+
10
+ max-width: 1300px;
11
+ margin: 0 auto;
12
+ padding: 0 1rem;
13
+ color: var(--tcg-color-text);
14
+ }
15
+ :global(.row-content){
16
+ max-width: 1300px;
17
+ width: 100%;
18
+ margin: 0 auto;
19
+ }
20
+ @media (min-width: 768px) {
21
+ .root { padding: 0; }
22
+ }
23
+
24
+ .root h1,
25
+ .root h2,
26
+ .root h3 {
27
+ margin: 1.25rem 0 0.75rem;
28
+ font-weight: 600;
29
+ }
30
+
31
+ .root p {
32
+ margin: 0.75rem 0;
33
+ line-height: 1.7;
34
+ }
35
+
36
+ .root ul,
37
+ .root ol {
38
+ margin: 0.75rem 0 0.75rem 1.25rem;
39
+ }
40
+
41
+ .root a {
42
+ color: var(--tcg-color-link);
43
+ text-decoration: underline;
44
+ }
45
+ .root a:hover {
46
+ color: var(--tcg-color-link-hover);
47
+ }
48
+
49
+ .root img {
50
+ max-width: 100%;
51
+ height: auto;
52
+ }
53
+
54
+ /* Enhanced typography & layout for CMS content */
55
+ .root > :first-child { margin-top: 0; }
56
+ .root > :last-child { margin-bottom: 0; }
57
+
58
+ .root h1 {
59
+ text-align: center;
60
+ font-size: 1.5rem;
61
+ line-height: 1.3;
62
+ margin: 1.5rem 0 0.75rem;
63
+ }
64
+ @media (min-width: 768px) {
65
+ .root h1 { font-size: 1.75rem; }
66
+ }
67
+
68
+ .root h2 {
69
+ font-size: 1.125rem;
70
+ margin: 1.25rem 0 0.5rem;
71
+ }
72
+ @media (min-width: 768px) {
73
+ .root h2 { font-size: 1.25rem; }
74
+ }
75
+
76
+ .root h3 {
77
+ font-size: 1rem;
78
+ margin: 1rem 0 0.5rem;
79
+ }
80
+
81
+ .root p {
82
+ color: var(--tcg-color-text);
83
+ line-height: 1.8;
84
+ }
85
+
86
+ .root ul,
87
+ .root ol {
88
+ padding-left: 1.25rem;
89
+ }
90
+ .root ul { list-style: disc; }
91
+ .root ol { list-style: decimal; }
92
+ .root li { margin: 0.375rem 0; }
93
+
94
+ .root a {
95
+ text-underline-offset: 2px;
96
+ }
97
+
98
+ .root hr {
99
+ border: 0;
100
+ border-top: 1px solid var(--tcg-color-border);
101
+ margin: 2rem 0;
102
+ }
103
+
104
+ .root table {
105
+ width: 100%;
106
+ border-collapse: collapse;
107
+ margin: 1rem 0;
108
+ }
109
+ .root th,
110
+ .root td {
111
+ border: 1px solid var(--tcg-color-border);
112
+ padding: 0.5rem 0.75rem;
113
+ text-align: left;
114
+ }
115
+ .root thead th {
116
+ background: var(--tcg-color-table-head-bg);
117
+ font-weight: 600;
118
+ }
119
+
120
+ .root blockquote {
121
+ border-left: 3px solid var(--tcg-color-border);
122
+ padding-left: 1rem;
123
+ color: var(--tcg-color-muted);
124
+ margin: 1rem 0;
125
+ }
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import CMSPage from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/RootComponents/CMS/cms';
3
+ import classes from './privacyPolicy.css';
4
+
5
+ const PrivacyPolicy = () => {
6
+ return (
7
+ <div className={classes.root}>
8
+ <CMSPage identifier="privacy-policy" />
9
+ </div>
10
+ );
11
+ }
12
+
13
+ export default PrivacyPolicy;
@@ -1,13 +1,7 @@
1
1
  import React, {useState} from 'react';
2
- import Button from '@magento/venia-ui/lib/components/Button';
3
- import Image from '@magento/venia-ui/lib/components/Image';
4
- import GoogleIcon from './img/google.svg';
5
- import FacebookIcon from './img/facebook.svg';
6
- import InstagramIcon from './img/instagram.svg';
7
- import WechatIcon from './img/wechat.svg';
8
- import WeiboIcon from './img/weibo.svg';
9
2
  import GoogleSignInButton from './googleSignInButton'
10
3
  import { useSocialLogin } from '@riosst100/pwa-marketplace/src/talons/SocialLogin/useSocialLogin';
4
+ import LoadingRequest from '@riosst100/pwa-marketplace/src/components/LoadingRequest';
11
5
 
12
6
  const SocialLogin = () => {
13
7
  const [jwtToken, setJwtToken] = useState(null);
@@ -16,58 +10,14 @@ const SocialLogin = () => {
16
10
  jwtToken
17
11
  });
18
12
 
19
- // const {
20
- // errors,
21
- // handleCreateAccount,
22
- // handleEnterKeyPress,
23
- // signinHandleEnterKeyPress,
24
- // handleForgotPassword,
25
- // forgotPasswordHandleEnterKeyPress,
26
- // handleSubmit,
27
- // isBusy,
28
- // setFormApi,
29
- // recaptchaWidgetProps
30
- // } = talonProps;
13
+ const {
14
+ isLoading
15
+ } = talonProps;
31
16
 
32
17
  return (
33
18
  <div className='relative flex w-full justify-center items-center'>
19
+ <LoadingRequest isLoading={isLoading} />
34
20
  <GoogleSignInButton setToken={setJwtToken} />
35
- {/* <Button
36
- className="shadow-type-1 p-[14px] rounded-full w-[52px] h-[52px]"
37
- >
38
- <Image
39
- alt='facebook'
40
- className="relative"
41
- src={FacebookIcon}
42
- />
43
- </Button>
44
- <Button
45
- className="shadow-type-1 p-[14px] rounded-full w-[52px] h-[52px]"
46
- >
47
- <Image
48
- alt='instagram'
49
- className="relative"
50
- src={InstagramIcon}
51
- />
52
- </Button>
53
- <Button
54
- className="shadow-type-1 p-[14px] rounded-full w-[52px] h-[52px]"
55
- >
56
- <Image
57
- alt='wechat'
58
- className="relative"
59
- src={WechatIcon}
60
- />
61
- </Button>
62
- <Button
63
- className="shadow-type-1 p-[14px] rounded-full w-[52px] h-[52px]"
64
- >
65
- <Image
66
- alt='weibo'
67
- className="relative"
68
- src={WeiboIcon}
69
- />
70
- </Button> */}
71
21
  </div>
72
22
  )
73
23
  }
@@ -0,0 +1 @@
1
+ export {default} from './termsOfUse';