From 63d5e31e552dde64c3dae7aea4f2cf2fd923bae5 Mon Sep 17 00:00:00 2001 From: blushi Date: Mon, 29 Jul 2024 10:03:03 +0200 Subject: [PATCH 01/14] chore: add PaymentInfoForm/ --- .../PaymentInfoForm.CustomerInfo.tsx | 37 +++++++++++++++++++ .../PaymentInfoForm/PaymentInfoForm.schema.ts | 10 +++++ .../PaymentInfoForm/PaymentInfoForm.tsx | 6 +++ .../PaymentInfoForm/PaymentInfoForm.types.tsx | 2 + 4 files changed, 55 insertions(+) create mode 100644 web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx create mode 100644 web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts create mode 100644 web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx create mode 100644 web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.types.tsx diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx new file mode 100644 index 0000000000..dc18a02c03 --- /dev/null +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx @@ -0,0 +1,37 @@ +import { Trans } from '@lingui/macro'; + +import OutlinedButton from 'web-components/src/components/buttons/OutlinedButton'; +import Card from 'web-components/src/components/cards/Card'; +import TextField from 'web-components/src/components/inputs/new/TextField/TextField'; +import { Title } from 'web-components/src/components/typography'; + +import { useAuth } from 'lib/auth/auth'; + +import { PaymentOptionsType } from './PaymentInfoForm.types'; + +type CustomerInfoProps = { + paymentOption: PaymentOptionsType; +}; +export const CustomerInfo = ({ paymentOption }: CustomerInfoProps) => { + const { activeAccount } = useAuth(); + return ( + +
+ + <Trans>Customer info</Trans> + + {!activeAccount && ( + + log in for faster checkout + + )} +
+ +
+ ); +}; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts new file mode 100644 index 0000000000..2ded06b681 --- /dev/null +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts @@ -0,0 +1,10 @@ +import { z } from 'zod'; + +import { PaymentOptionsType } from './PaymentInfoForm.types'; + +export const paymentInfoFormSchema = (paymentOption: PaymentOptionsType) => + z.object({ + name: paymentOption === 'card' ? z.string().min(1) : z.string(), + email: + paymentOption === 'card' ? z.string().email().min(1) : z.string().email(), + }); diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx new file mode 100644 index 0000000000..7629b98a1d --- /dev/null +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx @@ -0,0 +1,6 @@ +import { PaymentOptionsType } from './PaymentInfoForm.types'; + +type PaymentInfoFormProps = { + paymentOption: PaymentOptionsType; +}; +export const PaymentInfoForm = ({ paymentOption }: PaymentInfoFormProps) => {}; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.types.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.types.tsx new file mode 100644 index 0000000000..3e539f84fb --- /dev/null +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.types.tsx @@ -0,0 +1,2 @@ +// Get from ChooseCredits component once #2408 merged +export type PaymentOptionsType = 'card' | 'crypto'; From 3ae868d7d7625b7321f13ddba9abb38edec3bd1c Mon Sep 17 00:00:00 2001 From: blushi Date: Mon, 29 Jul 2024 11:48:38 +0200 Subject: [PATCH 02/14] chore: add PaymentInfoForm first story --- .../PaymentInfoForm.CustomerInfo.tsx | 56 ++++++++++++++++--- .../PaymentInfoForm/PaymentInfoForm.schema.ts | 5 ++ .../PaymentInfoForm.stories.tsx | 19 +++++++ .../PaymentInfoForm/PaymentInfoForm.tsx | 41 +++++++++++++- 4 files changed, 113 insertions(+), 8 deletions(-) create mode 100644 web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx index dc18a02c03..978add7ba4 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx @@ -1,37 +1,79 @@ -import { Trans } from '@lingui/macro'; +import { useFormContext, useWatch } from 'react-hook-form'; +import { msg, Trans } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; +import { L } from '@lingui/react/dist/shared/react.e5f95de8'; import OutlinedButton from 'web-components/src/components/buttons/OutlinedButton'; import Card from 'web-components/src/components/cards/Card'; +import CheckboxLabel from 'web-components/src/components/inputs/new/CheckboxLabel/CheckboxLabel'; import TextField from 'web-components/src/components/inputs/new/TextField/TextField'; import { Title } from 'web-components/src/components/typography'; import { useAuth } from 'lib/auth/auth'; +import { Wallet } from 'lib/wallet/wallet'; +import { PaymentInfoFormSchemaType } from './PaymentInfoForm.schema'; import { PaymentOptionsType } from './PaymentInfoForm.types'; -type CustomerInfoProps = { +export type CustomerInfoProps = { paymentOption: PaymentOptionsType; + wallet?: Wallet; + accountEmail?: string; + accountName?: string; }; -export const CustomerInfo = ({ paymentOption }: CustomerInfoProps) => { - const { activeAccount } = useAuth(); +export const CustomerInfo = ({ + paymentOption, + wallet, + accountEmail, + accountName, +}: CustomerInfoProps) => { + const { _ } = useLingui(); + const ctx = useFormContext(); + const { register, formState, control } = ctx; + const { errors } = formState; + + const createAccount = useWatch({ + control: control, + name: 'createAccount', + }); + return (
<Trans>Customer info</Trans> - {!activeAccount && ( + {!accountEmail && !wallet && ( log in for faster checkout )}
+ +
); }; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts index 2ded06b681..aedf6a8316 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts @@ -7,4 +7,9 @@ export const paymentInfoFormSchema = (paymentOption: PaymentOptionsType) => name: paymentOption === 'card' ? z.string().min(1) : z.string(), email: paymentOption === 'card' ? z.string().email().min(1) : z.string().email(), + createAccount: z.boolean(), }); + +export type PaymentInfoFormSchemaType = z.infer< + ReturnType +>; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx new file mode 100644 index 0000000000..ac7a234d23 --- /dev/null +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx @@ -0,0 +1,19 @@ +import { Meta, StoryObj } from '@storybook/react'; + +import { PaymentInfoForm } from './PaymentInfoForm'; +// import { files } from './PaymentInfoForm.mock'; + +export default { + title: 'organisms/PaymentInfoForm', + component: PaymentInfoForm, +} as Meta; + +type Story = StoryObj; + +export const FiatLoggedOut: Story = { + render: args => , +}; + +FiatLoggedOut.args = { + paymentOption: 'card', +}; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx index 7629b98a1d..d17d595b76 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx @@ -1,6 +1,45 @@ +import Form from 'components/molecules/Form/Form'; +import { useZodForm } from 'components/molecules/Form/hook/useZodForm'; + +import { + CustomerInfo, + CustomerInfoProps, +} from './PaymentInfoForm.CustomerInfo'; +import { + paymentInfoFormSchema, + PaymentInfoFormSchemaType, +} from './PaymentInfoForm.schema'; import { PaymentOptionsType } from './PaymentInfoForm.types'; type PaymentInfoFormProps = { paymentOption: PaymentOptionsType; + onSubmit: (values: PaymentInfoFormSchemaType) => Promise; +} & CustomerInfoProps; + +export const PaymentInfoForm = ({ + paymentOption, + wallet, + accountEmail, + accountName, + onSubmit, +}: PaymentInfoFormProps) => { + const form = useZodForm({ + schema: paymentInfoFormSchema(paymentOption), + defaultValues: { + email: accountEmail, + name: accountName, + createAccount: true, + }, + mode: 'onBlur', + }); + return ( +
+ + + ); }; -export const PaymentInfoForm = ({ paymentOption }: PaymentInfoFormProps) => {}; From ba2dfcf5203635915d0aada2e13288fff2e70b9d Mon Sep 17 00:00:00 2001 From: blushi Date: Mon, 29 Jul 2024 13:33:46 +0200 Subject: [PATCH 03/14] feat: wrap up CustomerInfo and storybook workaround --- .../new/InputLabel/InputLabel.styles.ts | 2 +- .../PaymentInfoForm.CustomerInfo.tsx | 75 ++++++++++++------- .../PaymentInfoForm.stories.tsx | 35 +++++++++ .../PaymentInfoForm/PaymentInfoForm.tsx | 2 + web-storybook/.storybook/main.js | 10 +-- 5 files changed, 90 insertions(+), 34 deletions(-) diff --git a/web-components/src/components/inputs/new/InputLabel/InputLabel.styles.ts b/web-components/src/components/inputs/new/InputLabel/InputLabel.styles.ts index 92d3a3b907..f64adea3a9 100644 --- a/web-components/src/components/inputs/new/InputLabel/InputLabel.styles.ts +++ b/web-components/src/components/inputs/new/InputLabel/InputLabel.styles.ts @@ -19,7 +19,7 @@ export const useInputLabelStyles = makeStyles()( '&.Mui-error': { color: theme.palette.primary.contrastText, }, - '&::after': { + '& > :first-child::after': { content: !!optional ? '" (optional)"' : '""', fontWeight: 'normal', color: theme.palette.info.main, diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx index 978add7ba4..e53b3a4fe6 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx @@ -1,15 +1,13 @@ import { useFormContext, useWatch } from 'react-hook-form'; -import { msg, Trans } from '@lingui/macro'; -import { useLingui } from '@lingui/react'; -import { L } from '@lingui/react/dist/shared/react.e5f95de8'; +// import { msg, Trans } from '@lingui/macro'; +// import { useLingui } from '@lingui/react'; import OutlinedButton from 'web-components/src/components/buttons/OutlinedButton'; import Card from 'web-components/src/components/cards/Card'; import CheckboxLabel from 'web-components/src/components/inputs/new/CheckboxLabel/CheckboxLabel'; import TextField from 'web-components/src/components/inputs/new/TextField/TextField'; -import { Title } from 'web-components/src/components/typography'; +import { Body, Title } from 'web-components/src/components/typography'; -import { useAuth } from 'lib/auth/auth'; import { Wallet } from 'lib/wallet/wallet'; import { PaymentInfoFormSchemaType } from './PaymentInfoForm.schema'; @@ -20,14 +18,17 @@ export type CustomerInfoProps = { wallet?: Wallet; accountEmail?: string; accountName?: string; + login: () => void; }; + export const CustomerInfo = ({ paymentOption, wallet, accountEmail, accountName, + login, }: CustomerInfoProps) => { - const { _ } = useLingui(); + // const { _ } = useLingui(); const ctx = useFormContext(); const { register, formState, control } = ctx; const { errors } = formState; @@ -38,42 +39,60 @@ export const CustomerInfo = ({ }); return ( - -
- - <Trans>Customer info</Trans> - + +
+ Customer info {!accountEmail && !wallet && ( - - log in for faster checkout + + log in for faster checkout )}
+ Input an email address to receive a receipt of your purchase. + + Take note: we will email you a prompt to associate this email + with your account for easier future access. This is entirely + optional. + + + ) + } {...register('email')} error={!!errors['email']} helperText={errors['email']?.message} + disabled={!!accountEmail} + optional={!!wallet} /> - + {!accountEmail && !wallet && ( + + Yes, please create an account for me so I can easily see my + purchase details and retirement certificate when I log in + + } + {...register('createAccount')} + /> + )}
); }; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx index ac7a234d23..58f91a8514 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx @@ -1,3 +1,4 @@ +import { action } from '@storybook/addon-actions'; import { Meta, StoryObj } from '@storybook/react'; import { PaymentInfoForm } from './PaymentInfoForm'; @@ -16,4 +17,38 @@ export const FiatLoggedOut: Story = { FiatLoggedOut.args = { paymentOption: 'card', + login: action('login'), +}; + +export const FiatLoggedIn: Story = { + render: args => , +}; + +FiatLoggedIn.args = { + paymentOption: 'card', + accountEmail: 'john@doe.com', + accountName: 'John Doe', + login: action('login'), +}; + +export const CryptoNoEmail: Story = { + render: args => , +}; + +CryptoNoEmail.args = { + paymentOption: 'crypto', + wallet: { address: 'regen123456', shortAddress: 'regen123' }, + login: action('login'), +}; + +export const CryptoWithEmail: Story = { + render: args => , +}; + +CryptoWithEmail.args = { + paymentOption: 'crypto', + wallet: { address: 'regen123456', shortAddress: 'regen123' }, + accountEmail: 'john@doe.com', + accountName: 'John Doe', + login: action('login'), }; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx index d17d595b76..024420af8f 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx @@ -22,6 +22,7 @@ export const PaymentInfoForm = ({ accountEmail, accountName, onSubmit, + login, }: PaymentInfoFormProps) => { const form = useZodForm({ schema: paymentInfoFormSchema(paymentOption), @@ -37,6 +38,7 @@ export const PaymentInfoForm = ({ diff --git a/web-storybook/.storybook/main.js b/web-storybook/.storybook/main.js index 210ebfe71c..aeeeb0f1ec 100644 --- a/web-storybook/.storybook/main.js +++ b/web-storybook/.storybook/main.js @@ -69,11 +69,11 @@ module.exports = { }, }, plugins: [ - react({ - babel: { - plugins: ['macros'], - }, - }), + // react({ + // babel: { + // plugins: ['macros'], + // }, + // }), lingui(), svgrPlugin({ include: path.resolve( From 1da5e49f136bd93f174257a432aea3718bf9305f Mon Sep 17 00:00:00 2001 From: blushi Date: Tue, 30 Jul 2024 10:34:13 +0200 Subject: [PATCH 04/14] feat: add CardInfo without existing payment method --- bun.lockb | Bin 2001970 -> 2002882 bytes .../src/components/icons/CheckedIcon.tsx | 2 +- web-marketplace/package.json | 2 + .../PaymentInfoForm.CardInfo.tsx | 47 ++++++++++ .../PaymentInfoForm.CustomerInfo.tsx | 22 ++--- .../PaymentInfoForm.PaymentInfo.tsx | 51 +++++++++++ .../PaymentInfoForm.constants.ts | 5 ++ .../PaymentInfoForm/PaymentInfoForm.schema.ts | 1 + .../PaymentInfoForm.stories.tsx | 30 ++++++- .../PaymentInfoForm/PaymentInfoForm.tsx | 83 ++++++++++++++++-- web-storybook/.env.example | 1 + 11 files changed, 223 insertions(+), 21 deletions(-) create mode 100644 web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CardInfo.tsx create mode 100644 web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.PaymentInfo.tsx create mode 100644 web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.constants.ts diff --git a/bun.lockb b/bun.lockb index 4af393ecd2f00afb1e48f2a5a6336fd7668aeaca..3226bd6a8849c9af739eb9e8258b9f18fe466dcf 100755 GIT binary patch delta 163395 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 JEQgZ({{x_19JBxc delta 162264 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%0Aty~U#K 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 uAoH2ZYxGQ7AMX%mu}gh-oJAGpILs~4c9zn { + const ctx = useFormContext(); + const { register, control, setValue } = ctx; + + const createAccount = useWatch({ + control: control, + name: 'createAccount', + }); + const savePaymentMethod = useWatch({ + control: control, + name: 'savePaymentMethod', + }); + + useEffect(() => { + setValue('savePaymentMethod', createAccount); + }, [createAccount, setValue]); + + return ( + <> + + Save my credit card info for next time} + {...register('savePaymentMethod')} + /> + + ); +}; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx index e53b3a4fe6..6f94bdb242 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx @@ -16,6 +16,7 @@ import { PaymentOptionsType } from './PaymentInfoForm.types'; export type CustomerInfoProps = { paymentOption: PaymentOptionsType; wallet?: Wallet; + accountId?: string; accountEmail?: string; accountName?: string; login: () => void; @@ -26,6 +27,7 @@ export const CustomerInfo = ({ wallet, accountEmail, accountName, + accountId, login, }: CustomerInfoProps) => { // const { _ } = useLingui(); @@ -42,7 +44,7 @@ export const CustomerInfo = ({

Customer info - {!accountEmail && !wallet && ( + {!accountId && !wallet && ( log in for faster checkout @@ -50,20 +52,17 @@ export const CustomerInfo = ({
Input an email address to receive a receipt of your purchase. @@ -72,6 +71,10 @@ export const CustomerInfo = ({ optional. + ) : paymentOption === 'card' ? ( + `We need an email address to send you a receipt of your purchase.` + ) : ( + `We will send your receipt to the email address below, which is already linked to your account.` ) } {...register('email')} @@ -80,9 +83,8 @@ export const CustomerInfo = ({ disabled={!!accountEmail} optional={!!wallet} /> - {!accountEmail && !wallet && ( + {!accountId && !wallet && ( diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.PaymentInfo.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.PaymentInfo.tsx new file mode 100644 index 0000000000..1a9eb96bd9 --- /dev/null +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.PaymentInfo.tsx @@ -0,0 +1,51 @@ +import { useEffect } from 'react'; +import { useFormContext, useWatch } from 'react-hook-form'; +import { PaymentMethod } from '@stripe/stripe-js'; + +import Card from 'web-components/src/components/cards/Card'; +import { Body, Title } from 'web-components/src/components/typography'; + +import { CardInfo } from './PaymentInfoForm.CardInfo'; +import { PaymentInfoFormSchemaType } from './PaymentInfoForm.schema'; + +export type PaymentInfoProps = { + accountEmail?: string; + paymentMethods?: Array; + hasOrCreateActiveAccount?: boolean; + accountId?: string; +}; +export const PaymentInfo = ({ + paymentMethods, + accountId, +}: PaymentInfoProps) => { + const ctx = useFormContext(); + const { register, control, setValue } = ctx; + + const createAccount = useWatch({ + control: control, + name: 'createAccount', + }); + const savePaymentMethod = useWatch({ + control: control, + name: 'savePaymentMethod', + }); + + useEffect(() => { + setValue('savePaymentMethod', createAccount); + }, [createAccount, setValue]); + + return ( + + + Payment info + + {paymentMethods && paymentMethods.length > 0 ? ( + <>TODO + ) : ( + <> + + + )} + + ); +}; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.constants.ts b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.constants.ts new file mode 100644 index 0000000000..242d3dc252 --- /dev/null +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.constants.ts @@ -0,0 +1,5 @@ +import { Layout } from '@stripe/stripe-js'; + +export const paymentElementOptions = { + layout: 'tabs' as Layout, +}; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts index aedf6a8316..b69039400d 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts @@ -8,6 +8,7 @@ export const paymentInfoFormSchema = (paymentOption: PaymentOptionsType) => email: paymentOption === 'card' ? z.string().email().min(1) : z.string().email(), createAccount: z.boolean(), + savePaymentMethod: z.boolean(), }); export type PaymentInfoFormSchemaType = z.infer< diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx index 58f91a8514..1b22aff701 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx @@ -18,17 +18,39 @@ export const FiatLoggedOut: Story = { FiatLoggedOut.args = { paymentOption: 'card', login: action('login'), + stripePublishableKey: import.meta.env.STORYBOOK_STRIPE_PUBLISHABLE_KEY, + amount: 1000, + currency: 'usd', }; -export const FiatLoggedIn: Story = { +export const FiatLoggedInNoEmail: Story = { render: args => , }; -FiatLoggedIn.args = { +FiatLoggedInNoEmail.args = { paymentOption: 'card', + accountId: '60ec0504-4a9b-11ef-84b7-0242ac120002', + accountName: 'John Doe', + wallet: { address: 'regen123456', shortAddress: 'regen123' }, + login: action('login'), + stripePublishableKey: import.meta.env.STORYBOOK_STRIPE_PUBLISHABLE_KEY, + amount: 1000, + currency: 'usd', +}; + +export const FiatLoggedInWithEmail: Story = { + render: args => , +}; + +FiatLoggedInWithEmail.args = { + paymentOption: 'card', + accountId: '60ec0504-4a9b-11ef-84b7-0242ac120002', accountEmail: 'john@doe.com', accountName: 'John Doe', login: action('login'), + stripePublishableKey: import.meta.env.STORYBOOK_STRIPE_PUBLISHABLE_KEY, + amount: 1000, + currency: 'usd', }; export const CryptoNoEmail: Story = { @@ -39,6 +61,8 @@ CryptoNoEmail.args = { paymentOption: 'crypto', wallet: { address: 'regen123456', shortAddress: 'regen123' }, login: action('login'), + amount: 1000, + currency: 'usd', }; export const CryptoWithEmail: Story = { @@ -51,4 +75,6 @@ CryptoWithEmail.args = { accountEmail: 'john@doe.com', accountName: 'John Doe', login: action('login'), + amount: 1000, + currency: 'usd', }; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx index 024420af8f..f68e04b688 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx @@ -1,3 +1,8 @@ +import { Elements } from '@stripe/react-stripe-js'; +import { loadStripe, StripeElementsOptionsMode } from '@stripe/stripe-js'; + +import { defaultFontFamily } from 'web-components/src/theme/muiTheme'; + import Form from 'components/molecules/Form/Form'; import { useZodForm } from 'components/molecules/Form/hook/useZodForm'; @@ -5,6 +10,7 @@ import { CustomerInfo, CustomerInfoProps, } from './PaymentInfoForm.CustomerInfo'; +import { PaymentInfo, PaymentInfoProps } from './PaymentInfoForm.PaymentInfo'; import { paymentInfoFormSchema, PaymentInfoFormSchemaType, @@ -14,15 +20,24 @@ import { PaymentOptionsType } from './PaymentInfoForm.types'; type PaymentInfoFormProps = { paymentOption: PaymentOptionsType; onSubmit: (values: PaymentInfoFormSchemaType) => Promise; -} & CustomerInfoProps; + stripePublishableKey?: string; + amount: number; + currency: string; +} & CustomerInfoProps & + PaymentInfoProps; export const PaymentInfoForm = ({ paymentOption, wallet, accountEmail, accountName, + accountId, onSubmit, login, + paymentMethods, + stripePublishableKey, + amount, + currency, }: PaymentInfoFormProps) => { const form = useZodForm({ schema: paymentInfoFormSchema(paymentOption), @@ -30,18 +45,70 @@ export const PaymentInfoForm = ({ email: accountEmail, name: accountName, createAccount: true, + savePaymentMethod: true, }, mode: 'onBlur', }); + + const stripePromise = + paymentOption === 'card' && + stripePublishableKey && + loadStripe(stripePublishableKey); + + const options: StripeElementsOptionsMode = { + mode: 'payment', + amount, + currency, + paymentMethodCreation: 'manual', + fonts: [ + { + cssSrc: + 'https://fonts.googleapis.com/css?family=Lato:100,300,400,700,800', + }, + ], + appearance: { + theme: 'stripe', + variables: { + colorText: '#000', + colorDanger: '#DE4526', + fontFamily: defaultFontFamily, + spacingUnit: '5px', + borderRadius: '2px', + }, + rules: { + '.Label': { + fontWeight: 'bold', + fontSize: '16px', + }, + '.Input': { + boxShadow: 'none', + borderColor: '#D2D5D9', + marginTop: '9px', + }, + }, + }, + }; + return (
- +
+ + {paymentOption === 'card' && stripePromise && ( + + + + )} +
); }; diff --git a/web-storybook/.env.example b/web-storybook/.env.example index 8a91c0b2e0..8cac01995b 100644 --- a/web-storybook/.env.example +++ b/web-storybook/.env.example @@ -2,3 +2,4 @@ STORYBOOK_MAPBOX_TOKEN= STORYBOOK_RECAPTCHA_SITE_KEY= STORYBOOK_API_URI=http://127.0.0.1:5000 STORYBOOK_IMAGE_STORAGE_BASE_URL=https://regen-registry.s3.amazonaws.com/ +STORYBOOK_STRIPE_PUBLISHABLE_KEY= From 7d4817b9c2314f5146d2bfbed4fd2852e44f02a6 Mon Sep 17 00:00:00 2001 From: blushi Date: Tue, 30 Jul 2024 10:53:34 +0200 Subject: [PATCH 05/14] fix: Checkbox disabled color --- .../src/components/icons/CheckedIcon.tsx | 1 - .../src/components/icons/UncheckedIcon.tsx | 16 ++++++++++++---- .../components/inputs/new/CheckBox/Checkbox.tsx | 2 +- .../PaymentInfoForm/PaymentInfoForm.stories.tsx | 15 +++++++++++++++ 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/web-components/src/components/icons/CheckedIcon.tsx b/web-components/src/components/icons/CheckedIcon.tsx index 521be551c2..babc359b2e 100644 --- a/web-components/src/components/icons/CheckedIcon.tsx +++ b/web-components/src/components/icons/CheckedIcon.tsx @@ -14,7 +14,6 @@ export default function CheckedIcon({ disabled, }: IconProps): JSX.Element { const theme: Theme = useTheme(); - console.log(disabled); return ( + diff --git a/web-components/src/components/inputs/new/CheckBox/Checkbox.tsx b/web-components/src/components/inputs/new/CheckBox/Checkbox.tsx index 37dee6c946..6ae278d062 100644 --- a/web-components/src/components/inputs/new/CheckBox/Checkbox.tsx +++ b/web-components/src/components/inputs/new/CheckBox/Checkbox.tsx @@ -22,7 +22,7 @@ const Checkbox = forwardRef((props, ref) => { {...props} ref={ref} color="secondary" - icon={} + icon={} checkedIcon={ } diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx index 1b22aff701..9cc5fe2a70 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx @@ -53,6 +53,21 @@ FiatLoggedInWithEmail.args = { currency: 'usd', }; +export const FiatLoggedInWithPaymentMethod: Story = { + render: args => , +}; + +FiatLoggedInWithPaymentMethod.args = { + paymentOption: 'card', + accountId: '60ec0504-4a9b-11ef-84b7-0242ac120002', + accountEmail: 'john@doe.com', + accountName: 'John Doe', + login: action('login'), + stripePublishableKey: import.meta.env.STORYBOOK_STRIPE_PUBLISHABLE_KEY, + amount: 1000, + currency: 'usd', +}; + export const CryptoNoEmail: Story = { render: args => , }; From 5d06d33fd56b5353bd68bed23bcdd2c7daeccca4 Mon Sep 17 00:00:00 2001 From: blushi Date: Tue, 30 Jul 2024 11:40:36 +0200 Subject: [PATCH 06/14] feat: add Radio with existing payment methods --- .../PaymentInfoForm.CardInfo.tsx | 13 +++--- .../PaymentInfoForm.PaymentInfo.tsx | 34 ++++++++++++---- .../PaymentInfoForm/PaymentInfoForm.schema.ts | 1 + .../PaymentInfoForm.stories.tsx | 40 +++++++++++++++++++ .../PaymentInfoForm/PaymentInfoForm.tsx | 1 + 5 files changed, 73 insertions(+), 16 deletions(-) diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CardInfo.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CardInfo.tsx index 612304e807..936074152b 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CardInfo.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CardInfo.tsx @@ -1,10 +1,6 @@ import { useEffect } from 'react'; import { useFormContext, useWatch } from 'react-hook-form'; -import { - PaymentElement, - useElements, - useStripe, -} from '@stripe/react-stripe-js'; +import { PaymentElement } from '@stripe/react-stripe-js'; import CheckboxLabel from 'web-components/src/components/inputs/new/CheckboxLabel/CheckboxLabel'; import { Body } from 'web-components/src/components/typography'; @@ -14,8 +10,9 @@ import { PaymentInfoFormSchemaType } from './PaymentInfoForm.schema'; type CardInfoProps = { accountId?: string; + className?: string; }; -export const CardInfo = ({ accountId }: CardInfoProps) => { +export const CardInfo = ({ accountId, className }: CardInfoProps) => { const ctx = useFormContext(); const { register, control, setValue } = ctx; @@ -33,7 +30,7 @@ export const CardInfo = ({ accountId }: CardInfoProps) => { }, [createAccount, setValue]); return ( - <> +
{ label={Save my credit card info for next time} {...register('savePaymentMethod')} /> - +
); }; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.PaymentInfo.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.PaymentInfo.tsx index 1a9eb96bd9..a5f659ec13 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.PaymentInfo.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.PaymentInfo.tsx @@ -3,15 +3,14 @@ import { useFormContext, useWatch } from 'react-hook-form'; import { PaymentMethod } from '@stripe/stripe-js'; import Card from 'web-components/src/components/cards/Card'; -import { Body, Title } from 'web-components/src/components/typography'; +import { Radio } from 'web-components/src/components/inputs/new/Radio/Radio'; +import { Title } from 'web-components/src/components/typography'; import { CardInfo } from './PaymentInfoForm.CardInfo'; import { PaymentInfoFormSchemaType } from './PaymentInfoForm.schema'; export type PaymentInfoProps = { - accountEmail?: string; paymentMethods?: Array; - hasOrCreateActiveAccount?: boolean; accountId?: string; }; export const PaymentInfo = ({ @@ -25,9 +24,9 @@ export const PaymentInfo = ({ control: control, name: 'createAccount', }); - const savePaymentMethod = useWatch({ + const paymentMethodId = useWatch({ control: control, - name: 'savePaymentMethod', + name: 'paymentMethodId', }); useEffect(() => { @@ -40,11 +39,30 @@ export const PaymentInfo = ({ Payment info {paymentMethods && paymentMethods.length > 0 ? ( - <>TODO - ) : ( <> - + {paymentMethods.map(paymentMethod => ( +
+ +
+ ))} + + {paymentMethodId === '' && ( + + )} + + ) : ( + )} ); diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts index b69039400d..b91f4a01f2 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts @@ -9,6 +9,7 @@ export const paymentInfoFormSchema = (paymentOption: PaymentOptionsType) => paymentOption === 'card' ? z.string().email().min(1) : z.string().email(), createAccount: z.boolean(), savePaymentMethod: z.boolean(), + paymentMethodId: z.string().optional(), }); export type PaymentInfoFormSchemaType = z.infer< diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx index 9cc5fe2a70..0364df74a8 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx @@ -66,6 +66,46 @@ FiatLoggedInWithPaymentMethod.args = { stripePublishableKey: import.meta.env.STORYBOOK_STRIPE_PUBLISHABLE_KEY, amount: 1000, currency: 'usd', + paymentMethods: [ + { + id: 'pm_1PazO7B79fEloexmWKaoomoY', + object: 'payment_method', + billing_details: { + address: { + city: null, + country: 'FR', + line1: null, + line2: null, + postal_code: null, + state: null, + }, + email: null, + name: null, + phone: null, + }, + card: { + brand: 'visa', + checks: { + address_line1_check: null, + address_postal_code_check: null, + cvc_check: 'pass', + }, + country: 'US', + exp_month: 2, + exp_year: 2026, + fingerprint: 's7WT4PQ6SDYGr9R2', + funding: 'credit', + last4: '4242', + three_d_secure_usage: { supported: true }, + wallet: null, + }, + created: 1720613567, + customer: 'cus_QRt59xtRFmtqpR', + livemode: false, + metadata: {}, + type: 'card', + }, + ], }; export const CryptoNoEmail: Story = { diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx index f68e04b688..895bdd24d3 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx @@ -46,6 +46,7 @@ export const PaymentInfoForm = ({ name: accountName, createAccount: true, savePaymentMethod: true, + paymentMethodId: paymentMethods?.[0]?.id, }, mode: 'onBlur', }); From 492cd3f464412fa548a6e584e76cdc7ab247fd8d Mon Sep 17 00:00:00 2001 From: blushi Date: Tue, 30 Jul 2024 11:41:55 +0200 Subject: [PATCH 07/14] chore: revert CheckedIcon --- web-components/src/components/icons/CheckedIcon.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/web-components/src/components/icons/CheckedIcon.tsx b/web-components/src/components/icons/CheckedIcon.tsx index babc359b2e..a264ece3be 100644 --- a/web-components/src/components/icons/CheckedIcon.tsx +++ b/web-components/src/components/icons/CheckedIcon.tsx @@ -14,6 +14,7 @@ export default function CheckedIcon({ disabled, }: IconProps): JSX.Element { const theme: Theme = useTheme(); + return ( Date: Tue, 30 Jul 2024 11:52:03 +0200 Subject: [PATCH 08/14] chore: revert storybook vite config --- web-storybook/.storybook/main.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/web-storybook/.storybook/main.js b/web-storybook/.storybook/main.js index aeeeb0f1ec..210ebfe71c 100644 --- a/web-storybook/.storybook/main.js +++ b/web-storybook/.storybook/main.js @@ -69,11 +69,11 @@ module.exports = { }, }, plugins: [ - // react({ - // babel: { - // plugins: ['macros'], - // }, - // }), + react({ + babel: { + plugins: ['macros'], + }, + }), lingui(), svgrPlugin({ include: path.resolve( From 1819a04fdcec08e68ca8539f6518198eee23b8e4 Mon Sep 17 00:00:00 2001 From: blushi Date: Tue, 30 Jul 2024 12:04:01 +0200 Subject: [PATCH 09/14] chore: rename registry stories to marketplace --- .../molecules/ScrollableCodebox/ScrollableCodebox.stories.tsx | 2 +- .../AccountConnectWalletModal.stories.tsx | 2 +- .../components/organisms/BridgeModal/BridgeModal.stories.tsx | 2 +- .../CreateSellOrderModal/CreateSellOrderModal.stories.tsx | 2 +- .../organisms/CreditClassForms/CreditClassForm.stories.tsx | 2 +- .../organisms/CreditRetireForm/CreditRetireForm.stories.tsx | 2 +- .../organisms/CreditSendForm/CreditSendForm.stories.tsx | 2 +- .../organisms/EditProfileForm/EditProfileForm.stories.tsx | 2 +- .../src/components/organisms/LoginModal/LoginModal.stories.tsx | 2 +- .../src/components/organisms/MediaForm/MediaForm.stories.tsx | 2 +- .../components/organisms/MetadataForm/MetadataForm.stories.tsx | 2 +- .../Modals/CreditRetireModal/CreditRetireModal.stories.tsx | 2 +- .../Modals/CreditSendModal/CreditSendModal.stories.tsx | 2 +- .../organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx | 2 +- .../RolesForm/components/RoleField/RoleField.stories.tsx | 2 +- .../UserAccountSettings/UserAccountSettings.stories.tsx | 2 +- .../templates/MultiStepTemplate/MultiStep.stories.tsx | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/web-marketplace/src/components/molecules/ScrollableCodebox/ScrollableCodebox.stories.tsx b/web-marketplace/src/components/molecules/ScrollableCodebox/ScrollableCodebox.stories.tsx index da0fc795b2..2680264cae 100644 --- a/web-marketplace/src/components/molecules/ScrollableCodebox/ScrollableCodebox.stories.tsx +++ b/web-marketplace/src/components/molecules/ScrollableCodebox/ScrollableCodebox.stories.tsx @@ -1,7 +1,7 @@ import { ScrollableCodebox } from './ScrollableCodebox'; export default { - title: 'Registry/Molecules/Scrollable Codebox', + title: 'Marketplace/Molecules/Scrollable Codebox', component: ScrollableCodebox, }; diff --git a/web-marketplace/src/components/organisms/AccountConnectWalletModal/AccountConnectWalletModal.stories.tsx b/web-marketplace/src/components/organisms/AccountConnectWalletModal/AccountConnectWalletModal.stories.tsx index cfcbdd3a68..9d4ae27b37 100644 --- a/web-marketplace/src/components/organisms/AccountConnectWalletModal/AccountConnectWalletModal.stories.tsx +++ b/web-marketplace/src/components/organisms/AccountConnectWalletModal/AccountConnectWalletModal.stories.tsx @@ -6,7 +6,7 @@ import { getWalletsMock } from './AccountConnectWalletModal.mock'; import { AccountConnectModalState } from './AccountConnectWalletModal.types'; const meta: Meta = { - title: 'Registry/Organisms/AccountConnectWalletModal', + title: 'Marketplace/Organisms/AccountConnectWalletModal', component: AccountConnectWalletModal, }; export default meta; diff --git a/web-marketplace/src/components/organisms/BridgeModal/BridgeModal.stories.tsx b/web-marketplace/src/components/organisms/BridgeModal/BridgeModal.stories.tsx index e069a3b8db..eec953f3ae 100644 --- a/web-marketplace/src/components/organisms/BridgeModal/BridgeModal.stories.tsx +++ b/web-marketplace/src/components/organisms/BridgeModal/BridgeModal.stories.tsx @@ -10,6 +10,6 @@ export const bridgeModal = (): JSX.Element => ( ); export default { - title: 'Registry/Organisms/Bridge Modal', + title: 'Marketplace/Organisms/Bridge Modal', component: BridgeModal, }; diff --git a/web-marketplace/src/components/organisms/CreateSellOrderModal/CreateSellOrderModal.stories.tsx b/web-marketplace/src/components/organisms/CreateSellOrderModal/CreateSellOrderModal.stories.tsx index 99678e7bcc..7c29e36c3a 100644 --- a/web-marketplace/src/components/organisms/CreateSellOrderModal/CreateSellOrderModal.stories.tsx +++ b/web-marketplace/src/components/organisms/CreateSellOrderModal/CreateSellOrderModal.stories.tsx @@ -19,6 +19,6 @@ export const createSellOrderModal = (): JSX.Element => ( ); export default { - title: 'Registry/Organisms/CreateSellOrderModal', + title: 'Marketplace/Organisms/CreateSellOrderModal', component: CreateSellOrderModal, }; diff --git a/web-marketplace/src/components/organisms/CreditClassForms/CreditClassForm.stories.tsx b/web-marketplace/src/components/organisms/CreditClassForms/CreditClassForm.stories.tsx index 53ffe1053a..bce4909d20 100644 --- a/web-marketplace/src/components/organisms/CreditClassForms/CreditClassForm.stories.tsx +++ b/web-marketplace/src/components/organisms/CreditClassForms/CreditClassForm.stories.tsx @@ -61,6 +61,6 @@ export const creditClassFinished = (): JSX.Element => ( ); export default { - title: 'Registry/Organisms/Credit Class Form', + title: 'Marketplace/Organisms/Credit Class Form', component: CreditClassForm, }; diff --git a/web-marketplace/src/components/organisms/CreditRetireForm/CreditRetireForm.stories.tsx b/web-marketplace/src/components/organisms/CreditRetireForm/CreditRetireForm.stories.tsx index 00c42b3c58..88f7504d46 100644 --- a/web-marketplace/src/components/organisms/CreditRetireForm/CreditRetireForm.stories.tsx +++ b/web-marketplace/src/components/organisms/CreditRetireForm/CreditRetireForm.stories.tsx @@ -13,6 +13,6 @@ export const creditRetireForm = (): JSX.Element => ( ); export default { - title: 'Registry/Organisms/Credit Send Form', + title: 'Marketplace/Organisms/Credit Send Form', component: CreditRetireForm, }; diff --git a/web-marketplace/src/components/organisms/CreditSendForm/CreditSendForm.stories.tsx b/web-marketplace/src/components/organisms/CreditSendForm/CreditSendForm.stories.tsx index 01afe93426..fd6c4555e9 100644 --- a/web-marketplace/src/components/organisms/CreditSendForm/CreditSendForm.stories.tsx +++ b/web-marketplace/src/components/organisms/CreditSendForm/CreditSendForm.stories.tsx @@ -14,6 +14,6 @@ export const creditSendForm = (): JSX.Element => ( ); export default { - title: 'Registry/Organisms/Credit Send Form', + title: 'Marketplace/Organisms/Credit Send Form', component: CreditSendForm, }; diff --git a/web-marketplace/src/components/organisms/EditProfileForm/EditProfileForm.stories.tsx b/web-marketplace/src/components/organisms/EditProfileForm/EditProfileForm.stories.tsx index 163d73890a..e9072dec9f 100644 --- a/web-marketplace/src/components/organisms/EditProfileForm/EditProfileForm.stories.tsx +++ b/web-marketplace/src/components/organisms/EditProfileForm/EditProfileForm.stories.tsx @@ -5,7 +5,7 @@ import { EditProfileForm } from './EditProfileForm'; import { EditProfileFormActionBar } from './EditProfileForm.ActionBar'; export default { - title: 'Registry/Organisms/EditProfileForm', + title: 'Marketplace/Organisms/EditProfileForm', component: EditProfileForm, } as ComponentMeta; diff --git a/web-marketplace/src/components/organisms/LoginModal/LoginModal.stories.tsx b/web-marketplace/src/components/organisms/LoginModal/LoginModal.stories.tsx index 5a024568c0..be92bf8d78 100644 --- a/web-marketplace/src/components/organisms/LoginModal/LoginModal.stories.tsx +++ b/web-marketplace/src/components/organisms/LoginModal/LoginModal.stories.tsx @@ -6,7 +6,7 @@ import { socialProvidersMock, wallets } from './LoginModal.mock'; import { LoginModalState } from './LoginModal.types'; const meta: Meta = { - title: 'Registry/Organisms/LoginModal', + title: 'Marketplace/Organisms/LoginModal', component: LoginModal, }; export default meta; diff --git a/web-marketplace/src/components/organisms/MediaForm/MediaForm.stories.tsx b/web-marketplace/src/components/organisms/MediaForm/MediaForm.stories.tsx index ab025b84a8..a46de32724 100644 --- a/web-marketplace/src/components/organisms/MediaForm/MediaForm.stories.tsx +++ b/web-marketplace/src/components/organisms/MediaForm/MediaForm.stories.tsx @@ -2,7 +2,7 @@ import { MediaForm } from './MediaForm'; import { MediaFormSchemaType } from './MediaForm.schema'; export default { - title: 'Registry/Organisms/MediaForm', + title: 'Marketplace/Organisms/MediaForm', component: MediaForm, }; diff --git a/web-marketplace/src/components/organisms/MetadataForm/MetadataForm.stories.tsx b/web-marketplace/src/components/organisms/MetadataForm/MetadataForm.stories.tsx index 4c0a69c4f3..7e2dbc74cf 100644 --- a/web-marketplace/src/components/organisms/MetadataForm/MetadataForm.stories.tsx +++ b/web-marketplace/src/components/organisms/MetadataForm/MetadataForm.stories.tsx @@ -1,7 +1,7 @@ import { MetadataForm } from './MetadataForm'; export default { - title: 'Registry/Organisms/Metadata Form', + title: 'Marketplace/Organisms/Metadata Form', component: MetadataForm, }; diff --git a/web-marketplace/src/components/organisms/Modals/CreditRetireModal/CreditRetireModal.stories.tsx b/web-marketplace/src/components/organisms/Modals/CreditRetireModal/CreditRetireModal.stories.tsx index 3469dac784..2c418f0ea1 100644 --- a/web-marketplace/src/components/organisms/Modals/CreditRetireModal/CreditRetireModal.stories.tsx +++ b/web-marketplace/src/components/organisms/Modals/CreditRetireModal/CreditRetireModal.stories.tsx @@ -14,6 +14,6 @@ export const creditSendModal = (): JSX.Element => ( ); export default { - title: 'Registry/Organisms/Credit Retire Modal', + title: 'Marketplace/Organisms/Credit Retire Modal', component: CreditRetireModal, }; diff --git a/web-marketplace/src/components/organisms/Modals/CreditSendModal/CreditSendModal.stories.tsx b/web-marketplace/src/components/organisms/Modals/CreditSendModal/CreditSendModal.stories.tsx index cc17995e3f..b72df9dba1 100644 --- a/web-marketplace/src/components/organisms/Modals/CreditSendModal/CreditSendModal.stories.tsx +++ b/web-marketplace/src/components/organisms/Modals/CreditSendModal/CreditSendModal.stories.tsx @@ -15,6 +15,6 @@ export const creditSendModal = (): JSX.Element => ( ); export default { - title: 'Registry/Organisms/Credit Send Modal', + title: 'Marketplace/Organisms/Credit Send Modal', component: CreditSendModal, }; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx index 0364df74a8..1a51713fd7 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx @@ -5,7 +5,7 @@ import { PaymentInfoForm } from './PaymentInfoForm'; // import { files } from './PaymentInfoForm.mock'; export default { - title: 'organisms/PaymentInfoForm', + title: 'Marketplace/Organisms/PaymentInfoForm', component: PaymentInfoForm, } as Meta; diff --git a/web-marketplace/src/components/organisms/RolesForm/components/RoleField/RoleField.stories.tsx b/web-marketplace/src/components/organisms/RolesForm/components/RoleField/RoleField.stories.tsx index b0d04ba68f..7aa532a970 100644 --- a/web-marketplace/src/components/organisms/RolesForm/components/RoleField/RoleField.stories.tsx +++ b/web-marketplace/src/components/organisms/RolesForm/components/RoleField/RoleField.stories.tsx @@ -16,7 +16,7 @@ import { } from './RoleField.mock'; export default { - title: 'Registry/Organisms/RolesForm/RoleField', + title: 'Marketplace/Organisms/RolesForm/RoleField', component: RoleField, } as ComponentMeta; diff --git a/web-marketplace/src/components/organisms/UserAccountSettings/UserAccountSettings.stories.tsx b/web-marketplace/src/components/organisms/UserAccountSettings/UserAccountSettings.stories.tsx index f105aef816..2cfee13b87 100644 --- a/web-marketplace/src/components/organisms/UserAccountSettings/UserAccountSettings.stories.tsx +++ b/web-marketplace/src/components/organisms/UserAccountSettings/UserAccountSettings.stories.tsx @@ -6,7 +6,7 @@ import { Title } from 'web-components/src/components/typography'; import { UserAccountSettings } from './UserAccountSettings'; const meta: Meta = { - title: 'Registry/Organisms/UserAccountSettings', + title: 'Marketplace/Organisms/UserAccountSettings', component: UserAccountSettings, args: { email: 'joemcnab@gmail.com', diff --git a/web-marketplace/src/components/templates/MultiStepTemplate/MultiStep.stories.tsx b/web-marketplace/src/components/templates/MultiStepTemplate/MultiStep.stories.tsx index 83e803c8dc..7fdaf5db97 100644 --- a/web-marketplace/src/components/templates/MultiStepTemplate/MultiStep.stories.tsx +++ b/web-marketplace/src/components/templates/MultiStepTemplate/MultiStep.stories.tsx @@ -6,7 +6,7 @@ import { useMultiStep } from './MultiStep.context'; import { MultiStepTemplate } from './MultiStepTemplate'; export default { - title: 'Registry/Templates/Multi Step Template', + title: 'Marketplace/Templates/Multi Step Template', component: MultiStepTemplate, }; From 49b7e2a6d789533ffea5a959562061ccce4a75ec Mon Sep 17 00:00:00 2001 From: blushi Date: Tue, 30 Jul 2024 12:08:11 +0200 Subject: [PATCH 10/14] chore: rm import --- .../organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx index 1a51713fd7..d23fc7e59d 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx @@ -2,7 +2,6 @@ import { action } from '@storybook/addon-actions'; import { Meta, StoryObj } from '@storybook/react'; import { PaymentInfoForm } from './PaymentInfoForm'; -// import { files } from './PaymentInfoForm.mock'; export default { title: 'Marketplace/Organisms/PaymentInfoForm', From fc5fc72ff8e0031cc51e2ef79186af48dd5f47ab Mon Sep 17 00:00:00 2001 From: blushi Date: Tue, 30 Jul 2024 13:53:08 +0200 Subject: [PATCH 11/14] fix: email optional if crypto --- .../organisms/PaymentInfoForm/PaymentInfoForm.schema.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts index b91f4a01f2..58ad0d9942 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts @@ -6,7 +6,9 @@ export const paymentInfoFormSchema = (paymentOption: PaymentOptionsType) => z.object({ name: paymentOption === 'card' ? z.string().min(1) : z.string(), email: - paymentOption === 'card' ? z.string().email().min(1) : z.string().email(), + paymentOption === 'card' + ? z.string().email().min(1) + : z.string().email().optional(), createAccount: z.boolean(), savePaymentMethod: z.boolean(), paymentMethodId: z.string().optional(), From 661c2e678ab3073fb1cb3576fc2cf14649b94891 Mon Sep 17 00:00:00 2001 From: blushi Date: Tue, 30 Jul 2024 14:43:22 +0200 Subject: [PATCH 12/14] fix: use zod union for optional email --- .../organisms/PaymentInfoForm/PaymentInfoForm.schema.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts index 58ad0d9942..f771e18149 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.schema.ts @@ -8,7 +8,7 @@ export const paymentInfoFormSchema = (paymentOption: PaymentOptionsType) => email: paymentOption === 'card' ? z.string().email().min(1) - : z.string().email().optional(), + : z.union([z.literal(''), z.string().email()]), createAccount: z.boolean(), savePaymentMethod: z.boolean(), paymentMethodId: z.string().optional(), From 9930ac48afafbf261b50429d7eaa0a754bd3700d Mon Sep 17 00:00:00 2001 From: blushi Date: Wed, 31 Jul 2024 10:56:01 +0200 Subject: [PATCH 13/14] fix: address review comments --- .../new/CheckboxLabel/CheckboxLabel.tsx | 5 +++-- .../PaymentInfoForm.CardInfo.tsx | 6 ++++- .../PaymentInfoForm.CustomerInfo.tsx | 22 +++++++++++-------- .../PaymentInfoForm.stories.tsx | 19 ++++++++++++++++ .../PaymentInfoForm/PaymentInfoForm.tsx | 2 ++ 5 files changed, 42 insertions(+), 12 deletions(-) diff --git a/web-components/src/components/inputs/new/CheckboxLabel/CheckboxLabel.tsx b/web-components/src/components/inputs/new/CheckboxLabel/CheckboxLabel.tsx index 10c66ffee1..8382f310a1 100644 --- a/web-components/src/components/inputs/new/CheckboxLabel/CheckboxLabel.tsx +++ b/web-components/src/components/inputs/new/CheckboxLabel/CheckboxLabel.tsx @@ -7,6 +7,7 @@ import FormControlLabel, { import FormHelperText from '@mui/material/FormHelperText'; import { Theme } from '../../../../theme/muiTheme'; +import { cn } from '../../../../utils/styles/cn'; import { Subtitle } from '../../../typography'; import Checkbox from '../CheckBox/Checkbox'; @@ -39,8 +40,8 @@ const CheckboxLabel = forwardRef( return ( <> { className="pt-30" checked={savePaymentMethod} disabled={!createAccount && !accountId} - label={Save my credit card info for next time} + label={ + + Save my credit card info for next time + + } {...register('savePaymentMethod')} />
diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx index 6f94bdb242..47c68d00c4 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx @@ -20,6 +20,7 @@ export type CustomerInfoProps = { accountEmail?: string; accountName?: string; login: () => void; + retiring: boolean; }; export const CustomerInfo = ({ @@ -28,6 +29,7 @@ export const CustomerInfo = ({ accountEmail, accountName, accountId, + retiring, login, }: CustomerInfoProps) => { // const { _ } = useLingui(); @@ -50,14 +52,16 @@ export const CustomerInfo = ({ )} - + {retiring && ( + + )} + Yes, please create an account for me so I can easily see my purchase details and retirement certificate when I log in diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx index d23fc7e59d..c42ec81247 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.stories.tsx @@ -20,6 +20,7 @@ FiatLoggedOut.args = { stripePublishableKey: import.meta.env.STORYBOOK_STRIPE_PUBLISHABLE_KEY, amount: 1000, currency: 'usd', + retiring: true, }; export const FiatLoggedInNoEmail: Story = { @@ -35,6 +36,7 @@ FiatLoggedInNoEmail.args = { stripePublishableKey: import.meta.env.STORYBOOK_STRIPE_PUBLISHABLE_KEY, amount: 1000, currency: 'usd', + retiring: true, }; export const FiatLoggedInWithEmail: Story = { @@ -50,6 +52,7 @@ FiatLoggedInWithEmail.args = { stripePublishableKey: import.meta.env.STORYBOOK_STRIPE_PUBLISHABLE_KEY, amount: 1000, currency: 'usd', + retiring: true, }; export const FiatLoggedInWithPaymentMethod: Story = { @@ -65,6 +68,7 @@ FiatLoggedInWithPaymentMethod.args = { stripePublishableKey: import.meta.env.STORYBOOK_STRIPE_PUBLISHABLE_KEY, amount: 1000, currency: 'usd', + retiring: true, paymentMethods: [ { id: 'pm_1PazO7B79fEloexmWKaoomoY', @@ -117,6 +121,20 @@ CryptoNoEmail.args = { login: action('login'), amount: 1000, currency: 'usd', + retiring: true, +}; + +export const CryptoTradableCredits: Story = { + render: args => , +}; + +CryptoTradableCredits.args = { + paymentOption: 'crypto', + wallet: { address: 'regen123456', shortAddress: 'regen123' }, + login: action('login'), + amount: 1000, + currency: 'usd', + retiring: false, }; export const CryptoWithEmail: Story = { @@ -131,4 +149,5 @@ CryptoWithEmail.args = { login: action('login'), amount: 1000, currency: 'usd', + retiring: true, }; diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx index 895bdd24d3..2a34227dff 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx @@ -38,6 +38,7 @@ export const PaymentInfoForm = ({ stripePublishableKey, amount, currency, + retiring, }: PaymentInfoFormProps) => { const form = useZodForm({ schema: paymentInfoFormSchema(paymentOption), @@ -100,6 +101,7 @@ export const PaymentInfoForm = ({ accountEmail={accountEmail} accountId={accountId} accountName={accountName} + retiring={retiring} /> {paymentOption === 'card' && stripePromise && ( From b207fdce0d164477063b15dcaeb805eebda5b773 Mon Sep 17 00:00:00 2001 From: blushi Date: Wed, 7 Aug 2024 16:28:00 +0200 Subject: [PATCH 14/14] chore: address review comments --- .../PaymentInfoForm.CustomerInfo.tsx | 4 +- .../PaymentInfoForm/PaymentInfoForm.tsx | 75 ++++++++++--------- 2 files changed, 43 insertions(+), 36 deletions(-) diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx index 47c68d00c4..caed1c6243 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.CustomerInfo.tsx @@ -54,7 +54,7 @@ export const CustomerInfo = ({ {retiring && ( diff --git a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx index 2a34227dff..c2094c55f3 100644 --- a/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx +++ b/web-marketplace/src/components/organisms/PaymentInfoForm/PaymentInfoForm.tsx @@ -1,3 +1,4 @@ +import { useMemo } from 'react'; import { Elements } from '@stripe/react-stripe-js'; import { loadStripe, StripeElementsOptionsMode } from '@stripe/stripe-js'; @@ -52,44 +53,50 @@ export const PaymentInfoForm = ({ mode: 'onBlur', }); - const stripePromise = - paymentOption === 'card' && - stripePublishableKey && - loadStripe(stripePublishableKey); + const stripePromise = useMemo( + () => + paymentOption === 'card' && + stripePublishableKey && + loadStripe(stripePublishableKey), + [paymentOption, stripePublishableKey], + ); - const options: StripeElementsOptionsMode = { - mode: 'payment', - amount, - currency, - paymentMethodCreation: 'manual', - fonts: [ - { - cssSrc: - 'https://fonts.googleapis.com/css?family=Lato:100,300,400,700,800', - }, - ], - appearance: { - theme: 'stripe', - variables: { - colorText: '#000', - colorDanger: '#DE4526', - fontFamily: defaultFontFamily, - spacingUnit: '5px', - borderRadius: '2px', - }, - rules: { - '.Label': { - fontWeight: 'bold', - fontSize: '16px', + const options: StripeElementsOptionsMode = useMemo( + () => ({ + mode: 'payment', + amount, + currency, + paymentMethodCreation: 'manual', + fonts: [ + { + cssSrc: + 'https://fonts.googleapis.com/css?family=Lato:100,300,400,700,800', }, - '.Input': { - boxShadow: 'none', - borderColor: '#D2D5D9', - marginTop: '9px', + ], + appearance: { + theme: 'stripe', + variables: { + colorText: '#000', + colorDanger: '#DE4526', + fontFamily: defaultFontFamily, + spacingUnit: '5px', + borderRadius: '2px', + }, + rules: { + '.Label': { + fontWeight: 'bold', + fontSize: '16px', + }, + '.Input': { + boxShadow: 'none', + borderColor: '#D2D5D9', + marginTop: '9px', + }, }, }, - }, - }; + }), + [amount, currency], + ); return (