Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(payment_providers): Add MoneyHash #2005

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/components/PaymentProviderChip.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { useInternationalization } from '~/hooks/core/useInternationalization'
import Adyen from '~/public/images/adyen.svg'
import Cashfree from '~/public/images/cashfree.svg'
import Gocardless from '~/public/images/gocardless.svg'
import Moneyhash from '~/public/images/moneyhash.svg'
import Stripe from '~/public/images/stripe.svg'
import { tw } from '~/styles/utils'

Expand Down Expand Up @@ -32,6 +33,10 @@ const providers: Record<ProviderTypeEnum, { icon: JSX.Element; label: string }>
icon: <Cashfree />,
label: 'text_17367626793434wkg1rk0114',
},
[ProviderTypeEnum.Moneyhash]: {
icon: <Moneyhash />,
label: 'text_1733427981129n3wxjui0bex',
},
}

export const PaymentProviderChip: FC<PaymentProviderChipProps> = ({
Expand Down
9 changes: 9 additions & 0 deletions src/components/customers/CustomerMainInfos.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import Anrok from '~/public/images/anrok.svg'
import Cashfree from '~/public/images/cashfree.svg'
import Gocardless from '~/public/images/gocardless.svg'
import Hubspot from '~/public/images/hubspot.svg'
import Moneyhash from '~/public/images/moneyhash.svg'
import Netsuite from '~/public/images/netsuite.svg'
import Salesforce from '~/public/images/salesforce.svg'
import Stripe from '~/public/images/stripe.svg'
Expand Down Expand Up @@ -142,6 +143,12 @@ gql`
code
}

... on MoneyhashProvider {
id
name
code
}

... on AdyenProvider {
id
name
Expand Down Expand Up @@ -562,6 +569,8 @@ export const CustomerMainInfos = ({ loading, customer, onEdit }: CustomerMainInf
<Adyen />
) : paymentProvider === ProviderTypeEnum?.Cashfree ? (
<Cashfree />
) : paymentProvider === ProviderTypeEnum?.Moneyhash ? (
<Moneyhash />
) : null}
</Avatar>
<Typography color="grey700">{linkedProvider?.name}</Typography>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { useInternationalization } from '~/hooks/core/useInternationalization'
import Adyen from '~/public/images/adyen.svg'
import Cashfree from '~/public/images/cashfree.svg'
import GoCardless from '~/public/images/gocardless.svg'
import Moneyhash from '~/public/images/moneyhash.svg'
import Stripe from '~/public/images/stripe.svg'

import { ExternalAppsAccordionLayout } from './ExternalAppsAccordionLayout'
Expand Down Expand Up @@ -52,6 +53,13 @@ gql`
name
code
}

... on MoneyhashProvider {
__typename
id
name
code
}
}
}
}
Expand All @@ -67,6 +75,7 @@ const avatarMapping: Record<ProviderTypeEnum, ReactNode> = {
[ProviderTypeEnum.Cashfree]: <Cashfree />,
[ProviderTypeEnum.Gocardless]: <GoCardless />,
[ProviderTypeEnum.Stripe]: <Stripe />,
[ProviderTypeEnum.Moneyhash]: <Moneyhash />,
}

