|
|
@@ -25,7 +25,7 @@ if (process.env.TARO_ENV == 'rn') {
|
|
|
useNavigation = require("@react-navigation/native").useNavigation
|
|
|
}
|
|
|
|
|
|
-const CheckAccess = memo((props: { record: any, count: number }) => {
|
|
|
+const CheckAccess = memo((props: { record: any, count: number, access: any }) => {
|
|
|
// export default function CheckAccess(props: { record: any, count: number }) {
|
|
|
const [showFastAlert, setShowFastAlert] = useState(false)
|
|
|
const [alertTitle, setAlertTitle] = useState('')
|
|
|
@@ -56,17 +56,18 @@ const CheckAccess = memo((props: { record: any, count: number }) => {
|
|
|
|
|
|
useEffect(() => {
|
|
|
var obj = props.record
|
|
|
- if (obj.access) {
|
|
|
+ if (props.access) {
|
|
|
global.ring = ring;
|
|
|
- const currentStatus = obj.access.current.qualification.status
|
|
|
- const preStatus = obj.access.previous.qualification.status
|
|
|
- if (preStatus == 'PROVISIONAL_QUALIFIED' && currentStatus == 'NOT_QUALIFIED' && obj.current_record.status == 'WAIT_FOR_START') {
|
|
|
- // lose(obj.access.current.qualification.condition)
|
|
|
- loseGain(obj.access)
|
|
|
+ const currentStatus = props.access.fast_sleep.current.qualification.status
|
|
|
+ const preStatus = props.access.fast_sleep.previous.qualification.status
|
|
|
+ if ((preStatus == 'PROVISIONAL_QUALIFIED' || preStatus == 'QUALIFIED_UNTIL_EXPIRE') &&
|
|
|
+ currentStatus == 'PENDING' &&
|
|
|
+ obj.current_record.status == 'WAIT_FOR_START') {
|
|
|
+ loseGain(props.access.fast_sleep)
|
|
|
}
|
|
|
else if (currentStatus == 'PROVISIONAL_QUALIFIED') {
|
|
|
Taro.setStorage({ key: 'showedDisqualifiedAlert', data: false })
|
|
|
- const { fast_expire, sleep_expire } = obj.access.current.qualification
|
|
|
+ const { fast_expire, sleep_expire } = props.access.fast_sleep.current.qualification
|
|
|
if (fast_expire && new Date().getTime() > fast_expire && obj.current_record.status == 'WAIT_FOR_START') {
|
|
|
if (global.indexPageRefresh) {
|
|
|
global.indexPageRefresh()
|
|
|
@@ -79,6 +80,15 @@ const CheckAccess = memo((props: { record: any, count: number }) => {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ else if (currentStatus == 'QUALIFIED_UNTIL_EXPIRE') {
|
|
|
+ Taro.setStorage({ key: 'showedDisqualifiedAlert', data: false })
|
|
|
+ const member_expire = props.access.member.expire
|
|
|
+ if (member_expire && new Date().getTime() > member_expire && obj.current_record.status == 'WAIT_FOR_START') {
|
|
|
+ if (global.indexPageRefresh) {
|
|
|
+ global.indexPageRefresh()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if (obj.current_record.status != 'WAIT_FOR_START') {
|
|
|
Taro.setStorage({ key: 'showedDisqualifiedAlert', data: false })
|
|
|
@@ -133,7 +143,7 @@ const CheckAccess = memo((props: { record: any, count: number }) => {
|
|
|
setKeepContent(false)
|
|
|
}
|
|
|
|
|
|
- global.paySuccess = ()=>{
|
|
|
+ global.paySuccess = () => {
|
|
|
cancelAction = null
|
|
|
confirmAction = null
|
|
|
setShowFastAlert(false)
|
|
|
@@ -173,7 +183,7 @@ const CheckAccess = memo((props: { record: any, count: number }) => {
|
|
|
setShowCancel(false)
|
|
|
setConfirmText(t('feature.check_access.non_access.btn'))
|
|
|
}
|
|
|
- else if (preStatus == 'NOT_QUALIFIED' && currentStatus == 'PROVISIONAL_QUALIFIED') {
|
|
|
+ else if (preStatus == 'NOT_QUALIFIED' && (currentStatus == 'PROVISIONAL_QUALIFIED' || currentStatus == 'QUALIFIED_UNTIL_EXPIRE')) {
|
|
|
|
|
|
const { streak_fast_current } = acccessData.current.qualification.condition
|
|
|
const reason = t('feature.check_access.gain_access.reason', { day: streak_fast_current })
|
|
|
@@ -203,7 +213,7 @@ const CheckAccess = memo((props: { record: any, count: number }) => {
|
|
|
// setConfirmText(`Upgrade to Fasting with Sleep\n(Offer Expiring in ${TimeFormatter.countdown(expire)})`)
|
|
|
}, 1000)
|
|
|
}
|
|
|
- else if (preStatus == 'PROVISIONAL_QUALIFIED' && currentStatus == 'PROVISIONAL_QUALIFIED') {
|
|
|
+ else if ((preStatus == 'PROVISIONAL_QUALIFIED' || preStatus == 'QUALIFIED_UNTIL_EXPIRE') && (currentStatus == 'PROVISIONAL_QUALIFIED' || currentStatus == 'QUALIFIED_UNTIL_EXPIRE')) {
|
|
|
const { streak_fast_current, streak_sleep_current } = acccessData.current.qualification.condition
|
|
|
if (global.ring.current_record.scenario == 'FAST') {
|
|
|
var expire = acccessData.current.qualification.fast_expire
|
|
|
@@ -236,7 +246,7 @@ const CheckAccess = memo((props: { record: any, count: number }) => {
|
|
|
setShowCancel(false)
|
|
|
setConfirmText(t('feature.check_access.stay_qualified.btn'))
|
|
|
}
|
|
|
- else if (preStatus == 'PROVISIONAL_QUALIFIED' && currentStatus == 'PENDING') {
|
|
|
+ else if ((preStatus == 'QUALIFIED_UNTIL_EXPIRE' || preStatus == 'PROVISIONAL_QUALIFIED') && currentStatus == 'PENDING') {
|
|
|
loseGain(acccessData);
|
|
|
}
|
|
|
}
|
|
|
@@ -248,10 +258,10 @@ const CheckAccess = memo((props: { record: any, count: number }) => {
|
|
|
|
|
|
function pay() {
|
|
|
jumpPage('', 'ProductList', navigation)
|
|
|
- setTimeout(()=>{
|
|
|
+ setTimeout(() => {
|
|
|
confirmAction = pay
|
|
|
cancelAction = changeFastScenaria
|
|
|
- },200)
|
|
|
+ }, 200)
|
|
|
}
|
|
|
|
|
|
async function loseGain(access) {
|
|
|
@@ -482,11 +492,11 @@ const CheckAccess = memo((props: { record: any, count: number }) => {
|
|
|
}
|
|
|
{
|
|
|
user.test_user && <View style={{ display: 'flex', flexDirection: 'column' }}>
|
|
|
- <Text style={{ color: '#fff', fontSize: 12 }}>current status:{props.record.access.current.qualification.status}</Text>
|
|
|
- <Text style={{ color: '#fff', fontSize: 12 }}>previous status:{props.record.access.previous.qualification.status}</Text>
|
|
|
- <Text style={{ color: '#fff', fontSize: 12 }}>trigger event:{props.record.access.current.qualification.trigger_event}</Text>
|
|
|
- <Text style={{ color: '#fff', fontSize: 12 }}>lost_access_total:{props.record.access.current.qualification.condition.lost_access_total}</Text>
|
|
|
- <Text style={{ color: '#fff', fontSize: 12 }}>streak_fast_min_required:{props.record.access.current.qualification.condition.streak_fast_min_required}</Text>
|
|
|
+ <Text style={{ color: '#fff', fontSize: 12 }}>current status:{props.access.fast_sleep.current.qualification.status}</Text>
|
|
|
+ <Text style={{ color: '#fff', fontSize: 12 }}>previous status:{props.access.fast_sleep.previous.qualification.status}</Text>
|
|
|
+ <Text style={{ color: '#fff', fontSize: 12 }}>trigger event:{props.access.fast_sleep.current.qualification.trigger_event}</Text>
|
|
|
+ <Text style={{ color: '#fff', fontSize: 12 }}>lost_access_total:{props.access.fast_sleep.current.qualification.condition.lost_access_total}</Text>
|
|
|
+ <Text style={{ color: '#fff', fontSize: 12 }}>streak_fast_min_required:{props.access.fast_sleep.current.qualification.condition.streak_fast_min_required}</Text>
|
|
|
</View>
|
|
|
}
|
|
|
|