diff --git a/src/components/MyKiva/BadgesSection.vue b/src/components/MyKiva/BadgesSection.vue
new file mode 100644
index 0000000000..6ce6401ebf
--- /dev/null
+++ b/src/components/MyKiva/BadgesSection.vue
@@ -0,0 +1,128 @@
+
+
+
+
+ {{ getBadgeTitle(badge) }}
+
+
+
+
+
+
+ Level {{ badge.level }}/5
+
+
+
+
+
+
+
+
+
+
diff --git a/src/graphql/query/contentfulEntries.graphql b/src/graphql/query/contentfulEntries.graphql
index e8870e5f54..d3016e5197 100644
--- a/src/graphql/query/contentfulEntries.graphql
+++ b/src/graphql/query/contentfulEntries.graphql
@@ -4,12 +4,14 @@ query contentfulEntries(
$contentType: String!
$contentKey: String
$preview: Boolean
+ $limit: Int
) {
contentful {
entries(
contentType: $contentType
contentKey: $contentKey
preview: $preview
+ limit: $limit
)
}
}
diff --git a/src/graphql/query/userAchievementProgress.graphql b/src/graphql/query/userAchievementProgress.graphql
new file mode 100644
index 0000000000..82feb9edc6
--- /dev/null
+++ b/src/graphql/query/userAchievementProgress.graphql
@@ -0,0 +1,16 @@
+query UserAchievementProgress {
+ userAchievementProgress {
+ id
+ tieredLendingAchievements {
+ id
+ status
+ totalProgressToAchievement
+ tiers {
+ target
+ tierStatement
+ completedDate
+ learnMoreURL
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/pages/Portfolio/MyKiva/MyKivaPage.vue b/src/pages/Portfolio/MyKiva/MyKivaPage.vue
index 25047cddf0..95815b4cb9 100644
--- a/src/pages/Portfolio/MyKiva/MyKivaPage.vue
+++ b/src/pages/Portfolio/MyKiva/MyKivaPage.vue
@@ -57,12 +57,16 @@
BADGES AND ACHIEVEMENTS
-
-
+ My impact journeys
+
+
!lender.value);
@@ -133,6 +142,30 @@ const handleSelectedLoan = loan => {
fetchLoanUpdates(activeLoan.value.id);
};
+const fetchUserAchievements = () => {
+ apollo.query({ query: userAchievementProgressQuery })
+ .then(result => {
+ userAchievements.value = result.data?.userAchievementProgress?.tieredLendingAchievements ?? [];
+ }).catch(e => {
+ logReadQueryError(e, 'MyKivaPage userAchievementProgressQuery');
+ });
+};
+
+const fetchBadgesData = () => {
+ apollo.query({
+ query: contentfulEntriesQuery,
+ variables: {
+ contentType: 'challenge',
+ limit: 200,
+ }
+ })
+ .then(result => {
+ badgesData.value = result.data?.contentful?.entries?.items ?? [];
+ }).catch(e => {
+ logReadQueryError(e, 'MyKivaPage contentfulEntriesQuery');
+ });
+};
+
apollo.query({ query: myKivaQuery })
.then(result => {
userInfo.value = result.data?.my ?? {};
@@ -157,5 +190,8 @@ onMounted(() => {
);
$kvTrackEvent('portfolio', 'view', 'new-my-kiva');
+
+ fetchBadgesData();
+ fetchUserAchievements();
});