From 84bc490ed311991b138065eb3a214e6b14006528 Mon Sep 17 00:00:00 2001 From: mantikoros Date: Fri, 7 Oct 2022 14:56:55 -0500 Subject: [PATCH 1/2] comment sort: move below input, newest as default --- web/components/contract/contract-tabs.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/web/components/contract/contract-tabs.tsx b/web/components/contract/contract-tabs.tsx index fdfc5c3d..7b2886aa 100644 --- a/web/components/contract/contract-tabs.tsx +++ b/web/components/contract/contract-tabs.tsx @@ -80,7 +80,7 @@ const CommentsTabContent = memo(function CommentsTabContent(props: { const { contract } = props const tips = useTipTxns({ contractId: contract.id }) const comments = useComments(contract.id) ?? props.comments - const [sort, setSort] = usePersistentState<'Newest' | 'Best'>('Best', { + const [sort, setSort] = usePersistentState<'Newest' | 'Best'>('Newest', { key: `contract-comments-sort`, store: storageStore(safeLocalStorage()), }) @@ -123,7 +123,7 @@ const CommentsTabContent = memo(function CommentsTabContent(props: { const topLevelComments = commentsByParent['_'] ?? [] const sortRow = comments.length > 0 && ( - + + ) +} diff --git a/web/components/contract/add-comment-bounty.tsx b/web/components/contract/comment-bounty-dialog.tsx similarity index 52% rename from web/components/contract/add-comment-bounty.tsx rename to web/components/contract/comment-bounty-dialog.tsx index 8b716e71..e5ae4c39 100644 --- a/web/components/contract/add-comment-bounty.tsx +++ b/web/components/contract/comment-bounty-dialog.tsx @@ -8,9 +8,16 @@ import clsx from 'clsx' import { formatMoney } from 'common/util/format' import { COMMENT_BOUNTY_AMOUNT } from 'common/economy' import { Button } from 'web/components/button' +import { Title } from '../title' +import { Col } from '../layout/col' +import { Modal } from '../layout/modal' -export function AddCommentBountyPanel(props: { contract: Contract }) { - const { contract } = props +export function CommentBountyDialog(props: { + contract: Contract + open: boolean + setOpen: (open: boolean) => void +}) { + const { contract, open, setOpen } = props const { id: contractId, slug } = contract const user = useUser() @@ -45,30 +52,34 @@ export function AddCommentBountyPanel(props: { contract: Contract }) { } return ( - <> -
- Add a {formatMoney(amount)} bounty for good comments that the creator - can award.{' '} - {totalAdded > 0 && `(${formatMoney(totalAdded)} currently added)`} -
+ + + - <Row className={'items-center gap-2'}> - <Button - className={clsx('ml-2', isLoading && 'btn-disabled')} - onClick={submit} - disabled={isLoading} - color={'blue'} - > - Add {formatMoney(amount)} bounty - </Button> - <span className={'text-error'}>{error}</span> - </Row> + <div className="mb-4 text-gray-500"> + Add a {formatMoney(amount)} bounty for good comments that the creator + can award.{' '} + {totalAdded > 0 && `(${formatMoney(totalAdded)} currently added)`} + </div> - {isSuccess && amount && ( - <div>Success! Added {formatMoney(amount)} in bounties.</div> - )} + <Row className={'items-center gap-2'}> + <Button + className={clsx('ml-2', isLoading && 'btn-disabled')} + onClick={submit} + disabled={isLoading} + color={'blue'} + > + Add {formatMoney(amount)} bounty + </Button> + <span className={'text-error'}>{error}</span> + </Row> - {isLoading && <div>Processing...</div>} - </> + {isSuccess && amount && ( + <div>Success! Added {formatMoney(amount)} in bounties.</div> + )} + + {isLoading && <div>Processing...</div>} + </Col> + </Modal> ) } diff --git a/web/components/contract/contract-tabs.tsx b/web/components/contract/contract-tabs.tsx index 7b2886aa..8531697b 100644 --- a/web/components/contract/contract-tabs.tsx +++ b/web/components/contract/contract-tabs.tsx @@ -123,7 +123,7 @@ const CommentsTabContent = memo(function CommentsTabContent(props: { const topLevelComments = commentsByParent['_'] ?? [] const sortRow = comments.length > 0 && ( - <Row className="mb-2 items-center"> + <Row className="mb-4 items-center"> <Button size={'xs'} color={'gray-white'} diff --git a/web/components/contract/liquidity-bounty-panel.tsx b/web/components/contract/liquidity-bounty-panel.tsx index 4cc7fd70..347f41b3 100644 --- a/web/components/contract/liquidity-bounty-panel.tsx +++ b/web/components/contract/liquidity-bounty-panel.tsx @@ -16,7 +16,6 @@ import { InfoTooltip } from 'web/components/info-tooltip' import { BETTORS, PRESENT_BET } from 'common/user' import { buildArray } from 'common/util/array' import { useAdmin } from 'web/hooks/use-admin' -import { AddCommentBountyPanel } from 'web/components/contract/add-comment-bounty' export function LiquidityBountyPanel(props: { contract: Contract }) { const { contract } = props @@ -36,13 +35,11 @@ export function LiquidityBountyPanel(props: { contract: Contract }) { const isCreator = user?.id === contract.creatorId const isAdmin = useAdmin() + if (!isCreator && !isAdmin && !showWithdrawal) return <></> + return ( <Tabs tabs={buildArray( - { - title: 'Bounty Comments', - content: <AddCommentBountyPanel contract={contract} />, - }, (isCreator || isAdmin) && isCPMM && { title: (isAdmin ? '[Admin] ' : '') + 'Subsidize',