a90b765670
* Adding, awarding, and sorting by bounties
* Add notification for bounty award as tip
* Fix merge
* Wording
* Allow adding in batches of m250
* import
* imports
* Style tabs
* Refund unused bounties
* Show curreantly available, reset open to 0
* Refactor
* Rerun check prs
* reset yarn.lock
* Revert "reset yarn.lock"
This reverts commit 4606984276
.
* undo yarn.lock changes
* Track comment bounties
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import clsx from 'clsx'
|
|
import { ContractComment } from 'common/comment'
|
|
import { useUser } from 'web/hooks/use-user'
|
|
import { awardCommentBounty } from 'web/lib/firebase/api'
|
|
import { track } from 'web/lib/service/analytics'
|
|
import { Row } from './layout/row'
|
|
import { Contract } from 'common/contract'
|
|
import { TextButton } from 'web/components/text-button'
|
|
import { COMMENT_BOUNTY_AMOUNT } from 'common/economy'
|
|
import { formatMoney } from 'common/util/format'
|
|
|
|
export function AwardBountyButton(prop: {
|
|
comment: ContractComment
|
|
contract: Contract
|
|
}) {
|
|
const { comment, contract } = prop
|
|
|
|
const me = useUser()
|
|
|
|
const submit = () => {
|
|
const data = {
|
|
amount: COMMENT_BOUNTY_AMOUNT,
|
|
commentId: comment.id,
|
|
contractId: contract.id,
|
|
}
|
|
|
|
awardCommentBounty(data)
|
|
.then((_) => {
|
|
console.log('success')
|
|
track('award comment bounty', data)
|
|
})
|
|
.catch((reason) => console.log('Server error:', reason))
|
|
|
|
track('award comment bounty', data)
|
|
}
|
|
|
|
const canUp = me && me.id !== comment.userId && contract.creatorId === me.id
|
|
if (!canUp) return <div />
|
|
return (
|
|
<Row className={clsx('-ml-2 items-center gap-0.5', !canUp ? '-ml-6' : '')}>
|
|
<TextButton className={'font-bold'} onClick={submit}>
|
|
Award {formatMoney(COMMENT_BOUNTY_AMOUNT)}
|
|
</TextButton>
|
|
</Row>
|
|
)
|
|
}
|