= {
HYPERLINK: 'Enter URL',
WECHAT: 'Enter Username',
@@ -51,7 +52,7 @@ export const SocialMediaSelector = ({ initialSocials }: Props) => {
Social Profiles
This will help us to contact you
-
+
{socialMediaList.map((social, index) => {
const isActive = chosenSocial.some((chosen) => chosen === social)
return (
@@ -64,7 +65,7 @@ export const SocialMediaSelector = ({ initialSocials }: Props) => {
/>
)
})}
-
+
{chosenSocial.map((social, index) => (
{
)
}
-
-const SocialMediaInput = styled.div`
- display: grid;
- gap: 10px;
-
- > :nth-child(3) {
- display: flex;
- flex-wrap: wrap;
- gap: 10px;
- }
-`
diff --git a/packages/ui/src/memberships/components/SocialMediaSelector/SocialMediaSelector.tsx b/packages/ui/src/memberships/components/SocialMediaSelector/SocialMediaSelector.tsx
index 7f30a82a61..e03e8a0765 100644
--- a/packages/ui/src/memberships/components/SocialMediaSelector/SocialMediaSelector.tsx
+++ b/packages/ui/src/memberships/components/SocialMediaSelector/SocialMediaSelector.tsx
@@ -61,7 +61,7 @@ export const SocialMediaSelector = ({ initialSocials }: Props) => {
Social Profiles
This will help us to contact you
-
+
{socialMediaList.map((social, index) => {
const isActive = chosenSocial.some((chosen) => chosen === social)
return (
@@ -74,7 +74,7 @@ export const SocialMediaSelector = ({ initialSocials }: Props) => {
/>
)
})}
-
+
{chosenSocial.map((social, index) => (
{
)
}
-const SocialMediaInput = styled.div`
+export const SocialMediaInput = styled.div`
display: grid;
gap: 10px;
+`
- > :nth-child(3) {
- display: flex;
- flex-wrap: wrap;
- gap: 10px;
- }
+export const SocialMediaSelectorList = styled.div`
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
+ gap: 10px;
`
diff --git a/packages/ui/src/memberships/components/SocialMediaTile/SocialMediaTile.tsx b/packages/ui/src/memberships/components/SocialMediaTile/SocialMediaTile.tsx
index 78b32e2cc0..294029b78f 100644
--- a/packages/ui/src/memberships/components/SocialMediaTile/SocialMediaTile.tsx
+++ b/packages/ui/src/memberships/components/SocialMediaTile/SocialMediaTile.tsx
@@ -74,7 +74,6 @@ const Wrapper = styled.div<{ active?: boolean }>`
user-select: none;
place-items: center;
height: 92px;
- width: 120px;
border: 1px solid ${Colors.Black[300]};
border-radius: ${BorderRad.m};
text-align: center;
diff --git a/packages/ui/src/memberships/modals/BuyMembershipModal/BuyMembershipFormModal.tsx b/packages/ui/src/memberships/modals/BuyMembershipModal/BuyMembershipFormModal.tsx
index 488f7ecf7b..0b1143fdd4 100644
--- a/packages/ui/src/memberships/modals/BuyMembershipModal/BuyMembershipFormModal.tsx
+++ b/packages/ui/src/memberships/modals/BuyMembershipModal/BuyMembershipFormModal.tsx
@@ -60,7 +60,7 @@ interface BuyMembershipFormModalProps {
membershipPrice?: BalanceOf
}
-interface BuyMembershipFormProps extends Omit {
+export interface BuyMembershipFormProps extends Omit {
type: 'onBoarding' | 'general'
membershipAccount?: string
changeMembershipAccount?: () => void
@@ -271,14 +271,9 @@ export const BuyMembershipForm = ({
-
- {type === 'onBoarding' && (
-
-
- Change account
-
- )}
-
+ form.setValue('hasTerms', hasTerms, { shouldValidate: true })}
>
@@ -293,7 +288,7 @@ export const BuyMembershipForm = ({
.
-
+
{type === 'general' && (
)}
+
+ {type === 'onBoarding' && (
+
+
+ Change account
+
+ )}
{isUploading ? : 'Create a Membership'}
-
+
>
)
}
@@ -322,8 +324,7 @@ export const BuyMembershipFormModal = ({ onClose, onSubmit, membershipPrice }: B
)
}
-export const StyledFooter = styled(ModalFooter)`
- & > label:first-child {
- margin-right: auto;
- }
+const StyledCheckbox = styled(Checkbox)`
+ flex-shrink: 1;
+ margin-right: auto;
`
diff --git a/packages/ui/src/memberships/modals/BuyMembershipModal/BuyMembershipModal.stories.tsx b/packages/ui/src/memberships/modals/BuyMembershipModal/BuyMembershipModal.stories.tsx
index 3106893ab1..25badac2f8 100644
--- a/packages/ui/src/memberships/modals/BuyMembershipModal/BuyMembershipModal.stories.tsx
+++ b/packages/ui/src/memberships/modals/BuyMembershipModal/BuyMembershipModal.stories.tsx
@@ -1,23 +1,39 @@
-import { Meta, Story } from '@storybook/react'
-import React from 'react'
-import { MemoryRouter } from 'react-router-dom'
+import React, { Meta, StoryFn } from '@storybook/react'
-import { BuyMembershipModal } from '@/memberships/modals/BuyMembershipModal/BuyMembershipModal'
-import { MockApolloProvider } from '@/mocks/components/storybook/MockApolloProvider'
+import { ModalHeader, ScrolledModal } from '@/common/components/Modal'
+import { joy } from '@/mocks/helpers'
+import { asChainData } from '@/mocks/helpers/asChainData'
+
+import { BuyMembershipForm, BuyMembershipFormProps } from './BuyMembershipFormModal'
export default {
title: 'Member/Modals/BuyMembershipModal',
- component: BuyMembershipModal,
+ component: BuyMembershipForm,
+
+ argTypes: {
+ type: {
+ options: ['onBoarding', 'general'],
+ control: { type: 'radio' },
+ },
+ onClose: { action: 'Close modal' },
+ },
+
+ args: {
+ type: 'general',
+ membershipPrice: 16.6666666666,
+ },
} as Meta
-const Template: Story = () => {
+export const Default: StoryFn = ({ onClose, ...args }) => {
+ const props = {
+ ...args,
+ membershipPrice: asChainData(joy(args.membershipPrice)),
+ } as BuyMembershipFormProps
+
return (
-
-
-
-
-
+
+
+
+
)
}
-
-export const Default = Template.bind({})
diff --git a/packages/ui/src/memberships/modals/EmailSubscriptionModal/EmaiSubscriptionFormModal.tsx b/packages/ui/src/memberships/modals/EmailSubscriptionModal/EmaiSubscriptionFormModal.tsx
index 9421501433..2ac15a355f 100644
--- a/packages/ui/src/memberships/modals/EmailSubscriptionModal/EmaiSubscriptionFormModal.tsx
+++ b/packages/ui/src/memberships/modals/EmailSubscriptionModal/EmaiSubscriptionFormModal.tsx
@@ -1,6 +1,5 @@
import React from 'react'
import { useForm, FormProvider } from 'react-hook-form'
-import styled from 'styled-components'
import * as Yup from 'yup'
import { ButtonGhost } from '@/common/components/buttons'
@@ -61,21 +60,18 @@ export const EmailSubscriptionFormModal = ({ onClose, onSubmit }: Props) => {
-
-
- Not now
-
-
+ extraButtons={
+
+ Not now
+
+ }
+ />
)
}
-
-const StyledFooter = styled(ModalTransactionFooter)`
- grid-column-gap: 0;
-`
diff --git a/packages/ui/src/mocks/providers/accounts.tsx b/packages/ui/src/mocks/providers/accounts.tsx
index f8578a4295..65919f2f13 100644
--- a/packages/ui/src/mocks/providers/accounts.tsx
+++ b/packages/ui/src/mocks/providers/accounts.tsx
@@ -42,7 +42,7 @@ type Balances =
vestingLocked?: Balance
}
-type AccountMock = {
+export type AccountMock = {
balances?: Balances
account?: { name: string; address: string }
member?: Membership
diff --git a/packages/ui/src/proposals/components/AddProposalButton.tsx b/packages/ui/src/proposals/components/AddProposalButton.tsx
index 7713fde320..00057bef7f 100644
--- a/packages/ui/src/proposals/components/AddProposalButton.tsx
+++ b/packages/ui/src/proposals/components/AddProposalButton.tsx
@@ -5,7 +5,6 @@ import { TransactionButton } from '@/common/components/buttons/TransactionButton
import { PlusIcon } from '@/common/components/icons/PlusIcon'
import { useFirstObservableValue } from '@/common/hooks/useFirstObservableValue'
import { useModal } from '@/common/hooks/useModal'
-import { useResponsive } from '@/common/hooks/useResponsive'
import { AddNewProposalModalCall } from '@/proposals/modals/AddNewProposal'
export const AddProposalButton = () => {
@@ -24,10 +23,6 @@ export const AddProposalButton = () => {
)
const areProposalSlotsAvailable = api && maxProposals && currentProposals?.lt(maxProposals)
- const { size } = useResponsive()
-
- if (size === 'xxs' || size === 'xs') return null
-
return (
{
-
+
diff --git a/packages/ui/src/proposals/modals/AddNewProposal/AddNewProposalModal.tsx b/packages/ui/src/proposals/modals/AddNewProposal/AddNewProposalModal.tsx
index 51cdb89900..69beb78b9d 100644
--- a/packages/ui/src/proposals/modals/AddNewProposal/AddNewProposalModal.tsx
+++ b/packages/ui/src/proposals/modals/AddNewProposal/AddNewProposalModal.tsx
@@ -366,13 +366,14 @@ export const AddNewProposalModal = () => {
label: isLastStepActive(getSteps(service)) ? 'Create proposal' : 'Next step',
onClick: () => send('NEXT'),
}}
- >
- {isExecutionError && (
-
- I understand the implications of overriding the execution constraints validation.
-
- )}
-
+ extraLeftButtons={
+ isExecutionError && (
+
+ I understand the implications of overriding the execution constraints validation.
+
+ )
+ }
+ />
)
}
diff --git a/packages/ui/src/proposals/modals/AddNewProposal/components/SpecificParameters/modals/PreviewAndValidate/PreviewAndValidateModal.tsx b/packages/ui/src/proposals/modals/AddNewProposal/components/SpecificParameters/modals/PreviewAndValidate/PreviewAndValidateModal.tsx
index 2398af8fdc..b5d5ca99b5 100644
--- a/packages/ui/src/proposals/modals/AddNewProposal/components/SpecificParameters/modals/PreviewAndValidate/PreviewAndValidateModal.tsx
+++ b/packages/ui/src/proposals/modals/AddNewProposal/components/SpecificParameters/modals/PreviewAndValidate/PreviewAndValidateModal.tsx
@@ -29,7 +29,7 @@ import {
SidePanelTop,
SidePaneTitle,
} from '@/common/components/SidePane'
-import { TransactionFee } from '@/common/components/TransactionFee'
+import { TransactionInfo } from '@/common/components/TransactionInfo'
import { TokenValue } from '@/common/components/typography'
import { Colors } from '@/common/constants'
import { useKeyring } from '@/common/hooks/useKeyring'
@@ -167,7 +167,7 @@ export const PreviewAndValidateModal = ({ onClose }: PreviewAndValidateModalProp
-
+
diff --git a/packages/ui/test/accounts/modal/TransferModal.test.tsx b/packages/ui/test/accounts/modal/TransferModal.test.tsx
index afdcfa2da2..90f0adae16 100644
--- a/packages/ui/test/accounts/modal/TransferModal.test.tsx
+++ b/packages/ui/test/accounts/modal/TransferModal.test.tsx
@@ -115,7 +115,7 @@ describe('UI: TransferModal', () => {
renderModal({ from: alice, to: bob })
expect(await getButton('Transfer tokens')).toBeDisabled()
- await fillAmount(1)
+ await fillAmount(100)
const button = await getButton(/transfer tokens/i)
expect(button).not.toBeDisabled()
@@ -124,7 +124,7 @@ describe('UI: TransferModal', () => {
expect(await screen.findByText(/modals.authorizeTransaction.title/i)).toBeDefined()
expect((await screen.findByText(/modals.transactionFee.label/i))?.parentNode?.textContent).toMatch(
- /^modals.transactionFee.label25/
+ /^Amount:100modals.transactionFee.label25/
)
})