From f12511f22ca01430fd1f7f6912a913493179ff99 Mon Sep 17 00:00:00 2001 From: James Grugett Date: Sat, 16 Apr 2022 17:39:20 -0500 Subject: [PATCH] Hide answers panel unless resolving. Correctly order answers --- web/components/answers/answers-graph.tsx | 4 +-- web/components/answers/answers-panel.tsx | 35 ++++++++----------- web/components/contract/contract-overview.tsx | 2 +- web/components/feed/activity-items.ts | 31 ++++++++-------- web/pages/[username]/[contractSlug].tsx | 21 ++++++----- 5 files changed, 44 insertions(+), 49 deletions(-) diff --git a/web/components/answers/answers-graph.tsx b/web/components/answers/answers-graph.tsx index 1282b928..1905818a 100644 --- a/web/components/answers/answers-graph.tsx +++ b/web/components/answers/answers-graph.tsx @@ -115,7 +115,7 @@ export const AnswersGraph = memo(function AnswersGraph(props: { enableGridX={!!width && width >= 800} enableArea areaOpacity={1} - margin={{ top: 20, right: 0, bottom: 22, left: 40 }} + margin={{ top: 20, right: 28, bottom: 22, left: 40 }} legends={[ { anchor: 'top-left', @@ -130,8 +130,6 @@ export const AnswersGraph = memo(function AnswersGraph(props: { itemHeight: 20, itemBackground: 'white', symbolSize: 12, - symbolBorderColor: 'rgba(0, 0, 0, 0.5)', - symbolBorderWidth: 1, effects: [ { on: 'hover', diff --git a/web/components/answers/answers-panel.tsx b/web/components/answers/answers-panel.tsx index 61dfec61..69bd421c 100644 --- a/web/components/answers/answers-panel.tsx +++ b/web/components/answers/answers-panel.tsx @@ -3,7 +3,6 @@ import { useLayoutEffect, useState } from 'react' import { DPM, FreeResponse, FullContract } from '../../../common/contract' import { Col } from '../layout/col' -import { formatPercent } from '../../../common/util/format' import { useUser } from '../../hooks/use-user' import { getDpmOutcomeProbability } from '../../../common/calculate-dpm' import { useAnswers } from '../../hooks/use-answers' @@ -82,27 +81,23 @@ export function AnswersPanel(props: { return ( - {sortedAnswers.map((answer) => ( - - ))} + {resolveOption && + sortedAnswers.map((answer) => ( + + ))} - {sortedAnswers.length === 0 ? ( + {sortedAnswers.length === 0 && (
No answers yet...
- ) : ( -
- None of the above:{' '} - {formatPercent(getDpmOutcomeProbability(contract.totalShares, '0'))} -
)} {tradingAllowed(contract) && !resolveOption && ( diff --git a/web/components/contract/contract-overview.tsx b/web/components/contract/contract-overview.tsx index 4d2d6194..b3f2e99e 100644 --- a/web/components/contract/contract-overview.tsx +++ b/web/components/contract/contract-overview.tsx @@ -73,7 +73,7 @@ export const ContractOverview = (props: { /> )} - + {contract.description && } 0) { pushGroup() } - return abbreviated ? items.slice(-3) : items + const abbrItems = abbreviated ? items.slice(-3) : items + if (reversed) abbrItems.reverse() + return abbrItems } function getAnswerGroups( @@ -182,9 +185,10 @@ function getAnswerGroups( options: { sortByProb: boolean abbreviated: boolean + reversed: boolean } ) { - const { sortByProb, abbreviated } = options + const { sortByProb, abbreviated, reversed } = options let outcomes = _.uniq(bets.map((bet) => bet.outcome)).filter( (outcome) => getOutcomeProbability(contract, outcome) > 0.0001 @@ -208,9 +212,8 @@ function getAnswerGroups( outcomes = outcomes.slice(-2) } if (sortByProb) { - outcomes = _.sortBy( - outcomes, - (outcome) => -1 * getOutcomeProbability(contract, outcome) + outcomes = _.sortBy(outcomes, (outcome) => + getOutcomeProbability(contract, outcome) ) } else { // Sort by recent bet. @@ -233,6 +236,7 @@ function getAnswerGroups( hideOutcome: true, abbreviated, smallAvatar: true, + reversed, }) if (abbreviated) items = items.slice(-2) @@ -264,6 +268,8 @@ export function getAllContractActivityItems( const { abbreviated } = options const { outcomeType } = contract + const reversed = !abbreviated + bets = outcomeType === 'BINARY' ? bets.filter((bet) => !bet.isAnte && !bet.isRedemption) @@ -301,12 +307,14 @@ export function getAllContractActivityItems( { sortByProb: true, abbreviated, + reversed, } ) : groupBets(bets, comments, contract, user?.id, { hideOutcome: !!filterToOutcome, abbreviated, smallAvatar: !!filterToOutcome, + reversed, })) ) @@ -317,14 +325,7 @@ export function getAllContractActivityItems( items.push({ type: 'resolve', id: `${contract.resolutionTime}`, contract }) } - if (!abbreviated) { - items.reverse() - for (const item of items) { - if (item.type === 'answergroup') { - item.items.reverse() - } - } - } + if (reversed) items.reverse() return items } @@ -362,12 +363,14 @@ export function getRecentContractActivityItems( { sortByProb: false, abbreviated: true, + reversed: false, } ) : groupBets(bets, comments, contract, user?.id, { hideOutcome: false, abbreviated: true, smallAvatar: false, + reversed: false, }) return [questionItem, ...items] diff --git a/web/pages/[username]/[contractSlug].tsx b/web/pages/[username]/[contractSlug].tsx index e4e4a67e..70252841 100644 --- a/web/pages/[username]/[contractSlug].tsx +++ b/web/pages/[username]/[contractSlug].tsx @@ -143,17 +143,7 @@ export function ContractPageContent(props: FirstArgument) { contract={contract} bets={bets ?? []} comments={comments ?? []} - > - {contract.outcomeType === 'FREE_RESPONSE' && ( - <> - - } - /> - - - )} - + /> {contract.isResolved && ( <> @@ -175,6 +165,15 @@ export function ContractPageContent(props: FirstArgument) { bets={bets} comments={comments} /> + + {contract.outcomeType === 'FREE_RESPONSE' && ( + <> + + } + /> + + )} )