Skip to content

Commit

Permalink
feat: handle unknown lender on profile page (#5455)
Browse files Browse the repository at this point in the history
  • Loading branch information
roger-in-kiva authored Aug 21, 2024
1 parent c17e0fd commit a4c1986
Show file tree
Hide file tree
Showing 4 changed files with 136 additions and 80 deletions.
86 changes: 86 additions & 0 deletions src/components/LenderProfile/LenderProfileWrapper.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
<template>
<div>
<lender-summary
:public-id="publicId"
:lender-info="lenderInfo"
/>

<lender-loans-list
:public-id="publicId"
:lender-info="lenderInfo"
/>

<lender-badges
:total-possible-badges="allAchievements.length"
:completed-achievements="completedAchievements"
:lender-info="lenderInfo"
/>

<lender-dedications-list
:public-id="publicId"
:lender-info="lenderInfo"
/>

<lender-teams-list
:public-id="publicId"
:lender-info="lenderInfo"
/>

<lender-invitees-list
:public-id="publicId"
:lender-info="lenderInfo"
/>

<lender-stats
:lender-info="lenderInfo"
/>

<lender-map
:lender-info="lenderInfo"
/>
</div>
</template>

<script>
import LenderSummary from '@/components/LenderProfile/LenderSummary';
import LenderLoansList from '@/components/LenderProfile/LenderLoansList';
import LenderStats from '@/components/LenderProfile/LenderStats';
import LenderTeamsList from '@/components/LenderProfile/LenderTeamsList';
import LenderBadges from '@/components/LenderProfile/LenderBadges';
import LenderInviteesList from '@/components/LenderProfile/LenderInviteesList';
import LenderDedicationsList from '@/components/LenderProfile/LenderDedicationsList';
import LenderMap from '@/components/LenderProfile/LenderMap';
export default {
name: 'LenderProfileWrapper',
props: {
publicId: {
type: String,
required: true,
},
lenderInfo: {
type: Object,
default: () => ({}),
required: true,
},
allAchievements: {
type: Array,
default: () => ([]),
},
completedAchievements: {
type: Array,
default: () => ([]),
},
},
components: {
LenderSummary,
LenderLoansList,
LenderStats,
LenderTeamsList,
LenderBadges,
LenderInviteesList,
LenderDedicationsList,
LenderMap,
},
};
</script>
33 changes: 33 additions & 0 deletions src/components/NotFound/NotFoundWrapper.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<template>
<div>
<h2 class="tw-text-center tw-mb-2">
The page you're looking for has gone missing!
</h2>
<p class="tw-text-center">
Please double check the spelling of the URL, or try one of these links:
</p>

<div class="tw-flex tw-flex-col tw-text-center tw-my-5 tw-gap-y-2 tw-text-subhead">
<router-link to="/">
Home
</router-link>
<router-link to="/lend">
Lend
</router-link>
<router-link to="/borrow">
Borrow
</router-link>
<router-link to="/blog">
Blog
</router-link>
<router-link to="/portfolio">
My portfolio
</router-link>
</div>

<p class="tw-text-center">
If you need us, we’re always available via email at
<a href="mailto:contactus@kiva.org">contactus@kiva.org</a>.
</p>
</div>
</template>
65 changes: 14 additions & 51 deletions src/pages/LenderProfile/LenderProfile.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,43 +3,15 @@
<kv-page-container
class="tw-pt-4 tw-pb-8"
>
<lender-summary
<lender-profile-wrapper
v-if="lenderIsPublic"
:public-id="publicId"
:lender-info="lenderInfo"
/>

<lender-loans-list
:public-id="publicId"
:lender-info="lenderInfo"
/>

<lender-badges
:total-possible-badges="allAchievements.length"
:all-achievements="allAchievements"
:completed-achievements="completedAchievements"
:lender-info="lenderInfo"
/>

<lender-dedications-list
:public-id="publicId"
:lender-info="lenderInfo"
/>

<lender-teams-list
:public-id="publicId"
:lender-info="lenderInfo"
/>

<lender-invitees-list
:public-id="publicId"
:lender-info="lenderInfo"
/>

<lender-stats
:lender-info="lenderInfo"
/>

<lender-map
:lender-info="lenderInfo"
<not-found-wrapper
v-else
/>
</kv-page-container>
</www-page>
Expand All @@ -48,15 +20,9 @@
<script>
import logReadQueryError from '@/util/logReadQueryError';
import WwwPage from '@/components/WwwFrame/WwwPage';
import LenderSummary from '@/components/LenderProfile/LenderSummary';
import lenderPublicProfileQuery from '@/graphql/query/lenderPublicProfile.graphql';
import LenderLoansList from '@/components/LenderProfile/LenderLoansList';
import LenderStats from '@/components/LenderProfile/LenderStats';
import LenderTeamsList from '@/components/LenderProfile/LenderTeamsList';
import LenderBadges from '@/components/LenderProfile/LenderBadges';
import LenderInviteesList from '@/components/LenderProfile/LenderInviteesList';
import LenderDedicationsList from '@/components/LenderProfile/LenderDedicationsList';
import LenderMap from '@/components/LenderProfile/LenderMap';
import LenderProfileWrapper from '@/components/LenderProfile/LenderProfileWrapper';
import NotFoundWrapper from '@/components/NotFound/NotFoundWrapper';
import KvPageContainer from '~/@kiva/kv-components/vue/KvPageContainer';
export default {
Expand All @@ -65,14 +31,8 @@ export default {
components: {
WwwPage,
KvPageContainer,
LenderSummary,
LenderLoansList,
LenderStats,
LenderTeamsList,
LenderBadges,
LenderInviteesList,
LenderDedicationsList,
LenderMap,
LenderProfileWrapper,
NotFoundWrapper,
},
metaInfo() {
return {
Expand Down Expand Up @@ -140,6 +100,7 @@ export default {
lenderInfo: {},
publicId: '',
allAchievements: [],
lenderIsPublic: false,
};
},
apollo: {
Expand Down Expand Up @@ -191,8 +152,10 @@ export default {
} catch (e) {
logReadQueryError(e, 'LenderProfile lenderPublicProfileQuery');
}
this.lenderInfo = cachedLenderInfo.community?.lender ?? {};
this.allAchievements = cachedLenderInfo.userAchievementProgress?.achievementProgress ?? [];
this.lenderInfo = cachedLenderInfo?.community?.lender ?? {};
this.allAchievements = cachedLenderInfo?.userAchievementProgress?.achievementProgress ?? [];
this.lenderIsPublic = !!this.lenderInfo?.id;
}
};
</script>
32 changes: 3 additions & 29 deletions src/pages/NotFound.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,48 +3,22 @@
<kv-page-container
class="tw-pt-4 tw-pb-8"
>
<h2 class="tw-text-center tw-mb-2">
The page you're looking for has gone missing!
</h2>
<p class="tw-text-center">
Please double check the spelling of the URL, or try one of these links:
</p>

<div class="tw-flex tw-flex-col tw-text-center tw-my-5 tw-gap-y-2 tw-text-subhead">
<router-link to="/">
Home
</router-link>
<router-link to="/lend">
Lend
</router-link>
<router-link to="/borrow">
Borrow
</router-link>
<router-link to="/blog">
Blog
</router-link>
<router-link to="/portfolio">
My portfolio
</router-link>
</div>

<p class="tw-text-center">
If you need us, we’re always available via email at
<a href="mailto:contactus@kiva.org">contactus@kiva.org</a>.
</p>
<not-found-wrapper />
</kv-page-container>
</www-page>
</template>

<script>
import WwwPage from '@/components/WwwFrame/WwwPage';
import NotFoundWrapper from '@/components/NotFound/NotFoundWrapper';
import KvPageContainer from '~/@kiva/kv-components/vue/KvPageContainer';
export default {
name: 'NotFound',
components: {
WwwPage,
KvPageContainer,
NotFoundWrapper,
},
beforeRouteEnter(to, from, next) {
if (typeof window !== 'undefined') {
Expand Down

0 comments on commit a4c1986

Please sign in to comment.