Pinafore-Web-Client-Frontend/src/routes/_utils/createFilterFunction.js

35 lines
819 B
JavaScript

// create a function for filtering timeline item summaries
export const createFilterFunction = (
showReblogs, showReplies, showFollows, showFavs, showMentions, showPolls,
showSubscriptions, wordFilterContext
) => {
return item => {
if (item.filterContexts && item.filterContexts.includes(wordFilterContext)) {
return false
}
switch (item.type) {
case 'poll':
return showPolls
case 'favourite':
return showFavs
case 'reblog':
return showReblogs
case 'mention':
return showMentions
case 'follow':
return showFollows
case 'status':
return showSubscriptions
}
if (item.reblogId) {
return showReblogs
} else if (item.replyId) {
return showReplies
} else {
return true
}
}
}