From 55d7230d93f1f5165e18a7bbad478f2fd539536a Mon Sep 17 00:00:00 2001 From: David Chee Date: Thu, 19 Sep 2024 22:45:26 -0700 Subject: [PATCH 1/8] Change free signup gift copy --- web/components/play-money-disclaimer.tsx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/web/components/play-money-disclaimer.tsx b/web/components/play-money-disclaimer.tsx index 33d80adcc0..1d92603835 100644 --- a/web/components/play-money-disclaimer.tsx +++ b/web/components/play-money-disclaimer.tsx @@ -1,13 +1,19 @@ import { SparklesIcon } from '@heroicons/react/solid' import { PHONE_VERIFICATION_BONUS } from 'common/economy' import { formatMoney } from 'common/util/format' +import { ManaCoin } from 'web/public/custom-components/manaCoin' +import { SweepiesCoin } from 'web/public/custom-components/sweepiesCoin' +import { CoinNumber } from './widgets/coin-number' +import { Row } from './layout/row' export const PlayMoneyDisclaimer = (props: { text?: string }) => { const { text } = props return ( -
- - {text ? text : `Get ${formatMoney(PHONE_VERIFICATION_BONUS)} play money`} -
+ + Get + + and + + ) } From 7ddea0daa4007e91eb3e52c1fa19598b66d7d263 Mon Sep 17 00:00:00 2001 From: David Chee Date: Thu, 19 Sep 2024 22:56:43 -0700 Subject: [PATCH 2/8] add additional US only disclaimer --- web/pages/redeem.tsx | 46 +++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/web/pages/redeem.tsx b/web/pages/redeem.tsx index 302b165dbd..b779448be1 100644 --- a/web/pages/redeem.tsx +++ b/web/pages/redeem.tsx @@ -279,27 +279,33 @@ const CashoutPage = () => {

- - Verify and get - - {kycAmount == undefined ? ( - ' a sweepcash gift!' - ) : ( - + + - + > + Verify and get + + {kycAmount == undefined ? ( + ' a sweepcash gift!' + ) : ( + + )} + + +
+ {' '} + Only for eligible US residents +
+ ) : message == USER_BLOCKED_MESSAGE ? ( From 98491b3786e09eadb96108cdba1a3d70222b4d8a Mon Sep 17 00:00:00 2001 From: David Chee Date: Thu, 19 Sep 2024 23:07:05 -0700 Subject: [PATCH 3/8] replace redeem button copy with claim copy if applicable --- .../profile/redeem-sweeps-buttons.tsx | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/web/components/profile/redeem-sweeps-buttons.tsx b/web/components/profile/redeem-sweeps-buttons.tsx index e786598265..57e4a6d760 100644 --- a/web/components/profile/redeem-sweeps-buttons.tsx +++ b/web/components/profile/redeem-sweeps-buttons.tsx @@ -3,6 +3,8 @@ import { useRouter } from 'next/router' import { useAPIGetter } from 'web/hooks/use-api-getter' import { Button } from '../buttons/button' import { CoinNumber } from '../widgets/coin-number' +import { KYC_VERIFICATION_BONUS_CASH } from 'common/economy' +import { useKYCGiftAmount } from '../twomba/toggle-verify-callout' export function RedeemSweepsButtons(props: { user: User; className?: string }) { const { user, className } = props @@ -12,24 +14,37 @@ export function RedeemSweepsButtons(props: { user: User; className?: string }) { const canRedeem = redeemableCash > 0 && !blockFromSweepstakes(user) + const amount = useKYCGiftAmount(user) + const onClick = () => { router.push('/redeem') } return ( <> - + {canRedeem ? ( + + ) : ( + + )} ) } From 6724801c33b270328b208d9ce4e93867b9024b39 Mon Sep 17 00:00:00 2001 From: David Chee Date: Thu, 19 Sep 2024 23:11:43 -0700 Subject: [PATCH 4/8] Change US only tooltip copy --- web/components/twomba/us-only-disclaimer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/components/twomba/us-only-disclaimer.tsx b/web/components/twomba/us-only-disclaimer.tsx index 609cc724bf..421bd9e68d 100644 --- a/web/components/twomba/us-only-disclaimer.tsx +++ b/web/components/twomba/us-only-disclaimer.tsx @@ -10,7 +10,7 @@ export function UsOnlyDisclaimer(props: { className?: string }) { 'text-ink-900 flex select-none flex-row items-center gap-1 font-semibold ', className )} - text="Sweepstakes are limited to 18+ in all US states except WA, MI, ID, DE" + text="Sweepstakes are US only and 18+. All states are eligible except WA, MI, ID, DE" > US only From 3decee0dea3b2b3af7760a043fd49917d1380789 Mon Sep 17 00:00:00 2001 From: David Chee Date: Thu, 19 Sep 2024 23:36:55 -0700 Subject: [PATCH 5/8] update explainer panel --- docs/docs/sweepstakes.md | 4 ++ web/components/explainer-panel.tsx | 68 ++++++++++-------------------- 2 files changed, 27 insertions(+), 45 deletions(-) diff --git a/docs/docs/sweepstakes.md b/docs/docs/sweepstakes.md index 61ea46ad80..32ddcdaae1 100644 --- a/docs/docs/sweepstakes.md +++ b/docs/docs/sweepstakes.md @@ -26,6 +26,10 @@ Users may participate in a sweepstakes market by using sweepcash. It is free to - Completing their daily streak for a free bonus. - As a free gift with some purchases. +### How much can I withdraw my Sweepcash winnings for? + +When eligible to be withdrawn, sweepcash can be redeemed at a rate of 1.00 sweepcash to 1.00 USD, minus a 5% fee. + ### How do I withdraw my Sweepcash winnings? Only sweepcash won from a market resolution can be withdrawn. Sweepcash received from gifts, bonuses, or exiting a market early can not be withdrawn and you must use it to win a resolved market first. Visit your withdrawals dashboard to view how much sweepcash you have won and can withdraw. Then, fill out your bank details and request the amount of sweepcash you wish to redeem for real-money. There is a $25.00 minimum withdrawal. diff --git a/web/components/explainer-panel.tsx b/web/components/explainer-panel.tsx index bf8b001d88..7d2587c902 100644 --- a/web/components/explainer-panel.tsx +++ b/web/components/explainer-panel.tsx @@ -8,6 +8,7 @@ import { FaHandHoldingUsd, FaPercentage } from 'react-icons/fa' import { TbTargetArrow } from 'react-icons/tb' import { track } from 'web/lib/service/analytics' import { + CHARITY_FEE, SWEEPIES_NAME, TRADE_TERM, TRADING_TERM, @@ -18,7 +19,13 @@ import { AboutManifold } from './about-manifold' import { GoGraph } from 'react-icons/go' import Link from 'next/link' import { SweepiesCoin } from 'web/public/custom-components/sweepiesCoin' -import { SWEEPIES_MONIKER } from 'common/util/format' +import { + SWEEPIES_MONIKER, + formatMoneyUSD, + formatSweepies, +} from 'common/util/format' +import { ManaCoin } from 'web/public/custom-components/manaCoin' +import { CoinNumber } from './widgets/coin-number' export const ExplainerPanel = (props: { className?: string @@ -41,7 +48,6 @@ export const ExplainerPanel = (props: { {showWhatIsManifold && } {showAccuracy && } - {showWhyBet && } {showSweepstakes && TWOMBA_ENABLED && ( )} @@ -93,40 +99,6 @@ const WhatIsManifold = ({ ) -const WhyBet = ({ onClick }: { onClick: (sectionTitle: string) => void }) => ( - - Why should I {TRADE_TERM}? - - } - onClick={() => onClick(`Why should I ${TRADE_TERM}?`)} - > -
- {capitalize(TRADING_TERM)} contributes to accurate answers of important, - real-world questions and helps you stay more accountable as you make - predictions. -
- {TWOMBA_ENABLED && ( - <> -
- {capitalize(TRADE_TERM)} with{' '} - - - - {' '} - {SWEEPIES_NAME} ({SWEEPIES_MONIKER}) - {' '} - - for a chance to win withdrawable cash prizes. -
- - )} - -
Get started for free! No credit card required.
-
-) - const Accuracy = ({ onClick }: { onClick: (sectionTitle: string) => void }) => ( - What are sweepstakes markets? + How do I win cash prizes? } onClick={() => onClick('Are our forecasts accurate?')} @@ -182,19 +154,25 @@ const Sweepstakes = ({ There are two types of markets on Manifold: play money and sweepstakes.
- By default all markets are play money and use mana. These markets allow - you to win more mana but do not award any prizes which can be cashed out. + By default all markets are play money and use mana . These + markets allow you to win more mana but do not award any prizes which can + be cashed out.
- Selected markets will have a sweepstakes toggle. These require sweepcash - to participate and allow winners to withdraw any sweepcash won to real - money. + Selected markets will have a sweepstakes toggle. These require sweepcash{' '} + +  to participate and allow winners who predict correctly to withdraw + sweepcash won to real money. You can filter for sweepstakes markets on the browse page.
- As play money and sweepstakes markets are independent of each other, they - may have different odds even though they share the same question and - comments. + Redeem your {SWEEPIES_NAME} won from markets at{' '} + + {'→'}{' '} + $1.00 + + , minus a {CHARITY_FEE * 100}% fee.
+ Date: Thu, 19 Sep 2024 23:43:54 -0700 Subject: [PATCH 6/8] remove remaining whybet in explainer panel --- web/components/explainer-panel.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/web/components/explainer-panel.tsx b/web/components/explainer-panel.tsx index 7d2587c902..7e6f6c25ef 100644 --- a/web/components/explainer-panel.tsx +++ b/web/components/explainer-panel.tsx @@ -31,14 +31,12 @@ export const ExplainerPanel = (props: { className?: string showWhatIsManifold?: boolean showAccuracy?: boolean - showWhyBet?: boolean showSweepstakes?: boolean }) => { const { className, showWhatIsManifold = true, showAccuracy = true, - showWhyBet = true, showSweepstakes = true, } = props const handleSectionClick = (sectionTitle: string) => { From 1101bfe1c65d2e723dcd1d01a72afa9e9c12802a Mon Sep 17 00:00:00 2001 From: David Chee Date: Fri, 20 Sep 2024 12:10:26 -0700 Subject: [PATCH 7/8] make howtowincash shorter --- web/components/explainer-panel.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/web/components/explainer-panel.tsx b/web/components/explainer-panel.tsx index 7e6f6c25ef..94fc7d72c3 100644 --- a/web/components/explainer-panel.tsx +++ b/web/components/explainer-panel.tsx @@ -149,18 +149,16 @@ const Sweepstakes = ({ onClick={() => onClick('Are our forecasts accurate?')} >
- There are two types of markets on Manifold: play money and sweepstakes. + Manifold offers two market types: play money and sweepstakes.
- By default all markets are play money and use mana . These - markets allow you to win more mana but do not award any prizes which can - be cashed out. + All questions include a play money market which uses mana and can't be cashed out.
Selected markets will have a sweepstakes toggle. These require sweepcash{' '} -  to participate and allow winners who predict correctly to withdraw - sweepcash won to real money. You can filter for sweepstakes markets on the browse page. +  to participate and winners can withdraw + sweepcash as a cash prize. You can filter for sweepstakes markets on the browse page.
Redeem your {SWEEPIES_NAME} won from markets at{' '} From 8a8a5f522efd273e6f836a2143f388fd522bbd47 Mon Sep 17 00:00:00 2001 From: David Chee Date: Fri, 20 Sep 2024 12:15:35 -0700 Subject: [PATCH 8/8] update explainer panel icons --- web/components/explainer-panel.tsx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/web/components/explainer-panel.tsx b/web/components/explainer-panel.tsx index 94fc7d72c3..0d630b9f54 100644 --- a/web/components/explainer-panel.tsx +++ b/web/components/explainer-panel.tsx @@ -26,6 +26,7 @@ import { } from 'common/util/format' import { ManaCoin } from 'web/public/custom-components/manaCoin' import { CoinNumber } from './widgets/coin-number' +import { GiTakeMyMoney } from 'react-icons/gi' export const ExplainerPanel = (props: { className?: string @@ -86,10 +87,9 @@ const WhatIsManifold = ({ }) => ( - {' '} - What is Manifold? - + <> + What is Manifold? + } onClick={() => onClick('What is Manifold?')} > @@ -143,7 +143,7 @@ const Sweepstakes = ({ - How do I win cash prizes? + How do I win cash prizes? } onClick={() => onClick('Are our forecasts accurate?')} @@ -152,13 +152,14 @@ const Sweepstakes = ({ Manifold offers two market types: play money and sweepstakes.
- All questions include a play money market which uses mana and can't be cashed out. + All questions include a play money market which uses mana and + can't be cashed out.
Selected markets will have a sweepstakes toggle. These require sweepcash{' '} -  to participate and winners can withdraw - sweepcash as a cash prize. You can filter for sweepstakes markets on the browse page. +  to participate and winners can withdraw sweepcash as a cash prize. + You can filter for sweepstakes markets on the browse page.
Redeem your {SWEEPIES_NAME} won from markets at{' '}