@anker-in/campaign-ui 0.4.4 → 0.4.5-beta.2
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/cjs/components/credits/context/hooks/useActivities.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useActivities.js.map +3 -3
- package/dist/cjs/components/credits/context/hooks/useAlpcFetch.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useAlpcFetch.js.map +3 -3
- package/dist/cjs/components/credits/context/hooks/useCountries.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useCountries.js.map +2 -2
- package/dist/cjs/components/credits/context/hooks/useMyRewards.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useMyRewards.js.map +3 -3
- package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.js.map +3 -3
- package/dist/cjs/components/credits/context/hooks/useRedeemableList.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useRedeemableList.js.map +2 -2
- package/dist/cjs/components/credits/context/hooks/useUploadReceipt.d.ts +0 -8
- package/dist/cjs/components/credits/context/hooks/useUploadReceipt.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useUploadReceipt.js.map +3 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js.map +3 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal.js.map +3 -3
- package/dist/cjs/components/credits/modal/SubscribeModal.js +1 -1
- package/dist/cjs/components/credits/modal/SubscribeModal.js.map +3 -3
- package/dist/cjs/components/registration/authCodeActivate/index.js +1 -1
- package/dist/cjs/components/registration/authCodeActivate/index.js.map +3 -3
- package/dist/esm/components/credits/context/hooks/useActivities.js +1 -1
- package/dist/esm/components/credits/context/hooks/useActivities.js.map +3 -3
- package/dist/esm/components/credits/context/hooks/useAlpcFetch.js +1 -1
- package/dist/esm/components/credits/context/hooks/useAlpcFetch.js.map +3 -3
- package/dist/esm/components/credits/context/hooks/useCountries.js +1 -1
- package/dist/esm/components/credits/context/hooks/useCountries.js.map +2 -2
- package/dist/esm/components/credits/context/hooks/useMyRewards.js +1 -1
- package/dist/esm/components/credits/context/hooks/useMyRewards.js.map +3 -3
- package/dist/esm/components/credits/context/hooks/useRedeemAndBuy.js +1 -1
- package/dist/esm/components/credits/context/hooks/useRedeemAndBuy.js.map +3 -3
- package/dist/esm/components/credits/context/hooks/useRedeemableList.js +1 -1
- package/dist/esm/components/credits/context/hooks/useRedeemableList.js.map +2 -2
- package/dist/esm/components/credits/context/hooks/useUploadReceipt.d.ts +0 -8
- package/dist/esm/components/credits/context/hooks/useUploadReceipt.js +1 -1
- package/dist/esm/components/credits/context/hooks/useUploadReceipt.js.map +3 -3
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.js.map +3 -3
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal.js.map +3 -3
- package/dist/esm/components/credits/modal/SubscribeModal.js +1 -1
- package/dist/esm/components/credits/modal/SubscribeModal.js.map +3 -3
- package/dist/esm/components/registration/authCodeActivate/index.js +1 -1
- package/dist/esm/components/registration/authCodeActivate/index.js.map +3 -3
- package/package.json +1 -1
- package/src/components/credits/context/hooks/useActivities.ts +5 -4
- package/src/components/credits/context/hooks/useAlpcFetch.ts +30 -10
- package/src/components/credits/context/hooks/useCountries.ts +7 -2
- package/src/components/credits/context/hooks/useMyRewards.ts +8 -4
- package/src/components/credits/context/hooks/useRedeemAndBuy.ts +3 -2
- package/src/components/credits/context/hooks/useRedeemableList.ts +28 -23
- package/src/components/credits/context/hooks/useUploadReceipt.tsx +28 -23
- package/src/components/credits/creditsRedeemList/RedeemCouponModal.tsx +3 -2
- package/src/components/credits/creditsRedeemList/RedeemVirtualProductModal.tsx +3 -2
- package/src/components/credits/modal/SubscribeModal.tsx +4 -6
- package/src/components/registration/authCodeActivate/index.tsx +8 -6
|
@@ -23,7 +23,7 @@ function useRedeemableList(props?: { consumeType: AlpcConsumeType }) {
|
|
|
23
23
|
{
|
|
24
24
|
data: { consume_credit_rules: ConsumeCreditRuleResponse[] }
|
|
25
25
|
},
|
|
26
|
-
{ consume_type?: AlpcConsumeType
|
|
26
|
+
{ consume_type?: AlpcConsumeType; user_id?: string }
|
|
27
27
|
>({
|
|
28
28
|
url: `/v1/credit/consume_credit_rules`,
|
|
29
29
|
initData: {
|
|
@@ -34,32 +34,37 @@ function useRedeemableList(props?: { consumeType: AlpcConsumeType }) {
|
|
|
34
34
|
},
|
|
35
35
|
})
|
|
36
36
|
|
|
37
|
-
const getRedeemableList = useCallback(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
{
|
|
44
|
-
onSuccess(responseData) {
|
|
45
|
-
console.log('responseData', responseData)
|
|
46
|
-
let list = responseData.data.consume_credit_rules || []
|
|
47
|
-
// let cList = list.filter(i => i.consume_type == 1) || []
|
|
48
|
-
// let pList = list.filter(i => i.consume_type == 2) || []
|
|
49
|
-
// cList = cList.sort((prev, next) => prev.consume_credits - next.consume_credits)
|
|
50
|
-
// pList = pList.sort((prev, next) => prev.consume_credits - next.consume_credits)
|
|
51
|
-
// const resultList = cList.concat(pList)
|
|
52
|
-
setRedeemableList(list)
|
|
37
|
+
const getRedeemableList = useCallback(
|
|
38
|
+
(props?: { consumeType?: AlpcConsumeType }) => {
|
|
39
|
+
trigger(
|
|
40
|
+
{
|
|
41
|
+
user_id: profile?.user_id,
|
|
42
|
+
...(props?.consumeType && { consume_type: props.consumeType }),
|
|
53
43
|
},
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
44
|
+
{
|
|
45
|
+
onSuccess(responseData) {
|
|
46
|
+
console.log('responseData', responseData)
|
|
47
|
+
const data = responseData?.data || responseData
|
|
48
|
+
let list = data?.consume_credit_rules || []
|
|
49
|
+
// let cList = list.filter(i => i.consume_type == 1) || []
|
|
50
|
+
// let pList = list.filter(i => i.consume_type == 2) || []
|
|
51
|
+
// cList = cList.sort((prev, next) => prev.consume_credits - next.consume_credits)
|
|
52
|
+
// pList = pList.sort((prev, next) => prev.consume_credits - next.consume_credits)
|
|
53
|
+
// const resultList = cList.concat(pList)
|
|
54
|
+
setRedeemableList(list)
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
},
|
|
59
|
+
[profile, trigger, locale]
|
|
60
|
+
)
|
|
57
61
|
|
|
58
62
|
useEffect(() => {
|
|
59
|
-
if (!isLoadingProfile) {
|
|
60
|
-
|
|
63
|
+
if (!brand || isLoadingProfile) {
|
|
64
|
+
return
|
|
61
65
|
}
|
|
62
|
-
|
|
66
|
+
getRedeemableList({ consumeType: props?.consumeType })
|
|
67
|
+
}, [getRedeemableList, isLoadingProfile, brand])
|
|
63
68
|
|
|
64
69
|
return {
|
|
65
70
|
listLoading,
|
|
@@ -1,29 +1,34 @@
|
|
|
1
1
|
import useSWRMutation from 'swr/mutation'
|
|
2
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
2
3
|
|
|
3
|
-
export const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
4
|
+
export const useUploadReceipt = () => {
|
|
5
|
+
const { locale } = useHeadlessContext()
|
|
6
|
+
|
|
7
|
+
const uploadReceipt = async (
|
|
8
|
+
_: any,
|
|
9
|
+
{ arg: { orderName } }: { arg: { orderName: string } }
|
|
10
|
+
): Promise<{
|
|
11
|
+
ok: boolean
|
|
12
|
+
code: number
|
|
13
|
+
}> => {
|
|
14
|
+
const response = await fetch(`/api/multipass/mktsrv/v1/credit/upload_third_party_order`, {
|
|
15
|
+
credentials: 'include',
|
|
16
|
+
method: 'POST',
|
|
17
|
+
headers: {
|
|
18
|
+
'Content-Type': 'application/json',
|
|
19
|
+
'current-language': locale,
|
|
20
|
+
},
|
|
21
|
+
body: JSON.stringify({
|
|
22
|
+
order_name: orderName,
|
|
23
|
+
}),
|
|
24
|
+
})
|
|
25
|
+
const result = await response.json()
|
|
26
|
+
const { data } = result
|
|
27
|
+
return {
|
|
28
|
+
ok: result?.code === 0 || data?.code === 0,
|
|
29
|
+
code: result?.code ?? data?.code,
|
|
30
|
+
}
|
|
24
31
|
}
|
|
25
|
-
}
|
|
26
32
|
|
|
27
|
-
export const useUploadReceipt = () => {
|
|
28
33
|
return useSWRMutation('/api/multipass/mktsrv/v1/credit/upload_third_party_order', uploadReceipt)
|
|
29
34
|
}
|
|
@@ -32,8 +32,9 @@ function RedeemCouponModal({
|
|
|
32
32
|
return
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const data = responseData?.data || responseData
|
|
36
|
+
if (data?.success) {
|
|
37
|
+
setCouponCode(data.coupon_code)
|
|
37
38
|
fetchCreditInfo(profile?.user_id)
|
|
38
39
|
} else {
|
|
39
40
|
let errorMsg
|
|
@@ -40,8 +40,9 @@ function RedeemVirtualProductModal({
|
|
|
40
40
|
return
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
const data = responseData?.data || responseData
|
|
44
|
+
if (data?.id) {
|
|
45
|
+
setGiftCardId(data.id)
|
|
45
46
|
fetchCreditInfo(profile?.user_id)
|
|
46
47
|
} else {
|
|
47
48
|
handleRedeemError(responseData.code)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from 'react'
|
|
2
|
-
import { useRouter } from 'next/router'
|
|
3
2
|
import { Button, Checkbox, Picture, Text } from '@anker-in/headless-ui'
|
|
4
3
|
import { classNames, fetcher, gaTrack, useHeadlessContext } from '@anker-in/lib'
|
|
5
4
|
import Cookies from 'js-cookie'
|
|
@@ -43,9 +42,8 @@ const getAdCookie = () => {
|
|
|
43
42
|
}
|
|
44
43
|
|
|
45
44
|
export function CreditsSubscribeModal({ copy, onSuccess, ...props }: CreditsSubscribeModalProps) {
|
|
46
|
-
const { brand } = useHeadlessContext()
|
|
45
|
+
const { brand, locale } = useHeadlessContext()
|
|
47
46
|
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
48
|
-
const { locale } = useRouter()
|
|
49
47
|
const [policy, setPolicy] = useState(false)
|
|
50
48
|
const [email, setEmail] = useState('')
|
|
51
49
|
const [errorMessage, setErrorMessage] = useState('')
|
|
@@ -137,7 +135,7 @@ export function CreditsSubscribeModal({ copy, onSuccess, ...props }: CreditsSubs
|
|
|
137
135
|
animationClassName="md:translate-y-[100vh]"
|
|
138
136
|
{...props}
|
|
139
137
|
>
|
|
140
|
-
<div className="flex flex-col gap-[16px] text-center
|
|
138
|
+
<div className="min-l:px-[16px] flex flex-col gap-[16px] text-center">
|
|
141
139
|
<div>
|
|
142
140
|
<Text className={classNames('mb-[24px] text-[22px] font-bold')} html={copy.title}></Text>
|
|
143
141
|
</div>
|
|
@@ -173,7 +171,7 @@ export function CreditsSubscribeModal({ copy, onSuccess, ...props }: CreditsSubs
|
|
|
173
171
|
>
|
|
174
172
|
<Picture
|
|
175
173
|
source="https://cdn.shopify.com/s/files/1/0512/8568/8505/files/icon_email.png?v=1697527383"
|
|
176
|
-
className="
|
|
174
|
+
className="size-[24px]"
|
|
177
175
|
alt="email"
|
|
178
176
|
/>
|
|
179
177
|
</Button>
|
|
@@ -181,7 +179,7 @@ export function CreditsSubscribeModal({ copy, onSuccess, ...props }: CreditsSubs
|
|
|
181
179
|
<div className="flex w-full">
|
|
182
180
|
<Checkbox checked={policy} onCheckedChange={() => setPolicy(!policy)} required className="border-[#1d1d1f]" />
|
|
183
181
|
<label
|
|
184
|
-
className="
|
|
182
|
+
className="ml-2 text-left text-[14px] font-semibold text-[#777] [&_a]:underline"
|
|
185
183
|
dangerouslySetInnerHTML={{
|
|
186
184
|
__html: copy?.policy || '',
|
|
187
185
|
}}
|
|
@@ -48,10 +48,11 @@ export const AuthCodeActivate: React.FC<AuthCodeActivateProps> = ({ copy }) => {
|
|
|
48
48
|
}, [focusIndex])
|
|
49
49
|
|
|
50
50
|
useEffect(() => {
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
const token = sendEmailData?.data?.data?.active_token ?? sendEmailData?.data?.active_token
|
|
52
|
+
if (token) {
|
|
53
|
+
setActiveToken(token)
|
|
53
54
|
}
|
|
54
|
-
}, [sendEmailData?.data?.data?.active_token])
|
|
55
|
+
}, [sendEmailData?.data?.data?.active_token, sendEmailData?.data?.active_token])
|
|
55
56
|
|
|
56
57
|
useEffect(() => {
|
|
57
58
|
setIsSendingActivateEmail(isSendingEmail)
|
|
@@ -184,7 +185,8 @@ export const AuthCodeActivate: React.FC<AuthCodeActivateProps> = ({ copy }) => {
|
|
|
184
185
|
}, 3000)
|
|
185
186
|
}
|
|
186
187
|
} else {
|
|
187
|
-
|
|
188
|
+
const errorCode = data?.data?.error_code ?? data?.error_code
|
|
189
|
+
if (errorCode === '104') {
|
|
188
190
|
if (onAuthSuccess) {
|
|
189
191
|
onAuthSuccess()
|
|
190
192
|
} else {
|
|
@@ -193,9 +195,9 @@ export const AuthCodeActivate: React.FC<AuthCodeActivateProps> = ({ copy }) => {
|
|
|
193
195
|
window.location.reload()
|
|
194
196
|
}, 3000)
|
|
195
197
|
}
|
|
196
|
-
} else if (
|
|
198
|
+
} else if (errorCode === '142') {
|
|
197
199
|
setError(copy?.incorrectCodeError || 'Invalid verification code.')
|
|
198
|
-
} else if (
|
|
200
|
+
} else if (errorCode === '154') {
|
|
199
201
|
setError(copy?.expiredCodeMessage || '')
|
|
200
202
|
} else {
|
|
201
203
|
setError(copy?.sendEmailErrorMessage || '')
|