@@ -75,13 +75,13 @@ const myKivaFlagEnabled = ref(false);
75
75
const tierTable = ref ({});
76
76
const milestonesProgress = ref ({});
77
77
const hasEverLoggedIn = ref (false );
78
+ const basketTotal = ref (0 );
78
79
79
80
const basketCount = computed (() => {
80
81
return addedLoan .value ? .basketSize ?? 0 ;
81
82
});
82
83
83
84
const isGuest = computed (() => ! userData .value ? .my );
84
- const hasUserBalance = computed (() => Boolean (Math .floor (userData .value ? .my ? .userAccount ? .balance )));
85
85
86
86
const resetModal = () => {
87
87
showModalContent .value = false ;
@@ -116,6 +116,9 @@ const fetchBasketData = async () => {
116
116
},
117
117
}).then (({ data }) => {
118
118
basketData .value = data? .shop ? .basket ? .items ? .values ?? [];
119
+ basketTotal .value = basketData .value .reduce ((total , item ) => {
120
+ return total + (parseFloat (item .price ) || 0 );
121
+ }, 0 );
119
122
}).catch (e => {
120
123
logFormatter (e, ' Modal ATB Basket Data' );
121
124
});
@@ -126,6 +129,11 @@ const loansIdsInBasket = computed(() => {
126
129
return basketData .value .filter (item => item .__typename === ' LoanReservation' ).map (item => item .id );
127
130
});
128
131
132
+ const showBasedOnUserBalance = computed (() => {
133
+ const userBalance = Math .floor (userData .value ? .my ? .userAccount ? .balance ?? 0 );
134
+ return userBalance - basketTotal .value < 25 ;
135
+ });
136
+
129
137
const isFirstLoan = computed (() => {
130
138
return myKivaExperimentEnabled .value
131
139
&& ((isGuest .value && ! hasEverLoggedIn .value ) || (! isGuest .value && ! userData .value ? .my ? .loans ? .totalCount ))
@@ -174,7 +182,7 @@ const fetchPostCheckoutAchievements = async loanIds => {
174
182
oneAwayText .value = ` ${ target - 1 } of ${ target} ` ;
175
183
showModalContent .value = true ;
176
184
modalVisible .value = true ;
177
- } else if ((basketSize < BASKET_LIMIT_SIZE_FOR_EXP || achievementReached) && ! hasUserBalance .value ) {
185
+ } else if ((basketSize < BASKET_LIMIT_SIZE_FOR_EXP || achievementReached) && showBasedOnUserBalance .value ) {
178
186
showModalContent .value = !! contributingAchievements .value .length ;
179
187
modalVisible .value = true ;
180
188
}
@@ -202,7 +210,7 @@ watch(addedLoan, async () => {
202
210
if (myKivaExperimentEnabled .value && ! isGuest .value ) {
203
211
await fetchBasketData ();
204
212
fetchPostCheckoutAchievements (loansIdsInBasket .value );
205
- } else if (addedLoan .value ? .basketSize < BASKET_LIMIT_SIZE_FOR_EXP && ! hasUserBalance . value ) {
213
+ } else if (addedLoan .value ? .basketSize < BASKET_LIMIT_SIZE_FOR_EXP ) {
206
214
modalVisible .value = true ;
207
215
}
208
216
});
0 commit comments