sort votes by most Yes & least No

This commit is contained in:
QuickMythril 2025-02-03 01:46:31 -05:00
parent 7cfd0357b5
commit 1aa4985375

View File

@ -289,19 +289,19 @@ const applyVoteSortingData = async (cards, ascending = true, boardType = 'minter
const pollName = card.decryptedCardData?.poll const pollName = card.decryptedCardData?.poll
if (!pollName) { if (!pollName) {
// No poll => no votes // No poll => no votes
card._adminVotes = 0
card._adminYes = 0 card._adminYes = 0
card._minterVotes = 0 card._adminNo = 0
card._minterYes = 0 card._minterYes = 0
card._minterNo = 0
continue continue
} }
// Fetch poll results // Fetch poll results
const pollResults = await fetchPollResults(pollName) const pollResults = await fetchPollResults(pollName)
if (!pollResults) { if (!pollResults) {
card._adminVotes = 0
card._adminYes = 0 card._adminYes = 0
card._minterVotes = 0 card._adminNo = 0
card._minterYes = 0 card._minterYes = 0
card._minterNo = 0
continue continue
} }
// Process them // Process them
@ -312,10 +312,10 @@ const applyVoteSortingData = async (cards, ascending = true, boardType = 'minter
card.decryptedCardData.creator, card.decryptedCardData.creator,
card.card.identifier card.card.identifier
) )
card._adminVotes = adminYes + adminNo
card._adminYes = adminYes card._adminYes = adminYes
card._minterVotes = minterYes + minterNo card._adminNo = adminNo
card._minterYes = minterYes card._minterYes = minterYes
card._minterNo = minterNo
} else { } else {
const cardDataResponse = await qortalRequest({ const cardDataResponse = await qortalRequest({
action: "FETCH_QDN_RESOURCE", action: "FETCH_QDN_RESOURCE",
@ -324,10 +324,10 @@ const applyVoteSortingData = async (cards, ascending = true, boardType = 'minter
identifier: card.identifier, identifier: card.identifier,
}) })
if (!cardDataResponse || !cardDataResponse.poll) { if (!cardDataResponse || !cardDataResponse.poll) {
card._adminVotes = 0
card._adminYes = 0 card._adminYes = 0
card._minterVotes = 0 card._adminNo = 0
card._minterYes = 0 card._minterYes = 0
card._minterNo = 0
continue continue
} }
const pollResults = await fetchPollResults(cardDataResponse.poll); const pollResults = await fetchPollResults(cardDataResponse.poll);
@ -338,40 +338,40 @@ const applyVoteSortingData = async (cards, ascending = true, boardType = 'minter
cardDataResponse.creator, cardDataResponse.creator,
card.identifier card.identifier
) )
card._adminVotes = adminYes + adminNo
card._adminYes = adminYes card._adminYes = adminYes
card._minterVotes = minterYes + minterNo card._adminNo = adminNo
card._minterYes = minterYes card._minterYes = minterYes
card._minterNo = minterNo
} }
} catch (error) { } catch (error) {
console.warn(`Error fetching or processing poll for card ${card.identifier}:`, error) console.warn(`Error fetching or processing poll for card ${card.identifier}:`, error)
card._adminVotes = 0
card._adminYes = 0 card._adminYes = 0
card._minterVotes = 0 card._adminNo = 0
card._minterYes = 0 card._minterYes = 0
card._minterNo = 0
} }
} }
if (ascending) { if (ascending) {
// least votes first // least votes first
cards.sort((a, b) => { cards.sort((a, b) => {
const diffAdminTotal = a._adminVotes - b._adminVotes
if (diffAdminTotal !== 0) return diffAdminTotal
const diffAdminYes = a._adminYes - b._adminYes const diffAdminYes = a._adminYes - b._adminYes
if (diffAdminYes !== 0) return diffAdminYes if (diffAdminYes !== 0) return diffAdminYes
const diffMinterTotal = a._minterVotes - b._minterVotes const diffAdminNo = b._adminNo - a._adminNo
if (diffMinterTotal !== 0) return diffMinterTotal if (diffAdminNo !== 0) return diffAdminNo
return a._minterYes - b._minterYes const diffMinterYes = a._minterYes - b._minterYes
if (diffMinterYes !== 0) return diffMinterYes
return b._minterNo - a._minterNo
}) })
} else { } else {
// most votes first // most votes first
cards.sort((a, b) => { cards.sort((a, b) => {
const diffAdminTotal = b._adminVotes - a._adminVotes
if (diffAdminTotal !== 0) return diffAdminTotal
const diffAdminYes = b._adminYes - a._adminYes const diffAdminYes = b._adminYes - a._adminYes
if (diffAdminYes !== 0) return diffAdminYes if (diffAdminYes !== 0) return diffAdminYes
const diffMinterTotal = b._minterVotes - a._minterVotes const diffAdminNo = a._adminNo - b._adminNo
if (diffMinterTotal !== 0) return diffMinterTotal if (diffAdminNo !== 0) return diffAdminNo
return b._minterYes - a._minterYes const diffMinterYes = b._minterYes - a._minterYes
if (diffMinterYes !== 0) return diffMinterYes
return a._minterNo - b._minterNo
}) })
} }
} }