export const PaymentProvidersAccordion: FC<PaymentProvidersAccordionProps> = ({
Expand Down Expand Up @@ -183,7 +192,9 @@ export const PaymentProvidersAccordion: FC<PaymentProvidersAccordionProps> = ({
? translate('text_635bdbda84c98758f9bba8aa')
: formikProps.values.paymentProvider === ProviderTypeEnum.Adyen
? translate('text_645d0728ea0a5a7bbf76d5c7')
: translate('text_635bdbda84c98758f9bba89e')
: formikProps.values.paymentProvider === ProviderTypeEnum.Moneyhash
? translate('text_1733992108437qlovqhjhqj4')
: translate('text_635bdbda84c98758f9bba89e')
}${
formikProps.values.paymentProviderCode
? ` • ${
Expand All @@ -207,6 +218,12 @@ export const PaymentProvidersAccordion: FC<PaymentProvidersAccordionProps> = ({
)}
</div>

{formikProps.values.paymentProvider === ProviderTypeEnum.Moneyhash && (
<div className="border-t border-grey-400 p-4">
<Alert type="info">{translate('text_64aeb7b998c4322918c84214')}</Alert>
</div>
)}

{formikProps.values.paymentProvider === ProviderTypeEnum.Stripe && (
<div className="flex flex-col gap-6 p-4 shadow-t">
<div>
Expand Down
3 changes: 3 additions & 0 deletions src/components/settings/integrations/AddAdyenDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ gql`
... on StripeProvider {
id
}
... on MoneyhashProvider {
id
}
}
}

Expand Down
3 changes: 3 additions & 0 deletions src/components/settings/integrations/AddCashfreeDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ gql`
... on StripeProvider {
id
}
... on MoneyhashProvider {
id
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,17 @@ import {
AdyenForCreateAndEditSuccessRedirectUrlFragment,
CashfreeForCreateAndEditSuccessRedirectUrlFragment,
GocardlessForCreateAndEditSuccessRedirectUrlFragment,
MoneyhashForCreateAndEditSuccessRedirectUrlFragment,
StripeForCreateAndEditSuccessRedirectUrlFragment,
UpdateAdyenPaymentProviderInput,
UpdateCashfreePaymentProviderInput,
UpdateGocardlessPaymentProviderInput,
UpdateMoneyhashPaymentProviderInput,
UpdateStripePaymentProviderInput,
useUpdateAdyenPaymentProviderMutation,
useUpdateCashfreePaymentProviderMutation,
useUpdateGocardlessPaymentProviderMutation,
useUpdateMoneyhashPaymentProviderMutation,
useUpdateStripePaymentProviderMutation,
} from '~/generated/graphql'
import { useInternationalization } from '~/hooks/core/useInternationalization'
Expand All @@ -44,6 +47,12 @@ gql`
successRedirectUrl
}

fragment MoneyhashForCreateAndEditSuccessRedirectUrl on MoneyhashProvider {
id
flowId
successRedirectUrl
}

mutation updateAdyenPaymentProvider($input: UpdateAdyenPaymentProviderInput!) {
updateAdyenPaymentProvider(input: $input) {
id
Expand Down Expand Up @@ -71,6 +80,13 @@ gql`
successRedirectUrl
}
}

mutation updateMoneyhashPaymentProvider($input: UpdateMoneyhashPaymentProviderInput!) {
updateMoneyhashPaymentProvider(input: $input) {
id
flowId
}
}
`

const AddEditDeleteSuccessRedirectUrlDialogMode = {
Expand All @@ -84,6 +100,7 @@ const AddEditDeleteSuccessRedirectUrlDialogProviderType = {
Stripe: 'Stripe',
GoCardless: 'GoCardless',
Cashfree: 'Cashfree',
Moneyhash: 'Moneyhash',
} as const

type LocalProviderType = {
Expand All @@ -94,6 +111,7 @@ type LocalProviderType = {
| CashfreeForCreateAndEditSuccessRedirectUrlFragment
| GocardlessForCreateAndEditSuccessRedirectUrlFragment
| StripeForCreateAndEditSuccessRedirectUrlFragment
| MoneyhashForCreateAndEditSuccessRedirectUrlFragment
| null
}

Expand Down Expand Up @@ -158,11 +176,23 @@ export const AddEditDeleteSuccessRedirectUrlDialog =
},
})

const [updateMoneyhashProvider] = useUpdateMoneyhashPaymentProviderMutation({
onCompleted(data) {
if (data && data.updateMoneyhashPaymentProvider) {
addToast({
message: successToastMessage,
severity: 'success',
})
}
},
})

const formikProps = useFormik<
| UpdateAdyenPaymentProviderInput
| UpdateCashfreePaymentProviderInput
| UpdateGocardlessPaymentProviderInput
| UpdateStripePaymentProviderInput
| UpdateMoneyhashPaymentProviderInput
>({
initialValues: {
id: localData?.provider?.id || '',
Expand All @@ -179,6 +209,7 @@ export const AddEditDeleteSuccessRedirectUrlDialog =
[AddEditDeleteSuccessRedirectUrlDialogProviderType.Stripe]: updateStripeProvider,
[AddEditDeleteSuccessRedirectUrlDialogProviderType.GoCardless]: updateGocardlessProvider,
[AddEditDeleteSuccessRedirectUrlDialogProviderType.Cashfree]: updateCashfreeProvider,
[AddEditDeleteSuccessRedirectUrlDialogProviderType.Moneyhash]: updateMoneyhashProvider,
}

const method = methodLoojup[localData?.type as LocalProviderType['type']]
Expand Down
3 changes: 3 additions & 0 deletions src/components/settings/integrations/AddGocardlessDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ gql`
... on StripeProvider {
id
}
... on MoneyhashProvider {
id
}
}
}

Expand Down
Loading