Distinguish wining and losing FR answers
This commit is contained in:
parent
a38b6d26ce
commit
0dc6c6405d
|
@ -24,7 +24,7 @@ export function AnswersPanel(props: {
|
|||
const { creatorId, resolution, resolutions, totalBets } = contract
|
||||
|
||||
const answers = useAnswers(contract.id) ?? contract.answers
|
||||
const [winningAnswers, otherAnswers] = _.partition(
|
||||
const [winningAnswers, losingAnswers] = _.partition(
|
||||
answers.filter(
|
||||
(answer) => answer.id !== '0' && totalBets[answer.id] > 0.000000001
|
||||
),
|
||||
|
@ -36,7 +36,7 @@ export function AnswersPanel(props: {
|
|||
resolutions ? -1 * resolutions[answer.id] : 0
|
||||
),
|
||||
..._.sortBy(
|
||||
resolution ? [] : otherAnswers,
|
||||
resolution ? [] : losingAnswers,
|
||||
(answer) => -1 * getDpmOutcomeProbability(contract.totalShares, answer.id)
|
||||
),
|
||||
]
|
||||
|
@ -52,7 +52,11 @@ export function AnswersPanel(props: {
|
|||
|
||||
const chosenTotal = _.sum(Object.values(chosenAnswers))
|
||||
|
||||
const answerItems = getAnswers(contract, user)
|
||||
const answerItems = getAnswers(
|
||||
contract,
|
||||
user,
|
||||
winningAnswers.length > 0 ? winningAnswers.map((a) => a.id) : []
|
||||
)
|
||||
|
||||
const onChoose = (answerId: string, prob: number) => {
|
||||
if (resolveOption === 'CHOOSE') {
|
||||
|
@ -89,9 +93,7 @@ export function AnswersPanel(props: {
|
|||
|
||||
return (
|
||||
<Col className="gap-3">
|
||||
{(resolveOption === 'CHOOSE' ||
|
||||
resolveOption === 'CHOOSE_MULTIPLE' ||
|
||||
resolution === 'MKT') &&
|
||||
{(resolveOption || resolution) &&
|
||||
sortedAnswers.map((answer) => (
|
||||
<AnswerItem
|
||||
key={answer.id}
|
||||
|
@ -105,11 +107,7 @@ export function AnswersPanel(props: {
|
|||
/>
|
||||
))}
|
||||
|
||||
{sortedAnswers.length === 0 && (
|
||||
<div className="pb-4 text-gray-500">No answers yet...</div>
|
||||
)}
|
||||
|
||||
{!resolveOption && sortedAnswers.length > 0 && (
|
||||
{!resolveOption && (
|
||||
<FeedItems
|
||||
contract={contract}
|
||||
items={answerItems}
|
||||
|
@ -118,6 +116,10 @@ export function AnswersPanel(props: {
|
|||
/>
|
||||
)}
|
||||
|
||||
{sortedAnswers.length === 0 && (
|
||||
<div className="pb-4 text-gray-500">No answers yet...</div>
|
||||
)}
|
||||
|
||||
{tradingAllowed(contract) &&
|
||||
(!resolveOption || resolveOption === 'CANCEL') && (
|
||||
<CreateAnswerPanel contract={contract} />
|
||||
|
@ -140,13 +142,18 @@ export function AnswersPanel(props: {
|
|||
|
||||
function getAnswers(
|
||||
contract: FullContract<DPM, FreeResponse>,
|
||||
user: User | undefined | null
|
||||
user: User | undefined | null,
|
||||
ignoreAnswerOutcomes: string[]
|
||||
) {
|
||||
const { answers } = contract
|
||||
|
||||
let outcomes = _.uniq(
|
||||
answers.map((answer) => answer.number.toString())
|
||||
).filter((outcome) => getOutcomeProbability(contract, outcome) > 0.0001)
|
||||
).filter(
|
||||
(outcome) =>
|
||||
getOutcomeProbability(contract, outcome) > 0.0001 &&
|
||||
!ignoreAnswerOutcomes.includes(outcome)
|
||||
)
|
||||
outcomes = _.sortBy(outcomes, (outcome) =>
|
||||
getOutcomeProbability(contract, outcome)
|
||||
).reverse()
|
||||
|
|
Loading…
Reference in New Issue
Block a user