Skip to content

Commit 0977a11

Browse files
authored
Merge pull request #5883 from kiva/atb-should-check-progress-from-loans-in-basket-MP-1424
2 parents ea82210 + 0ec6034 commit 0977a11

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/components/WwwFrame/Header/KvAtbModalContainer.vue

+22-1
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ import useBadgeData, {
7777
import IconChoice from '#src/assets/icons/inline/achievements/icon_choice.svg';
7878
import _throttle from 'lodash/throttle';
7979
import EquityBadge from '#src/assets/icons/inline/achievements/equity-badge.svg';
80+
import basketItemsQuery from '#src/graphql/query/basketItems.graphql';
8081
8182
const BASKET_LIMIT_SIZE_FOR_EXP = 3;
8283
const PHOTO_PATH = 'https://www-kiva-org.freetls.fastly.net/img/';
@@ -91,6 +92,7 @@ const categoryNames = {
9192
9293
const $kvTrackEvent = inject('$kvTrackEvent');
9394
const apollo = inject('apollo');
95+
const cookieStore = inject('cookieStore');
9496
const router = useRouter();
9597
9698
const {
@@ -110,6 +112,7 @@ const { addedLoan } = toRefs(props);
110112
111113
const myKivaExperimentEnabled = ref(false);
112114
const userData = ref({});
115+
const basketData = ref([]);
113116
const contributingAchievements = ref([]);
114117
const showModalContent = ref(false);
115118
const headerBottomPosition = ref(0);
@@ -185,6 +188,23 @@ const fetchUserData = async () => {
185188
});
186189
};
187190
191+
const fetchBasketData = async () => {
192+
await apollo.query({
193+
query: basketItemsQuery,
194+
variables: {
195+
basketId: cookieStore.get('kvbskt') || null,
196+
},
197+
}).then(({ data }) => {
198+
basketData.value = data?.shop?.basket?.items?.values ?? [];
199+
}).catch(e => {
200+
logFormatter(e, 'Modal ATB Basket Data');
201+
});
202+
};
203+
204+
const loansIdsInBasket = computed(() => {
205+
return basketData.value.map(item => item.id);
206+
});
207+
188208
const isFirstLoan = computed(() => {
189209
return isGuest.value || !userData.value?.my?.loans?.totalCount;
190210
});
@@ -242,7 +262,8 @@ const fetchPostCheckoutAchievements = async loanIds => {
242262
243263
watch(addedLoan, async () => {
244264
if (myKivaExperimentEnabled.value && !isGuest.value) {
245-
fetchPostCheckoutAchievements([addedLoan.value?.id]);
265+
await fetchBasketData();
266+
fetchPostCheckoutAchievements([...loansIdsInBasket.value, addedLoan.value?.id]);
246267
} else if (addedLoan.value?.basketSize < BASKET_LIMIT_SIZE_FOR_EXP) {
247268
modalVisible.value = true;
248269
}

0 commit comments

Comments
 (0)