diff --git a/client-common/src/hooks/use-contract-updates.ts b/client-common/src/hooks/use-contract-updates.ts index 4553502d19..d25b1cd705 100644 --- a/client-common/src/hooks/use-contract-updates.ts +++ b/client-common/src/hooks/use-contract-updates.ts @@ -2,7 +2,7 @@ import { SetStateAction } from 'react' import { useApiSubscription } from './use-api-subscription' import { Contract } from 'common/contract' import { Answer } from 'common/answer' - +import { uniqBy } from 'lodash' export const useContractUpdates = >( initial: C, setContract: (value: SetStateAction) => void @@ -14,10 +14,13 @@ export const useContractUpdates = >( setContract((contract) => { return { ...contract, - answers: [ - ...('answers' in contract ? contract.answers : []), - data.answer as Answer, - ], + answers: uniqBy( + [ + ...('answers' in contract ? contract.answers : []), + data.answer as Answer, + ], + 'id' + ), } }) }, diff --git a/web/components/answers/answers-panel.tsx b/web/components/answers/answers-panel.tsx index aec4f78e18..79d3600d53 100644 --- a/web/components/answers/answers-panel.tsx +++ b/web/components/answers/answers-panel.tsx @@ -138,19 +138,14 @@ export function AnswersPanel(props: { className, hideSearch, } = props - const { outcomeType, resolutions } = contract + const { resolutions } = contract const addAnswersMode = 'addAnswersMode' in contract ? contract.addAnswersMode : 'DISABLED' - const isMultipleChoice = - outcomeType === 'MULTIPLE_CHOICE' || outcomeType === 'MULTI_NUMERIC' - - const answers = !isMultipleChoice - ? [] - : contract.answers.map((a) => ({ - ...a, - prob: getAnswerProbability(contract, a.id), - })) + const answers = contract.answers.map((a) => ({ + ...a, + prob: getAnswerProbability(contract, a.id), + })) const [showAll, setShowAll] = useState( (addAnswersMode === 'DISABLED' && answers.length <= 10) || answers.length <= 5