Skip to content

Commit 85e9588

Browse files
authored
Setup a separate redux state for create (#4513)
1 parent 7867add commit 85e9588

File tree

103 files changed

+1196
-672
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+1196
-672
lines changed

src/components/NftRewards/AddNftCollectionForm/AddNftCollectionForm.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ import { Form, FormInstance } from 'antd'
44
import ExternalLink from 'components/ExternalLink'
55
import TooltipLabel from 'components/TooltipLabel'
66
import { JuiceInput } from 'components/inputs/JuiceTextInput'
7-
import { NftRewardTier } from 'models/nftRewards'
7+
import { NftPostPayModalConfig, NftRewardTier } from 'models/nftRewards'
88
import { CreateCollapse } from 'packages/v2v3/components/Create/components/CreateCollapse/CreateCollapse'
99
import { OptionalHeader } from 'packages/v2v3/components/Create/components/OptionalHeader'
1010
import { useLockPageRulesWrapper } from 'packages/v2v3/components/Create/hooks/useLockPageRulesWrapper'
11+
import { NftRewardsData } from 'redux/slices/shared/v2ProjectTypes'
1112
import { inputMustExistRule } from 'utils/antdRules'
1213
import { RewardsList } from '../RewardsList/RewardsList'
1314
import { NftAdvancedFormItems } from './NftAdvancedFormItems'
@@ -28,11 +29,15 @@ export type NftRewardsFormProps = Partial<{
2829
export const AddNftCollectionForm = ({
2930
form,
3031
initialValues,
32+
postPayModalData,
33+
nftRewardsData,
3134
okButton,
3235
onFinish,
3336
}: {
3437
form: FormInstance<NftRewardsFormProps>
3538
initialValues?: NftRewardsFormProps
39+
postPayModalData: NftPostPayModalConfig | undefined
40+
nftRewardsData: NftRewardsData
3641
okButton: React.ReactNode
3742
onFinish?: VoidFunction
3843
}) => {
@@ -53,7 +58,7 @@ export const AddNftCollectionForm = ({
5358
>
5459
<div className="flex flex-col gap-6">
5560
<Form.Item noStyle name="rewards">
56-
<RewardsList allowCreate />
61+
<RewardsList allowCreate nftRewardsData={nftRewardsData} />
5762
</Form.Item>
5863

5964
{hasNfts && (
@@ -122,7 +127,9 @@ export const AddNftCollectionForm = ({
122127
header={<OptionalHeader header={t`Payment Success Pop-up`} />}
123128
hideDivider
124129
>
125-
<NftPaymentSuccessFormItems />
130+
<NftPaymentSuccessFormItems
131+
postPayModalData={postPayModalData}
132+
/>
126133
</CreateCollapse.Panel>
127134

128135
<CreateCollapse.Panel

src/components/NftRewards/AddNftCollectionForm/NftPaymentSuccessFormItems.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,19 @@ import { Form } from 'antd'
44
import { NftPostPayModal } from 'components/NftRewards/NftPostPayModal'
55
import TooltipLabel from 'components/TooltipLabel'
66
import { CreateButton } from 'components/buttons/CreateButton/CreateButton'
7-
87
import { JuiceTextArea } from 'components/inputs/JuiceTextArea'
98
import { JuiceInput } from 'components/inputs/JuiceTextInput'
109
import { useModal } from 'hooks/useModal'
11-
import { useAppSelector } from 'redux/hooks/useAppSelector'
10+
import { NftPostPayModalConfig } from 'models/nftRewards'
1211

1312
export function NftPaymentSuccessFormItems({
1413
hidePreview,
14+
postPayModalData,
1515
}: {
1616
hidePreview?: boolean
17+
postPayModalData: NftPostPayModalConfig | undefined
1718
}) {
1819
const postPayModal = useModal()
19-
const postPayModalData = useAppSelector(
20-
state => state.editingV2Project.nftRewards.postPayModal,
21-
)
2220
return (
2321
<>
2422
<div className="flex flex-col gap-4 pt-3 pb-2">

src/components/NftRewards/RewardsList/AddEditRewardModal.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { DEFAULT_NFT_MAX_SUPPLY } from 'packages/v2v3/constants/nftRewards'
2020
import { V2V3_CURRENCY_USD } from 'packages/v2v3/utils/currency'
2121
import { UploadRequestOption } from 'rc-upload/lib/interface'
2222
import { useCallback, useEffect, useLayoutEffect, useState } from 'react'
23-
import { useAppSelector } from 'redux/hooks/useAppSelector'
23+
import { NftRewardsData } from 'redux/slices/shared/v2ProjectTypes'
2424
import {
2525
inputIsIntegerRule,
2626
inputIsValidUrlRule,
@@ -57,13 +57,15 @@ export const NEW_NFT_ID_LOWER_LIMIT = 1000000
5757
export const AddEditRewardModal = ({
5858
className,
5959
editingData,
60+
nftRewards,
6061
open,
6162
onOk,
6263
onCancel,
6364
withEditWarning = false,
6465
}: {
6566
className?: string
6667
editingData?: NftRewardTier | undefined
68+
nftRewards: NftRewardsData
6769
open?: boolean
6870
onOk: (reward: NftRewardTier) => void
6971
onCancel: VoidFunction
@@ -74,7 +76,6 @@ export const AddEditRewardModal = ({
7476
const [isReservingNfts, setIsReservingNfts] = useState<boolean>(false)
7577
const [advancedOptionsOpen, setAdvancedOptionsOpen] = useState<boolean>(false)
7678

77-
const { nftRewards } = useAppSelector(state => state.editingV2Project)
7879
const nftCurrency = nftRewards?.pricing.currency
7980

8081
useLayoutEffect(() => {

src/components/NftRewards/RewardsList/RewardItem.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import round from 'lodash/round'
88
import { NftRewardTier } from 'models/nftRewards'
99
import { V2V3_CURRENCY_USD } from 'packages/v2v3/utils/currency'
1010
import { ReactNode } from 'react'
11-
import { useAppSelector } from 'redux/hooks/useAppSelector'
11+
import { NftRewardsData } from 'redux/slices/shared/v2ProjectTypes'
1212
import { isZeroAddress } from 'utils/address'
1313
import { hasLimitedSupply } from 'utils/nftRewards'
1414
import { prettyUrl } from 'utils/url'
@@ -28,10 +28,12 @@ function numberUpToPrecisionFormat(
2828

2929
export const RewardItem = ({
3030
reward,
31+
nftRewards,
3132
onEditClicked,
3233
onDeleteClicked,
3334
}: {
3435
reward: NftRewardTier
36+
nftRewards: NftRewardsData
3537
onEditClicked?: () => void
3638
onDeleteClicked?: () => void
3739
}) => {
@@ -47,7 +49,6 @@ export const RewardItem = ({
4749
fileUrl,
4850
} = reward
4951

50-
const { nftRewards } = useAppSelector(state => state.editingV2Project)
5152
const nftCurrency = nftRewards?.pricing.currency
5253

5354
const hasBeneficiary = Boolean(beneficiary) && !isZeroAddress(beneficiary)

src/components/NftRewards/RewardsList/RewardsList.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { FormItemInput } from 'models/formItemInput'
77
import { NftRewardTier } from 'models/nftRewards'
88
import { MAX_NFT_REWARD_TIERS } from 'packages/v2v3/constants/nftRewards'
99
import { createContext, useCallback, useContext, useState } from 'react'
10+
import { NftRewardsData } from 'redux/slices/shared/v2ProjectTypes'
1011
import { sortNftsByContributionFloor } from 'utils/nftRewards'
1112
import { AddEditRewardModal } from './AddEditRewardModal'
1213
import { RewardItem } from './RewardItem'
@@ -32,6 +33,7 @@ const useRewardsInstance = () => {
3233
type RewardsListProps = FormItemInput<NftRewardTier[]> & {
3334
allowCreate?: boolean
3435
withEditWarning?: boolean
36+
nftRewardsData: NftRewardsData
3537
}
3638

3739
interface RewardsListChildrenExports {
@@ -45,6 +47,7 @@ export const RewardsList: React.FC<React.PropsWithChildren<RewardsListProps>> &
4547
value,
4648
onChange,
4749
withEditWarning,
50+
nftRewardsData,
4851
}: RewardsListProps) => {
4952
const rewardsHook = useRewards({ value, onChange })
5053
const [selectedReward, setSelectedReward] = useState<NftRewardTier>()
@@ -78,6 +81,7 @@ export const RewardsList: React.FC<React.PropsWithChildren<RewardsListProps>> &
7881
{sortNftsByContributionFloor(rewards).map((reward, i) => (
7982
<div key={reward.id}>
8083
<RewardItem
84+
nftRewards={nftRewardsData}
8185
reward={reward}
8286
onEditClicked={() => {
8387
setSelectedReward(reward)
@@ -110,6 +114,7 @@ export const RewardsList: React.FC<React.PropsWithChildren<RewardsListProps>> &
110114
<AddEditRewardModal
111115
open={modal.visible}
112116
editingData={selectedReward}
117+
nftRewards={nftRewardsData}
113118
onOk={onModalOk}
114119
onCancel={onModalCancel}
115120
withEditWarning={withEditWarning}

src/components/formItems/ProjectDiscountRate.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Form, Switch } from 'antd'
33
import FormItemLabel from 'components/FormItemLabel'
44
import FormItemWarningText from 'components/FormItemWarningText'
55
import { DISCOUNT_RATE_EXPLANATION } from 'components/strings'
6-
import { DEFAULT_FUNDING_CYCLE_DATA } from 'redux/slices/editingV2Project'
6+
import { DEFAULT_FUNDING_CYCLE_DATA } from 'redux/slices/shared/v2ProjectDefaultState'
77
import NumberSlider from '../inputs/NumberSlider'
88
import { FormItemExt } from './formItemExt'
99

src/components/formItems/ProjectReserved.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { useState } from 'react'
1515
import {
1616
DEFAULT_FUNDING_CYCLE_METADATA,
1717
DEFAULT_MINT_RATE,
18-
} from 'redux/slices/editingV2Project'
18+
} from 'redux/slices/shared/v2ProjectDefaultState'
1919
import { formattedNum } from 'utils/format/formatNumber'
2020
import NumberSlider from '../inputs/NumberSlider'
2121
import FundingCycleDetailWarning from '../Project/FundingCycleDetailWarning'

src/packages/v1/components/V1Project/modals/ReconfigureFCModal/ReconfigureFCModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import { amountSubFee } from 'packages/v1/utils/math'
4141
import { serializeV1FundingCycle } from 'packages/v1/utils/serializers'
4242
import { useCallback, useContext, useLayoutEffect, useState } from 'react'
4343
import { useAppDispatch } from 'redux/hooks/useAppDispatch'
44-
import { useEditingV1FundingCycleSelector } from 'redux/hooks/useAppSelector'
44+
import { useEditingV1FundingCycleSelector } from 'redux/hooks/v1'
4545
import { editingProjectActions } from 'redux/slices/editingProject'
4646
import { classNames } from 'utils/classNames'
4747
import { drawerWidth } from 'utils/drawerWidth'

src/packages/v1/components/shared/forms/BudgetForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
} from 'packages/v1/utils/payouts'
1717
import { useContext, useLayoutEffect, useMemo, useState } from 'react'
1818
import { useAppDispatch } from 'redux/hooks/useAppDispatch'
19-
import { useEditingV1FundingCycleSelector } from 'redux/hooks/useAppSelector'
19+
import { useEditingV1FundingCycleSelector } from 'redux/hooks/v1'
2020
import { editingProjectActions } from 'redux/slices/editingProject'
2121
import { fromWad } from 'utils/format/formatNumber'
2222
import { helpPagePath } from 'utils/helpPagePath'

src/packages/v2v3/components/Create/components/Wizard/hooks/usePage.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { CreatePage } from 'models/createPage'
22
import { useCallback, useContext, useMemo } from 'react'
33
import { useAppDispatch } from 'redux/hooks/useAppDispatch'
4-
import { editingV2ProjectActions } from 'redux/slices/editingV2Project'
4+
import { creatingV2ProjectActions } from 'redux/slices/creatingV2Project'
55
import { WizardContext } from '../contexts/WizardContext'
66

77
export const usePage = ({ name }: { name: string }) => {
@@ -41,14 +41,14 @@ export const usePage = ({ name }: { name: string }) => {
4141

4242
const lockPageProgress = useCallback(() => {
4343
dispatch(
44-
editingV2ProjectActions.addCreateSoftLockedPage(name as CreatePage),
44+
creatingV2ProjectActions.addCreateSoftLockedPage(name as CreatePage),
4545
)
4646
}, [dispatch, name])
4747

4848
const unlockPageProgress = useCallback(() => {
4949
// We need to make sure pages can't unsoftlock other pages :\
5050
dispatch(
51-
editingV2ProjectActions.removeCreateSoftLockedPage(name as CreatePage),
51+
creatingV2ProjectActions.removeCreateSoftLockedPage(name as CreatePage),
5252
)
5353
}, [dispatch, name])
5454

0 commit comments

Comments
 (0)