mirror of
https://github.com/LukeHagar/developer.sailpoint.com.git
synced 2025-12-10 04:19:42 +00:00
added pagination logic to ambassador page
This commit is contained in:
@@ -79,6 +79,13 @@ const config = {
|
||||
darkTheme: darkCodeTheme,
|
||||
additionalLanguages: ['http', 'java', 'ruby', 'php', 'csharp'],
|
||||
},
|
||||
mermaid: {
|
||||
options: {
|
||||
er: {
|
||||
layoutDirection: 'RL'
|
||||
}
|
||||
},
|
||||
}
|
||||
}),
|
||||
|
||||
plugins: plugins,
|
||||
|
||||
@@ -12,23 +12,35 @@ export default function AmbassadorCards({
|
||||
const [loadingCards, setLoadingCards] = React.useState(true);
|
||||
|
||||
const getPosts = async () => {
|
||||
const data = await getAmbassadors(expert);
|
||||
|
||||
let data = await getAmbassadors(expert, 1, 0);
|
||||
const resultset = []
|
||||
if (data.members) {
|
||||
const memberDetails = await getAmbassadorDetails(data.members.map(item => item.id))
|
||||
for (const member of data.members) {
|
||||
const memberDetail = memberDetails.users.filter(item => item.id === member.id)[0]
|
||||
if (member.avatar_template.includes("developer.sailpoint.com") && memberDetail.bio_excerpt && memberDetail.bio_excerpt.length > 150) {
|
||||
resultset.push(await getMemberList(member, memberDetail))
|
||||
}
|
||||
|
||||
if (data.meta) {
|
||||
let count = 0
|
||||
while (count < data.meta.total) {
|
||||
data = await getAmbassadors(expert, 50, count);
|
||||
count += 50
|
||||
if (data.members) {
|
||||
const memberDetails = await getAmbassadorDetails(data.members.map(item => item.id))
|
||||
for (const member of data.members) {
|
||||
const memberDetail = memberDetails.users.filter(item => item.id === member.id)[0]
|
||||
if (member.avatar_template.includes("developer.sailpoint.com") && memberDetail.bio_excerpt && memberDetail.bio_excerpt.length > 150) {
|
||||
resultset.push(await getMemberList(member, memberDetail))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
resultset.sort((a, b) => a.date - b.date)
|
||||
setCardData(resultset);
|
||||
|
||||
} else {
|
||||
setCardData(undefined);
|
||||
setLoadingCards(false);
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
|
||||
resultset.sort((a, b) => a.date - b.date)
|
||||
setCardData(resultset);
|
||||
|
||||
setLoadingCards(false);
|
||||
};
|
||||
|
||||
|
||||
@@ -10,16 +10,16 @@ export async function getTopPosts() {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
export async function getAmbassadors(expert) {
|
||||
export async function getAmbassadors(expert, limit, offset) {
|
||||
try {
|
||||
if (expert) {
|
||||
const response = await fetch(
|
||||
discourseBaseURL() + 'groups/ambassador_expert/members.json',
|
||||
discourseBaseURL() + 'groups/ambassador_expert/members.json?limit=' + limit + '&offset=' + offset,
|
||||
);
|
||||
return await response.json();
|
||||
} else {
|
||||
const response = await fetch(
|
||||
discourseBaseURL() + 'groups/ambassador/members.json',
|
||||
discourseBaseURL() + 'groups/ambassador/members.json?limit=' + limit + '&offset=' + offset,
|
||||
);
|
||||
return await response.json();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user