import { Answer } from 'common/answer' import { Contract } from 'common/contract' import React, { useEffect, useRef, useState } from 'react' import { Col } from 'web/components/layout/col' import { Row } from 'web/components/layout/row' import { Avatar } from 'web/components/avatar' import { CopyLinkDateTimeComponent } from 'web/components/feed/copy-link-date-time' import { useRouter } from 'next/router' import { UserLink } from 'web/components/user-link' export function CommentsAnswer(props: { answer: Answer contract: Contract color: string }) { const { answer, contract, color } = props const { username, avatarUrl, name, text } = answer const answerElementId = `answer-${answer.id}` const { isReady, asPath } = useRouter() const [highlighted, setHighlighted] = useState(false) const answerRef = useRef(null) useEffect(() => { if (isReady && asPath.endsWith(`#${answerElementId}`)) { setHighlighted(true) } }, [isReady, asPath, answerElementId]) useEffect(() => { if (highlighted && answerRef.current) { answerRef.current.scrollIntoView(true) } }, [highlighted]) return ( {/* TODO: known bug, doesn't grab color in time and it is gray */}
answered
{text}
) }