diff --git a/src/components/AccountDashboard/AccountDashboard.tsx b/src/components/AccountDashboard/AccountDashboard.tsx
index fe39837e82..ad5aad3b95 100644
--- a/src/components/AccountDashboard/AccountDashboard.tsx
+++ b/src/components/AccountDashboard/AccountDashboard.tsx
@@ -2,6 +2,7 @@ import { SettingOutlined } from '@ant-design/icons'
import { t, Trans } from '@lingui/macro'
import { Button, Tabs } from 'antd'
import ActivityList from 'components/ActivityList'
+import { SocialButton } from 'components/buttons/SocialButton'
import EthereumAddress from 'components/EthereumAddress'
import Grid from 'components/Grid'
import { Etherscan } from 'components/icons/Etherscan'
@@ -11,7 +12,6 @@ import Paragraph from 'components/Paragraph'
import SocialLinks from 'components/Project/ProjectHeader/SocialLinks'
import ProjectCard from 'components/ProjectCard'
import ProjectLogo from 'components/ProjectLogo'
-import { SocialButton } from 'components/SocialButton'
import WalletContributionCard from 'components/WalletContributionCard'
import {
OrderDirection,
diff --git a/src/components/Create/components/pages/ReconfigurationRules/components/CustomRuleCard.tsx b/src/components/Create/components/pages/ReconfigurationRules/components/CustomRuleCard.tsx
index 7c2cf42057..09330af6a5 100644
--- a/src/components/Create/components/pages/ReconfigurationRules/components/CustomRuleCard.tsx
+++ b/src/components/Create/components/pages/ReconfigurationRules/components/CustomRuleCard.tsx
@@ -1,8 +1,8 @@
import { t } from '@lingui/macro'
import { Form } from 'antd'
import { Selection } from 'components/Create/components/Selection'
-import { CustomStrategyInput } from 'components/ReconfigurationStrategy/CustomStrategyInput'
-import { inputMustExistRule, inputMustBeEthAddressRule } from 'utils/antdRules'
+import { CustomStrategyInput } from 'components/inputs/ReconfigurationStrategy/CustomStrategyInput'
+import { inputMustBeEthAddressRule, inputMustExistRule } from 'utils/antdRules'
export const CustomRuleCard = () => {
return (
diff --git a/src/components/Create/components/pages/ReviewDeploy/ReviewDeployPage.tsx b/src/components/Create/components/pages/ReviewDeploy/ReviewDeployPage.tsx
index e4567c8815..fa51ef8df8 100644
--- a/src/components/Create/components/pages/ReviewDeploy/ReviewDeployPage.tsx
+++ b/src/components/Create/components/pages/ReviewDeploy/ReviewDeployPage.tsx
@@ -4,8 +4,8 @@ import { Checkbox, Form } from 'antd'
import { Callout } from 'components/Callout'
import { useDeployProject } from 'components/Create/hooks/DeployProject'
import ExternalLink from 'components/ExternalLink'
-import { emitConfirmationDeletionModal } from 'components/ProjectDashboard/utils/modals'
import TransactionModal from 'components/modals/TransactionModal'
+import { emitConfirmationDeletionModal } from 'components/v2v3/V2V3Project/ProjectDashboard/utils/modals'
import { TERMS_OF_SERVICE_URL } from 'constants/links'
import { useWallet } from 'hooks/Wallet'
import useMobile from 'hooks/useMobile'
diff --git a/src/components/Create/components/pages/ReviewDeploy/components/DeploySuccess/DeploySuccess.tsx b/src/components/Create/components/pages/ReviewDeploy/components/DeploySuccess/DeploySuccess.tsx
index ee45818f92..3966a80168 100644
--- a/src/components/Create/components/pages/ReviewDeploy/components/DeploySuccess/DeploySuccess.tsx
+++ b/src/components/Create/components/pages/ReviewDeploy/components/DeploySuccess/DeploySuccess.tsx
@@ -3,8 +3,7 @@ import { ArrowRightIcon } from '@heroicons/react/24/solid'
import { Trans, t } from '@lingui/macro'
import { Button } from 'antd'
import ExternalLink from 'components/ExternalLink'
-import { XLButton } from 'components/XLButton'
-import { NEW_DEPLOY_QUERY_PARAM } from 'components/v2v3/V2V3Project/modals/NewDeployModal'
+import { XLButton } from 'components/buttons/XLButton'
import { readNetwork } from 'constants/networks'
import { useWallet } from 'hooks/Wallet'
import { NetworkName } from 'models/networkName'
@@ -13,6 +12,8 @@ import { useRouter } from 'next/router'
import { useCallback, useMemo, useState } from 'react'
import DeploySuccessHero from '/public/assets/images/create-success-hero.webp'
+const NEW_DEPLOY_QUERY_PARAM = 'np'
+
export const DeploySuccess = ({ projectId }: { projectId: number }) => {
console.info('Deploy: SUCCESS', projectId)
const router = useRouter()
diff --git a/src/components/Home/FaqList/FaqList.tsx b/src/components/Home/FaqList/FaqList.tsx
deleted file mode 100644
index 0b76389e3f..0000000000
--- a/src/components/Home/FaqList/FaqList.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Collapse } from 'antd'
-import QAs from './QAs'
-
-export function FaqList() {
- const QAsList = QAs()
-
- return (
-
- {QAsList.map((qa, i) => (
-
- {qa.a && {qa.a}
}
-
- ))}
-
- )
-}
diff --git a/src/components/Home/FaqList/index.ts b/src/components/Home/FaqList/index.ts
deleted file mode 100644
index 1439ec7554..0000000000
--- a/src/components/Home/FaqList/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { FaqList } from './FaqList'
diff --git a/src/components/Home/HowJuiceboxWorksSection/HowJuiceboxWorksSection.tsx b/src/components/Home/HowJuiceboxWorksSection/HowJuiceboxWorksSection.tsx
index 0632c5c9d4..c5b10ca444 100644
--- a/src/components/Home/HowJuiceboxWorksSection/HowJuiceboxWorksSection.tsx
+++ b/src/components/Home/HowJuiceboxWorksSection/HowJuiceboxWorksSection.tsx
@@ -7,7 +7,7 @@ import { Trans, t } from '@lingui/macro'
import ExternalLink from 'components/ExternalLink'
import { SectionContainer } from 'components/Home/SectionContainer'
import { SectionHeading } from 'components/Home/SectionHeading'
-import { XLButton } from 'components/XLButton'
+import { XLButton } from 'components/buttons/XLButton'
import Image from 'next/image'
import Link from 'next/link'
import sassyBlueberry from '/public/assets/images/sassy-blueberry.webp'
diff --git a/src/components/Home/JuicyPicksSection/JuicyPicksSection.tsx b/src/components/Home/JuicyPicksSection/JuicyPicksSection.tsx
index e4e67df3be..3f2c95d3d5 100644
--- a/src/components/Home/JuicyPicksSection/JuicyPicksSection.tsx
+++ b/src/components/Home/JuicyPicksSection/JuicyPicksSection.tsx
@@ -7,7 +7,7 @@ import { useFetchJuicyPicks } from 'components/Home/JuicyPicksSection/hooks/useJ
import { ProjectCarousel } from 'components/Home/ProjectCarousel'
import { SectionContainer } from 'components/Home/SectionContainer'
import { SectionHeading } from 'components/Home/SectionHeading'
-import { XLButton } from 'components/XLButton'
+import { XLButton } from 'components/buttons/XLButton'
import { useMedia } from 'contexts/Theme/useMedia'
import Link from 'next/link'
diff --git a/src/components/Home/SuccessStoriesSection/SuccessStoriesSection.tsx b/src/components/Home/SuccessStoriesSection/SuccessStoriesSection.tsx
index 0814bb8c8d..5dd8dd8c4e 100644
--- a/src/components/Home/SuccessStoriesSection/SuccessStoriesSection.tsx
+++ b/src/components/Home/SuccessStoriesSection/SuccessStoriesSection.tsx
@@ -3,7 +3,7 @@ import { ProjectCarousel } from 'components/Home/ProjectCarousel'
import { SectionContainer } from 'components/Home/SectionContainer'
import { SectionHeading } from 'components/Home/SectionHeading'
import { SuccessStoriesCard } from 'components/Home/SuccessStoriesSection/SuccessStoriesCard'
-import { XLButton } from 'components/XLButton'
+import { XLButton } from 'components/buttons/XLButton'
import { CASE_STUDY_PROJECTS } from 'constants/successStoryProjects'
import { useMedia } from 'contexts/Theme/useMedia'
import { useDBProjectsQuery } from 'hooks/useProjects'
diff --git a/src/components/Home/TopSection/TopSection.tsx b/src/components/Home/TopSection/TopSection.tsx
index 02a17a5764..e0aab992a2 100644
--- a/src/components/Home/TopSection/TopSection.tsx
+++ b/src/components/Home/TopSection/TopSection.tsx
@@ -9,7 +9,7 @@ import { ProjectCarousel } from 'components/Home/ProjectCarousel'
import { SectionContainer } from 'components/Home/SectionContainer'
import { SectionHeading } from 'components/Home/SectionHeading'
import { ProjectTag } from 'components/ProjectTags/ProjectTag'
-import { XLButton } from 'components/XLButton'
+import { XLButton } from 'components/buttons/XLButton'
import { HOMEPAGE } from 'constants/fathomEvents'
import { useTrendingProjects } from 'hooks/useProjects'
import { trackFathomGoal } from 'lib/fathom'
diff --git a/src/components/JuiceVideo/JuiceVideoOrImgPreview.tsx b/src/components/JuiceVideo/JuiceVideoOrImgPreview.tsx
index ce06e08146..929ea1e322 100644
--- a/src/components/JuiceVideo/JuiceVideoOrImgPreview.tsx
+++ b/src/components/JuiceVideo/JuiceVideoOrImgPreview.tsx
@@ -5,7 +5,7 @@ import { ImageProps } from 'next/image'
import { stopPropagation } from 'react-stop-propagation'
import { fileTypeIsVideo } from 'utils/nftRewards'
-export const JUICE_IMG_PREVIEW_CONTAINER_CLASS =
+const JUICE_IMG_PREVIEW_CONTAINER_CLASS =
'fixed top-0 left-0 z-[10000] flex h-full w-full items-center justify-center overflow-auto bg-[rgba(0,0,0,0.8)] p-5 cursor-default'
export function JuiceVideoOrImgPreview({
diff --git a/src/components/NftRewards/NftPostPayModal.tsx b/src/components/NftRewards/NftPostPayModal.tsx
index 02cb837533..314bd8a0fc 100644
--- a/src/components/NftRewards/NftPostPayModal.tsx
+++ b/src/components/NftRewards/NftPostPayModal.tsx
@@ -3,8 +3,6 @@ import Modal from 'antd/lib/modal/Modal'
import { NftPostPayModalConfig } from 'models/nftRewards'
import { withHttps } from 'utils/externalLink'
-export const NFT_PAYMENT_CONFIRMED_QUERY_PARAM = 'nft_s'
-
export function NftPostPayModal({
open,
config,
diff --git a/src/components/NftRewards/NftRewardsSection.tsx b/src/components/NftRewards/NftRewardsSection.tsx
deleted file mode 100644
index 54af127c65..0000000000
--- a/src/components/NftRewards/NftRewardsSection.tsx
+++ /dev/null
@@ -1,181 +0,0 @@
-import { t, Trans } from '@lingui/macro'
-import {
- NFT_PAYMENT_CONFIRMED_QUERY_PARAM,
- NftPostPayModal,
-} from 'components/NftRewards/NftPostPayModal'
-import { PayProjectFormContext } from 'components/Project/PayProjectForm/payProjectFormContext'
-import SectionHeader from 'components/SectionHeader'
-import { DEFAULT_ALLOW_OVERSPENDING } from 'constants/transactionDefaults'
-import { NftRewardsContext } from 'contexts/NftRewards/NftRewardsContext'
-import { CurrencyContext } from 'contexts/shared/CurrencyContext'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { useCurrencyConverter } from 'hooks/useCurrencyConverter'
-import { useContext } from 'react'
-import { fromWad } from 'utils/format/formatNumber'
-import { sortNftsByContributionFloor, sumTierFloors } from 'utils/nftRewards'
-import { useModalFromUrlQuery } from '../modals/hooks/useModalFromUrlQuery'
-import { NftTierCard } from './NftTierCard'
-
-function RewardTiersLoadingSkeleton() {
- return (
-
- {[...Array(3)]?.map((_, index) => (
-
- null} onDeselect={() => null} />
-
- ))}
-
- )
-}
-
-function Header() {
- return (
- <>
-
-
- Pay this project to receive NFTs.
-
- >
- )
-}
-
-export function NftRewardsSection() {
- const {
- nftRewards: { rewardTiers },
- loading: nftsLoading,
- } = useContext(NftRewardsContext)
- const {
- currencies: { ETH },
- } = useContext(CurrencyContext)
- const { form: payProjectForm } = useContext(PayProjectFormContext)
- const { projectMetadata } = useContext(ProjectMetadataContext)
-
- const { visible: nftPostPayModalVisible, hide: hideNftPostPayModal } =
- useModalFromUrlQuery(NFT_PAYMENT_CONFIRMED_QUERY_PARAM)
- const {
- payAmount,
- payMetadata,
- payInCurrency,
- setPayAmount,
- setPayInCurrency,
- setPayMetadata,
- validatePayAmount,
- } = payProjectForm ?? {}
-
- const converter = useCurrencyConverter()
- const payAmountETH =
- payInCurrency === ETH ? payAmount : fromWad(converter.usdToWei(payAmount))
-
- const handleTierDeselect = (
- tierId: number | undefined,
- quantity: number, // quantity to deselect. Remove all instances of tierId if quantity=0
- ) => {
- if (tierId === undefined || !rewardTiers || !payMetadata) return
-
- let count = 0
- const newSelectedTierIds = (payMetadata?.tierIdsToMint ?? []).filter(id => {
- // remove all instances
- if (!quantity) {
- return id !== tierId
- }
- // remove the specified number of instances of tierId
- if (count < quantity && id === tierId) {
- count += 1
- return false
- }
- return true
- })
-
- setPayMetadata?.({
- tierIdsToMint: newSelectedTierIds,
- })
-
- const newPayAmount = sumTierFloors(
- rewardTiers,
- newSelectedTierIds,
- ).toString()
-
- setPayAmount?.(newPayAmount)
- validatePayAmount?.(newPayAmount)
- }
-
- const handleTierSelect = (
- tierId: number | undefined,
- quantity: number, // quantity to select
- ) => {
- if (!tierId || !rewardTiers) return
-
- const newSelectedTierIds = (payMetadata?.tierIdsToMint ?? []).concat(
- Array(quantity).fill(tierId),
- )
-
- setPayMetadata?.({
- tierIdsToMint: newSelectedTierIds,
- allowOverspending: DEFAULT_ALLOW_OVERSPENDING,
- })
-
- setPayInCurrency?.(ETH)
-
- // sets pay input when selected nft's sum to greater than the current pay input amount
- const sumSelectedTiers = sumTierFloors(rewardTiers, newSelectedTierIds)
- if (sumSelectedTiers > parseFloat(payAmountETH ?? '0')) {
- const newPayAmount = sumSelectedTiers.toString()
- setPayAmount?.(newPayAmount)
- validatePayAmount?.(newPayAmount)
- }
- }
-
- const renderRewardTiers = rewardTiers
- ? sortNftsByContributionFloor(rewardTiers)
- : []
-
- return (
-
-
-
- {nftsLoading ? (
-
- ) : (
-
-
- {renderRewardTiers?.map(rewardTier => (
-
- id === rewardTier.id ?? -1,
- ).length
- }
- maxQuantity={rewardTier.remainingSupply}
- onSelect={(quantity = 1) =>
- handleTierSelect(rewardTier.id, quantity)
- }
- onDeselect={(quantity = 0) =>
- handleTierDeselect(rewardTier.id, quantity)
- }
- />
-
- ))}
-
-
- )}
-
- {projectMetadata?.nftPaymentSuccessModal?.content && (
-
- )}
-
- )
-}
diff --git a/src/components/Project/FundingCycleSection.tsx b/src/components/Project/FundingCycleSection.tsx
index c5aedce8a2..d9c29c42ca 100644
--- a/src/components/Project/FundingCycleSection.tsx
+++ b/src/components/Project/FundingCycleSection.tsx
@@ -1,11 +1,9 @@
import { Trans } from '@lingui/macro'
-
-import { useState } from 'react'
-
import SectionHeader from 'components/SectionHeader'
import { Tab } from 'components/Tab'
+import { useState } from 'react'
-export type TabType = {
+type TabType = {
key: string
label: string | JSX.Element
content: JSX.Element
diff --git a/src/components/Project/PayProjectForm/hooks/usePayProjectForm.ts b/src/components/Project/PayProjectForm/hooks/usePayProjectForm.ts
index 0f390f3ae0..52dba77787 100644
--- a/src/components/Project/PayProjectForm/hooks/usePayProjectForm.ts
+++ b/src/components/Project/PayProjectForm/hooks/usePayProjectForm.ts
@@ -7,20 +7,18 @@ import { CurrencyOption } from 'models/currencyOption'
import { Dispatch, SetStateAction, useContext, useState } from 'react'
import { parseWad } from 'utils/format/formatNumber'
-export interface JB721DELAGATE_V3_PAY_METADATA {
+interface JB721DELAGATE_V3_PAY_METADATA {
tierIdsToMint: number[]
dontMint?: boolean
expectMintFromExtraFunds?: boolean
dontOverspend?: boolean
}
-export interface JB721DELAGATE_V3_1_PAY_METADATA {
+interface JB721DELAGATE_V3_1_PAY_METADATA {
tierIdsToMint: number[]
allowOverspending?: boolean
}
-export type JB721DELAGATE_V3_2_PAY_METADATA = JB721DELAGATE_V3_1_PAY_METADATA
-
type PayMetadata =
| JB721DELAGATE_V3_PAY_METADATA
| JB721DELAGATE_V3_1_PAY_METADATA // in future, maybe more
diff --git a/src/components/Project/ProjectHeader/SocialLinks.tsx b/src/components/Project/ProjectHeader/SocialLinks.tsx
index e0a497a8f1..f853d1f847 100644
--- a/src/components/Project/ProjectHeader/SocialLinks.tsx
+++ b/src/components/Project/ProjectHeader/SocialLinks.tsx
@@ -1,7 +1,7 @@
import { GlobalOutlined, TwitterOutlined } from '@ant-design/icons'
+import { SocialButton } from 'components/buttons/SocialButton'
import Discord from 'components/icons/Discord'
import Telegram from 'components/icons/Telegram'
-import { SocialButton } from 'components/SocialButton'
import useMobile from 'hooks/useMobile'
import { twMerge } from 'tailwind-merge'
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsPopupMenu.tsx b/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsPopupMenu.tsx
deleted file mode 100644
index 3e67867c8d..0000000000
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsPopupMenu.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { ArrowUpTrayIcon } from '@heroicons/react/24/outline'
-import { Trans } from '@lingui/macro'
-import { useCurrentUpcomingPayoutSplits } from 'components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingPayoutSplits'
-import { PopupMenu } from 'components/ui/PopupMenu'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useContext } from 'react'
-import { useExportSplitsToCsv } from '../../../../../hooks/useExportSplitsToCsv'
-
-export const PayoutsPopupMenu = ({
- type,
-}: {
- type: 'current' | 'upcoming'
-}) => {
- const { splits: payoutSplits } = useCurrentUpcomingPayoutSplits(type)
- const { fundingCycle } = useContext(V2V3ProjectContext)
- const fcNumber = fundingCycle
- ? type === 'current'
- ? fundingCycle.number.toNumber()
- : fundingCycle.number.toNumber() + 1
- : undefined
- const { exportSplitsToCsv } = useExportSplitsToCsv(
- payoutSplits ?? [],
- 'payouts',
- fcNumber,
- )
- if (!payoutSplits?.length) return null
-
- return (
-
-
-
- Export payout CSV
-
- >
- ),
- onClick: exportSplitsToCsv,
- },
- ]}
- />
- )
-}
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useConfigurationPanel.ts b/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useConfigurationPanel.ts
deleted file mode 100644
index 81d94d1629..0000000000
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useConfigurationPanel.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { useCycleSection } from './useCycleSection'
-import { useOtherRulesSection } from './useOtherRulesSection'
-import { useTokenSection } from './useTokenSection'
-
-export const useConfigurationPanel = (type: 'current' | 'upcoming') => {
- const cycle = useCycleSection(type)
- const token = useTokenSection(type)
- const otherRules = useOtherRulesSection(type)
-
- return {
- cycle,
- token,
- otherRules,
- }
-}
diff --git a/src/components/ProjectDashboard/components/TokensPanel/components/ReservedTokensPopupMenu.tsx b/src/components/ProjectDashboard/components/TokensPanel/components/ReservedTokensPopupMenu.tsx
deleted file mode 100644
index a61325f332..0000000000
--- a/src/components/ProjectDashboard/components/TokensPanel/components/ReservedTokensPopupMenu.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import { ArrowUpTrayIcon } from '@heroicons/react/24/outline'
-import { Trans } from '@lingui/macro'
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
-import { PopupMenu } from 'components/ui/PopupMenu'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useExportSplitsToCsv } from 'hooks/useExportSplitsToCsv'
-import { useContext } from 'react'
-
-export const ReservedTokensPopupMenu = () => {
- const { reservedTokensSplits } = useProjectContext()
- const { fundingCycle } = useContext(V2V3ProjectContext)
- const { exportSplitsToCsv } = useExportSplitsToCsv(
- reservedTokensSplits ?? [],
- 'reserved-tokens',
- fundingCycle?.number.toNumber(),
- )
- if (!reservedTokensSplits) return null
- return (
-
-
-
- Export tokens CSV
-
- >
- ),
- onClick: exportSplitsToCsv,
- },
- ]}
- />
- )
-}
diff --git a/src/components/BookmarkButton/BookmarkButton.tsx b/src/components/buttons/BookmarkButton/BookmarkButton.tsx
similarity index 100%
rename from src/components/BookmarkButton/BookmarkButton.tsx
rename to src/components/buttons/BookmarkButton/BookmarkButton.tsx
diff --git a/src/components/BookmarkButton/BookmarkButtonIcon.tsx b/src/components/buttons/BookmarkButton/BookmarkButtonIcon.tsx
similarity index 100%
rename from src/components/BookmarkButton/BookmarkButtonIcon.tsx
rename to src/components/buttons/BookmarkButton/BookmarkButtonIcon.tsx
diff --git a/src/components/BookmarkButton/hooks/useBookmarkButton.ts b/src/components/buttons/BookmarkButton/hooks/useBookmarkButton.ts
similarity index 100%
rename from src/components/BookmarkButton/hooks/useBookmarkButton.ts
rename to src/components/buttons/BookmarkButton/hooks/useBookmarkButton.ts
diff --git a/src/components/BookmarkButton/index.ts b/src/components/buttons/BookmarkButton/index.ts
similarity index 100%
rename from src/components/BookmarkButton/index.ts
rename to src/components/buttons/BookmarkButton/index.ts
diff --git a/src/components/ErrorNotificationButtons.tsx b/src/components/buttons/ErrorNotificationButtons.tsx
similarity index 95%
rename from src/components/ErrorNotificationButtons.tsx
rename to src/components/buttons/ErrorNotificationButtons.tsx
index 7142d046c3..ee33f1a7fc 100644
--- a/src/components/ErrorNotificationButtons.tsx
+++ b/src/components/buttons/ErrorNotificationButtons.tsx
@@ -3,7 +3,7 @@ import { Trans } from '@lingui/macro'
import { Button } from 'antd'
import { LanguageProvider } from 'contexts/Language/LanguageProvider'
import { helpPagePath } from 'utils/routes'
-import ExternalLink from './ExternalLink'
+import ExternalLink from '../ExternalLink'
const resetSite = () => {
localStorage.clear()
diff --git a/src/components/buttons/RichButton.tsx b/src/components/buttons/RichButton.tsx
index 2e43435322..8fe2ecad0d 100644
--- a/src/components/buttons/RichButton.tsx
+++ b/src/components/buttons/RichButton.tsx
@@ -3,7 +3,7 @@ import { ComponentPropsWithoutRef } from 'react'
import { twMerge } from 'tailwind-merge'
import { classNames } from 'utils/classNames'
-export type RichButtonProps = {
+type RichButtonProps = {
className?: string
heading: JSX.Element | string
description: JSX.Element | string
diff --git a/src/components/SocialButton.tsx b/src/components/buttons/SocialButton.tsx
similarity index 95%
rename from src/components/SocialButton.tsx
rename to src/components/buttons/SocialButton.tsx
index 2a671ddd25..fa9631f078 100644
--- a/src/components/SocialButton.tsx
+++ b/src/components/buttons/SocialButton.tsx
@@ -2,7 +2,7 @@ import { Tooltip } from 'antd'
import { PropsWithChildren } from 'react'
import { twMerge } from 'tailwind-merge'
import { linkUrl } from 'utils/url'
-import ExternalLink from './ExternalLink'
+import ExternalLink from '../ExternalLink'
export const SocialButton = ({
className,
diff --git a/src/components/SubscribeButton/SubscribeButton.tsx b/src/components/buttons/SubscribeButton/SubscribeButton.tsx
similarity index 100%
rename from src/components/SubscribeButton/SubscribeButton.tsx
rename to src/components/buttons/SubscribeButton/SubscribeButton.tsx
diff --git a/src/components/SubscribeButton/SubscribeButtonIcon.tsx b/src/components/buttons/SubscribeButton/SubscribeButtonIcon.tsx
similarity index 100%
rename from src/components/SubscribeButton/SubscribeButtonIcon.tsx
rename to src/components/buttons/SubscribeButton/SubscribeButtonIcon.tsx
diff --git a/src/components/SubscribeButton/SubscribeModal.tsx b/src/components/buttons/SubscribeButton/SubscribeModal.tsx
similarity index 100%
rename from src/components/SubscribeButton/SubscribeModal.tsx
rename to src/components/buttons/SubscribeButton/SubscribeModal.tsx
diff --git a/src/components/SubscribeButton/hooks/useSubscribeButton.ts b/src/components/buttons/SubscribeButton/hooks/useSubscribeButton.ts
similarity index 100%
rename from src/components/SubscribeButton/hooks/useSubscribeButton.ts
rename to src/components/buttons/SubscribeButton/hooks/useSubscribeButton.ts
diff --git a/src/components/SubscribeButton/hooks/useSubscribeModal.ts b/src/components/buttons/SubscribeButton/hooks/useSubscribeModal.ts
similarity index 100%
rename from src/components/SubscribeButton/hooks/useSubscribeModal.ts
rename to src/components/buttons/SubscribeButton/hooks/useSubscribeModal.ts
diff --git a/src/components/SubscribeButton/index.ts b/src/components/buttons/SubscribeButton/index.ts
similarity index 100%
rename from src/components/SubscribeButton/index.ts
rename to src/components/buttons/SubscribeButton/index.ts
diff --git a/src/components/buttons/TextButton.tsx b/src/components/buttons/TextButton.tsx
deleted file mode 100644
index 65fefbb437..0000000000
--- a/src/components/buttons/TextButton.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import { RightCircleOutlined } from '@ant-design/icons'
-import { Button, ButtonProps } from 'antd'
-import { classNames } from 'utils/classNames'
-
-export function TextButton({ className, ...props }: ButtonProps) {
- return (
-
-
- {props.children}
-
-
-
- )
-}
diff --git a/src/components/XLButton.tsx b/src/components/buttons/XLButton.tsx
similarity index 100%
rename from src/components/XLButton.tsx
rename to src/components/buttons/XLButton.tsx
diff --git a/src/components/ReconfigurationStrategy/CustomStrategyInput.tsx b/src/components/inputs/ReconfigurationStrategy/CustomStrategyInput.tsx
similarity index 100%
rename from src/components/ReconfigurationStrategy/CustomStrategyInput.tsx
rename to src/components/inputs/ReconfigurationStrategy/CustomStrategyInput.tsx
diff --git a/src/components/ReconfigurationStrategy/ReconfigurationStrategyOption.tsx b/src/components/inputs/ReconfigurationStrategy/ReconfigurationStrategyOption.tsx
similarity index 100%
rename from src/components/ReconfigurationStrategy/ReconfigurationStrategyOption.tsx
rename to src/components/inputs/ReconfigurationStrategy/ReconfigurationStrategyOption.tsx
diff --git a/src/components/ReconfigurationStrategy/ReconfigurationStrategySelector.tsx b/src/components/inputs/ReconfigurationStrategy/ReconfigurationStrategySelector.tsx
similarity index 95%
rename from src/components/ReconfigurationStrategy/ReconfigurationStrategySelector.tsx
rename to src/components/inputs/ReconfigurationStrategy/ReconfigurationStrategySelector.tsx
index f99b2a8421..7eb185ee03 100644
--- a/src/components/ReconfigurationStrategy/ReconfigurationStrategySelector.tsx
+++ b/src/components/inputs/ReconfigurationStrategy/ReconfigurationStrategySelector.tsx
@@ -1,6 +1,6 @@
import { t, Trans } from '@lingui/macro'
import FormItemWarningText from 'components/FormItemWarningText'
-import ReconfigurationStrategyOption from 'components/ReconfigurationStrategy/ReconfigurationStrategyOption'
+import ReconfigurationStrategyOption from 'components/inputs/ReconfigurationStrategy/ReconfigurationStrategyOption'
import { RECONFIG_RULES_WARN } from 'components/strings'
import { BallotStrategy } from 'models/ballot'
import { useState } from 'react'
diff --git a/src/components/ReconfigurationStrategy/index.ts b/src/components/inputs/ReconfigurationStrategy/index.ts
similarity index 100%
rename from src/components/ReconfigurationStrategy/index.ts
rename to src/components/inputs/ReconfigurationStrategy/index.ts
diff --git a/src/components/modals/hooks/useModalFromUrlQuery.ts b/src/components/modals/hooks/useModalFromUrlQuery.ts
deleted file mode 100644
index 0cb51c706e..0000000000
--- a/src/components/modals/hooks/useModalFromUrlQuery.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { useRouter } from 'next/router'
-import { useCallback, useContext, useMemo } from 'react'
-import { v2v3ProjectRoute } from 'utils/routes'
-
-export function useModalFromUrlQuery(paramName: string) {
- const router = useRouter()
- const { projectId } = useContext(ProjectMetadataContext)
-
- const modalVisible = useMemo(
- () => router.query[paramName] === '1',
- [paramName, router.query],
- )
-
- const hide = useCallback(() => {
- const query = router.query
- query[paramName] = '0'
- router.replace(
- { pathname: v2v3ProjectRoute({ projectId }), query },
- v2v3ProjectRoute({ projectId }),
- { shallow: true },
- )
- }, [router, paramName, projectId])
-
- return { visible: modalVisible, hide }
-}
diff --git a/src/components/v1/shared/ReconfigurationStrategyDrawer.tsx b/src/components/v1/shared/ReconfigurationStrategyDrawer.tsx
index a702456272..c2f8e413d7 100644
--- a/src/components/v1/shared/ReconfigurationStrategyDrawer.tsx
+++ b/src/components/v1/shared/ReconfigurationStrategyDrawer.tsx
@@ -1,7 +1,7 @@
import { Trans } from '@lingui/macro'
import { Button, Drawer, DrawerProps } from 'antd'
-import ReconfigurationStrategySelector from 'components/ReconfigurationStrategy/ReconfigurationStrategySelector'
+import ReconfigurationStrategySelector from 'components/inputs/ReconfigurationStrategy/ReconfigurationStrategySelector'
import { BallotStrategy } from 'models/ballot'
import { useEffect, useState } from 'react'
diff --git a/src/components/v2v3/V2V3Project/ManageNftsSection/ManageNftsSection.tsx b/src/components/v2v3/V2V3Project/ManageNftsSection/ManageNftsSection.tsx
deleted file mode 100644
index dfbcb1e540..0000000000
--- a/src/components/v2v3/V2V3Project/ManageNftsSection/ManageNftsSection.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-import { plural, t, Trans } from '@lingui/macro'
-import { Button, Descriptions } from 'antd'
-import SectionHeader from 'components/SectionHeader'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useNftAccountBalance } from 'hooks/JB721Delegate/useNftAccountBalance'
-import { useWallet } from 'hooks/Wallet'
-import { CSSProperties, useContext, useState } from 'react'
-import { RedeemNftsModal } from './RedeemNftsModal'
-
-const labelStyle: CSSProperties = {
- width: '10.5rem',
-}
-const contentStyle: CSSProperties = {
- display: 'flex',
- flexWrap: 'wrap',
- gap: 5,
- justifyContent: 'space-between',
- width: '10.5rem',
-}
-
-export function ManageNftsSection() {
- const { userAddress } = useWallet()
- const { fundingCycleMetadata } = useContext(V2V3ProjectContext)
- const [redeemNftsModalVisible, setRedeemNftsModalVisible] =
- useState(false)
- const { data, loading } = useNftAccountBalance({
- accountAddress: userAddress,
- dataSourceAddress: fundingCycleMetadata?.dataSource,
- })
-
- const nftBalanceFormatted = data?.nfts.length ?? 0
- const nftRedeemAllowed =
- fundingCycleMetadata?.useDataSourceForRedeem && nftBalanceFormatted > 0
-
- if (loading) return null
-
- return (
- <>
-
-
NFTs} />
-
-
-
-
- {nftBalanceFormatted}{' '}
- {plural(nftBalanceFormatted, {
- one: 'NFT',
- other: 'NFTs',
- })}
-
- {nftRedeemAllowed ? (
-
- {
- setRedeemNftsModalVisible(true)
- }}
- >
- Redeem for ETH
-
-
- ) : null}
-
-
-
- {nftRedeemAllowed && (
- setRedeemNftsModalVisible(false)}
- onConfirmed={() => setRedeemNftsModalVisible(false)}
- />
- )}
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/ManageNftsSection/RedeemNftsModal/RedeemNftCard.tsx b/src/components/v2v3/V2V3Project/ManageNftsSection/RedeemNftsModal/RedeemNftCard.tsx
index 110312e154..476e20db3c 100644
--- a/src/components/v2v3/V2V3Project/ManageNftsSection/RedeemNftsModal/RedeemNftCard.tsx
+++ b/src/components/v2v3/V2V3Project/ManageNftsSection/RedeemNftsModal/RedeemNftCard.tsx
@@ -1,6 +1,6 @@
import axios from 'axios'
import { NftTierCard } from 'components/NftRewards/NftTierCard'
-import { RedeemingNft } from 'components/ProjectDashboard/components/NftRewardsPanel/hooks/useJB721DelegateTokenToNftReward'
+import { RedeemingNft } from 'components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/hooks/useJB721DelegateTokenToNftReward'
import { IPFSNftRewardTier, NftRewardTier } from 'models/nftRewards'
import { UseQueryResult, useQuery } from 'react-query'
import { cidFromIpfsUri, ipfsGatewayUrl } from 'utils/ipfs'
diff --git a/src/components/v2v3/V2V3Project/ManageNftsSection/RedeemNftsModal/RedeemNftsModal.tsx b/src/components/v2v3/V2V3Project/ManageNftsSection/RedeemNftsModal/RedeemNftsModal.tsx
index 06d76bc534..7163b5a4ff 100644
--- a/src/components/v2v3/V2V3Project/ManageNftsSection/RedeemNftsModal/RedeemNftsModal.tsx
+++ b/src/components/v2v3/V2V3Project/ManageNftsSection/RedeemNftsModal/RedeemNftsModal.tsx
@@ -5,9 +5,9 @@ import { Callout } from 'components/Callout'
import ETHAmount from 'components/currency/ETHAmount'
import TransactionModal from 'components/modals/TransactionModal'
import { MemoFormInput } from 'components/Project/PayProjectForm/MemoFormInput'
-import { RedeemingNft } from 'components/ProjectDashboard/components/NftRewardsPanel/hooks/useJB721DelegateTokenToNftReward'
import { REDEMPTION_RATE_EXPLANATION } from 'components/strings'
import TooltipLabel from 'components/TooltipLabel'
+import { RedeemingNft } from 'components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/hooks/useJB721DelegateTokenToNftReward'
import { JB721DelegateContractsContext } from 'contexts/NftRewards/JB721DelegateContracts/JB721DelegateContractsContext'
import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
import { BigNumber } from 'ethers'
diff --git a/src/components/ProjectDashboard/ProjectDashboard.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/ProjectDashboard.tsx
similarity index 100%
rename from src/components/ProjectDashboard/ProjectDashboard.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/ProjectDashboard.tsx
diff --git a/src/components/ProjectDashboard/components/AboutPanel/AboutPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/AboutPanel/AboutPanel.tsx
similarity index 93%
rename from src/components/ProjectDashboard/components/AboutPanel/AboutPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/AboutPanel/AboutPanel.tsx
index 5c95b5f3af..6fafd0821f 100644
--- a/src/components/ProjectDashboard/components/AboutPanel/AboutPanel.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/AboutPanel/AboutPanel.tsx
@@ -1,9 +1,9 @@
import { t } from '@lingui/macro'
+import { RichPreview } from 'components/RichPreview'
import {
SocialLink,
useAboutPanel,
-} from 'components/ProjectDashboard/hooks/useAboutPanel'
-import { RichPreview } from 'components/RichPreview'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useAboutPanel'
import { EmptyScreen } from '../EmptyScreen'
import { SocialLinkButton } from '../ui'
diff --git a/src/components/ProjectDashboard/components/AboutPanel/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/AboutPanel/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/AboutPanel/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/AboutPanel/index.ts
diff --git a/src/components/ProjectDashboard/components/ActivityPanel/ActivityPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ActivityPanel/ActivityPanel.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ActivityPanel/ActivityPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ActivityPanel/ActivityPanel.tsx
diff --git a/src/components/ProjectDashboard/components/ActivityPanel/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ActivityPanel/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/ActivityPanel/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ActivityPanel/index.ts
diff --git a/src/components/ProjectDashboard/components/AddProjectUpdateModal/AddProjectUpdateModal.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/AddProjectUpdateModal/AddProjectUpdateModal.tsx
similarity index 99%
rename from src/components/ProjectDashboard/components/AddProjectUpdateModal/AddProjectUpdateModal.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/AddProjectUpdateModal/AddProjectUpdateModal.tsx
index a1bdb545bf..ed25734bb3 100644
--- a/src/components/ProjectDashboard/components/AddProjectUpdateModal/AddProjectUpdateModal.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/AddProjectUpdateModal/AddProjectUpdateModal.tsx
@@ -5,8 +5,8 @@ import axios from 'axios'
import ExternalLink from 'components/ExternalLink'
import { JuiceVideoThumbnailOrImage } from 'components/JuiceVideo/JuiceVideoThumbnailOrImage'
import Loading from 'components/Loading'
-import { useProjectMetadata } from 'components/ProjectDashboard/hooks'
import { JuiceModal } from 'components/modals/JuiceModal'
+import { useProjectMetadata } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { PV_V2 } from 'constants/pv'
import { Formik } from 'formik'
import { useIpfsFilePicker } from 'hooks/useIpfsFilePicker/useIpfsFilePicker'
diff --git a/src/components/ProjectDashboard/components/AddProjectUpdateModal/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/AddProjectUpdateModal/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/AddProjectUpdateModal/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/AddProjectUpdateModal/index.ts
diff --git a/src/components/ProjectDashboard/components/BlockedProjectBanner.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/BlockedProjectBanner.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/BlockedProjectBanner.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/BlockedProjectBanner.tsx
diff --git a/src/components/ProjectDashboard/components/Cart/Cart.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/Cart.test.tsx
similarity index 94%
rename from src/components/ProjectDashboard/components/Cart/Cart.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/Cart.test.tsx
index 900b982815..0f03001efc 100644
--- a/src/components/ProjectDashboard/components/Cart/Cart.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/Cart.test.tsx
@@ -2,10 +2,10 @@
* @jest-environment jsdom
*/
import { fireEvent, render } from '@testing-library/react'
-import { useProjectCart } from 'components/ProjectDashboard/hooks'
+import { useProjectCart } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { Cart } from './Cart'
-jest.mock('components/ProjectDashboard/hooks/useProjectCart')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectCart')
jest.mock('./components', () => ({
SummaryCollapsedView: () => SummaryCollapsedView
,
diff --git a/src/components/ProjectDashboard/components/Cart/Cart.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/Cart.tsx
similarity index 96%
rename from src/components/ProjectDashboard/components/Cart/Cart.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/Cart.tsx
index 060a988ee4..5bae33b177 100644
--- a/src/components/ProjectDashboard/components/Cart/Cart.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/Cart.tsx
@@ -1,5 +1,5 @@
import { ChevronUpIcon } from '@heroicons/react/24/outline'
-import { useProjectCart } from 'components/ProjectDashboard/hooks'
+import { useProjectCart } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { useCallback, useEffect, useRef } from 'react'
import { twMerge } from 'tailwind-merge'
import { PayProjectModal } from '../PayProjectModal'
diff --git a/src/components/ProjectDashboard/components/Cart/__snapshots__/Cart.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/__snapshots__/Cart.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/__snapshots__/Cart.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/__snapshots__/Cart.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/CartItem.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/CartItem.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/CartItem.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/CartItem.test.tsx
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/CartItem.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/CartItem.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/CartItem.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/CartItem.tsx
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/CartItemBadge.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/CartItemBadge.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/CartItemBadge.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/CartItemBadge.tsx
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.test.tsx
similarity index 76%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.test.tsx
index b29714e43d..069b3f108e 100644
--- a/src/components/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.test.tsx
@@ -2,13 +2,13 @@
* @jest-environment jsdom
*/
import { render } from '@testing-library/react'
-import { useNftCartItem } from 'components/ProjectDashboard/hooks/useNftCartItem'
+import { useNftCartItem } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem'
import { V2V3_CURRENCY_ETH } from 'utils/v2v3/currency'
import { NftCartItem } from './NftCartItem'
-jest.mock('components/ProjectDashboard/hooks/useNftCartItem')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem')
jest.mock(
- 'components/ProjectDashboard/components/NftRewardsCard/SmallNftSquare',
+ 'components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/SmallNftSquare',
() => ({
SmallNftSquare: () =>
,
}),
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.tsx
similarity index 70%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.tsx
index b99274685a..ea81086db4 100644
--- a/src/components/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/NftCartItem.tsx
@@ -1,8 +1,8 @@
-import { SmallNftSquare } from 'components/ProjectDashboard/components/NftRewardsCard/SmallNftSquare'
-import { ProjectCartNftReward } from 'components/ProjectDashboard/components/ProjectCartProvider'
-import { useNftCartItem } from 'components/ProjectDashboard/hooks/useNftCartItem'
-import { handleConfirmationDeletion } from 'components/ProjectDashboard/utils/modals'
import { TruncatedText } from 'components/TruncatedText'
+import { SmallNftSquare } from 'components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/SmallNftSquare'
+import { ProjectCartNftReward } from 'components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider'
+import { useNftCartItem } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem'
+import { handleConfirmationDeletion } from 'components/v2v3/V2V3Project/ProjectDashboard/utils/modals'
import { CartItem } from './CartItem'
import { CartItemBadge } from './CartItemBadge'
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.test.tsx
similarity index 81%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.test.tsx
index 37c9ded405..f9f61f02f0 100644
--- a/src/components/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.test.tsx
@@ -2,11 +2,11 @@
* @jest-environment jsdom
*/
import { render } from '@testing-library/react'
-import { useProjectCart } from 'components/ProjectDashboard/hooks'
+import { useProjectCart } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { V2V3_CURRENCY_ETH } from 'utils/v2v3/currency'
import { PaymentCartItem } from './PaymentCartItem'
-jest.mock('components/ProjectDashboard/hooks')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
describe('PaymentCartItem', () => {
const DefaultUseProjectCartMock = {
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.tsx
similarity index 73%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.tsx
index d80d00b218..a83529761e 100644
--- a/src/components/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/PaymentCartItem.tsx
@@ -1,6 +1,6 @@
-import { CurrencyIcon } from 'components/ProjectDashboard/components/ui/CurrencyIcon'
-import { useProjectCart } from 'components/ProjectDashboard/hooks'
-import { handleConfirmationDeletion } from 'components/ProjectDashboard/utils/modals'
+import { CurrencyIcon } from 'components/v2v3/V2V3Project/ProjectDashboard/components/ui/CurrencyIcon'
+import { useProjectCart } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { handleConfirmationDeletion } from 'components/v2v3/V2V3Project/ProjectDashboard/utils/modals'
import { useCallback } from 'react'
import { CartItem } from './CartItem'
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.test.tsx
similarity index 80%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.test.tsx
index aa37440728..0475421ea3 100644
--- a/src/components/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.test.tsx
@@ -5,13 +5,13 @@ import { render } from '@testing-library/react'
import {
useProjectCart,
useTokensPerEth,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { V2V3_CURRENCY_ETH } from 'utils/v2v3/currency'
import { ProjectTokensCartItem } from './ProjectTokensCartItem'
-jest.mock('components/ProjectDashboard/hooks')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
jest.mock(
- 'components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderLogo',
+ 'components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderLogo',
() => ({
ProjectHeaderLogo: () => ProjectHeaderLogo
,
}),
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.tsx
similarity index 75%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.tsx
index 030d0306c6..5aa2c9bd00 100644
--- a/src/components/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/ProjectTokensCartItem.tsx
@@ -1,9 +1,9 @@
import { InformationCircleIcon } from '@heroicons/react/24/outline'
import { Trans, t } from '@lingui/macro'
import { Tooltip } from 'antd'
-import { ProjectHeaderLogo } from 'components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderLogo'
-import { useProjectHasErc20Token } from 'components/ProjectDashboard/hooks/useProjectHasErc20Token'
-import { useProjectPaymentTokens } from 'components/ProjectDashboard/hooks/useProjectPaymentTokens'
+import { ProjectHeaderLogo } from 'components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderLogo'
+import { useProjectHasErc20Token } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectHasErc20Token'
+import { useProjectPaymentTokens } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens'
import { CartItem } from './CartItem'
import { CartItemBadge } from './CartItemBadge'
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/RewardEligibilityCallout.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/RewardEligibilityCallout.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/RewardEligibilityCallout.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/RewardEligibilityCallout.tsx
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/CartItem.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/CartItem.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/CartItem.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/CartItem.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/PaymentCartItem.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/PaymentCartItem.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/PaymentCartItem.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/PaymentCartItem.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/ProjectTokensCartItem.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/ProjectTokensCartItem.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/ProjectTokensCartItem.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/__snapshots__/ProjectTokensCartItem.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/Cart/components/CartItem/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/CartItem/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/CartItem/index.ts
diff --git a/src/components/ProjectDashboard/components/Cart/components/SummaryCollapsedView.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryCollapsedView.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/SummaryCollapsedView.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryCollapsedView.test.tsx
diff --git a/src/components/ProjectDashboard/components/Cart/components/SummaryCollapsedView.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryCollapsedView.tsx
similarity index 98%
rename from src/components/ProjectDashboard/components/Cart/components/SummaryCollapsedView.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryCollapsedView.tsx
index d0d7146f48..5149092fe9 100644
--- a/src/components/ProjectDashboard/components/Cart/components/SummaryCollapsedView.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryCollapsedView.tsx
@@ -1,7 +1,7 @@
import { TrashIcon } from '@heroicons/react/24/outline'
import { PlusIcon } from '@heroicons/react/24/solid'
import { Trans, t } from '@lingui/macro'
-import { handleConfirmationDeletion } from 'components/ProjectDashboard/utils/modals'
+import { handleConfirmationDeletion } from 'components/v2v3/V2V3Project/ProjectDashboard/utils/modals'
import useMobile from 'hooks/useMobile'
import { useMemo } from 'react'
import useResizeObserver from 'use-resize-observer'
diff --git a/src/components/ProjectDashboard/components/Cart/components/SummaryExpandedView.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryExpandedView.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/SummaryExpandedView.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryExpandedView.test.tsx
diff --git a/src/components/ProjectDashboard/components/Cart/components/SummaryExpandedView.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryExpandedView.tsx
similarity index 97%
rename from src/components/ProjectDashboard/components/Cart/components/SummaryExpandedView.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryExpandedView.tsx
index b2117fbe23..845ac94d06 100644
--- a/src/components/ProjectDashboard/components/Cart/components/SummaryExpandedView.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryExpandedView.tsx
@@ -1,5 +1,5 @@
import { Trans, t } from '@lingui/macro'
-import { handleConfirmationDeletion } from 'components/ProjectDashboard/utils/modals'
+import { handleConfirmationDeletion } from 'components/v2v3/V2V3Project/ProjectDashboard/utils/modals'
import useMobile from 'hooks/useMobile'
import { stopPropagation } from 'react-stop-propagation'
import { useCartSummary } from '../hooks/useCartSummary'
diff --git a/src/components/ProjectDashboard/components/Cart/components/SummaryPayButton.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryPayButton.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/SummaryPayButton.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryPayButton.test.tsx
diff --git a/src/components/ProjectDashboard/components/Cart/components/SummaryPayButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryPayButton.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/SummaryPayButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/SummaryPayButton.tsx
diff --git a/src/components/ProjectDashboard/components/Cart/components/__snapshots__/SummaryCollapsedView.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/__snapshots__/SummaryCollapsedView.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/__snapshots__/SummaryCollapsedView.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/__snapshots__/SummaryCollapsedView.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/Cart/components/__snapshots__/SummaryExpandedView.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/__snapshots__/SummaryExpandedView.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/__snapshots__/SummaryExpandedView.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/__snapshots__/SummaryExpandedView.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/Cart/components/__snapshots__/SummaryPayButton.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/__snapshots__/SummaryPayButton.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/__snapshots__/SummaryPayButton.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/__snapshots__/SummaryPayButton.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/Cart/components/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/components/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/components/index.ts
diff --git a/src/components/ProjectDashboard/components/Cart/hooks/useCartSummary.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useCartSummary.test.tsx
similarity index 95%
rename from src/components/ProjectDashboard/components/Cart/hooks/useCartSummary.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useCartSummary.test.tsx
index 8e9d918225..2e84a9cf71 100644
--- a/src/components/ProjectDashboard/components/Cart/hooks/useCartSummary.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useCartSummary.test.tsx
@@ -3,13 +3,13 @@
*/
/* eslint-disable @typescript-eslint/no-explicit-any */
import { renderHook } from '@testing-library/react'
-import { useProjectCart } from 'components/ProjectDashboard/hooks'
+import { useProjectCart } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { NftRewardsContext } from 'contexts/NftRewards/NftRewardsContext'
import { useWallet } from 'hooks/Wallet'
import { V2V3_CURRENCY_ETH } from 'utils/v2v3/currency'
import { useCartSummary } from './useCartSummary'
-jest.mock('components/ProjectDashboard/hooks')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
jest.mock('hooks/Wallet')
const DefaultNftRewardsContextMock = {
diff --git a/src/components/ProjectDashboard/components/Cart/hooks/useCartSummary.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useCartSummary.ts
similarity index 94%
rename from src/components/ProjectDashboard/components/Cart/hooks/useCartSummary.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useCartSummary.ts
index d6c3df7705..005cd7eb9f 100644
--- a/src/components/ProjectDashboard/components/Cart/hooks/useCartSummary.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useCartSummary.ts
@@ -1,4 +1,4 @@
-import { useProjectCart } from 'components/ProjectDashboard/hooks'
+import { useProjectCart } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { NftRewardsContext } from 'contexts/NftRewards/NftRewardsContext'
import { useWallet } from 'hooks/Wallet'
import { useCallback, useContext, useMemo } from 'react'
diff --git a/src/components/ProjectDashboard/components/Cart/hooks/useRewardEligibilityCallout.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useRewardEligibilityCallout.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/hooks/useRewardEligibilityCallout.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useRewardEligibilityCallout.test.ts
diff --git a/src/components/ProjectDashboard/components/Cart/hooks/useRewardEligibilityCallout.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useRewardEligibilityCallout.ts
similarity index 97%
rename from src/components/ProjectDashboard/components/Cart/hooks/useRewardEligibilityCallout.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useRewardEligibilityCallout.ts
index 1435fa7106..c80a635641 100644
--- a/src/components/ProjectDashboard/components/Cart/hooks/useRewardEligibilityCallout.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/hooks/useRewardEligibilityCallout.ts
@@ -1,4 +1,4 @@
-import { useProjectCart } from 'components/ProjectDashboard/hooks'
+import { useProjectCart } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { NftRewardsContext } from 'contexts/NftRewards/NftRewardsContext'
import { useCurrencyConverter } from 'hooks/useCurrencyConverter'
import useWeiConverter from 'hooks/useWeiConverter'
diff --git a/src/components/ProjectDashboard/components/Cart/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/Cart/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/Cart/index.ts
diff --git a/src/components/ProjectDashboard/components/CoverPhoto/CoverPhoto.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CoverPhoto/CoverPhoto.tsx
similarity index 88%
rename from src/components/ProjectDashboard/components/CoverPhoto/CoverPhoto.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CoverPhoto/CoverPhoto.tsx
index 661beac730..1ab0c3684c 100644
--- a/src/components/ProjectDashboard/components/CoverPhoto/CoverPhoto.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CoverPhoto/CoverPhoto.tsx
@@ -1,4 +1,4 @@
-import { useCoverPhoto } from 'components/ProjectDashboard/hooks'
+import { useCoverPhoto } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { twMerge } from 'tailwind-merge'
export const CoverPhoto = () => {
diff --git a/src/components/ProjectDashboard/components/CoverPhoto/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CoverPhoto/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/CoverPhoto/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CoverPhoto/index.ts
diff --git a/src/components/ProjectDashboard/components/CurrentBalanceCard/CurrentBalanceCard.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CurrentBalanceCard/CurrentBalanceCard.tsx
similarity index 88%
rename from src/components/ProjectDashboard/components/CurrentBalanceCard/CurrentBalanceCard.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CurrentBalanceCard/CurrentBalanceCard.tsx
index 114be1c52c..557bdaa828 100644
--- a/src/components/ProjectDashboard/components/CurrentBalanceCard/CurrentBalanceCard.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CurrentBalanceCard/CurrentBalanceCard.tsx
@@ -1,9 +1,9 @@
import { QuestionMarkCircleIcon } from '@heroicons/react/24/outline'
import { Trans } from '@lingui/macro'
import { Tooltip } from 'antd'
-import { useCurrentBalanceCard } from 'components/ProjectDashboard/hooks'
-import { useProjectPageQueries } from 'components/ProjectDashboard/hooks/useProjectPageQueries'
import { TruncatedText } from 'components/TruncatedText'
+import { useCurrentBalanceCard } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { useProjectPageQueries } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries'
import { useCallback } from 'react'
import { twMerge } from 'tailwind-merge'
import { treasuryBalanceTooltip } from '../CyclesPayoutsPanel/components/CyclesPanelTooltips'
diff --git a/src/components/ProjectDashboard/components/CurrentBalanceCard/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CurrentBalanceCard/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/CurrentBalanceCard/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CurrentBalanceCard/index.ts
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/CyclesPayoutsPanel.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/CyclesPayoutsPanel.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/CyclesPayoutsPanel.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/CyclesPayoutsPanel.test.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/CyclesPayoutsPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/CyclesPayoutsPanel.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/CyclesPayoutsPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/CyclesPayoutsPanel.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/__snapshots__/CyclesPayoutsPanel.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/__snapshots__/CyclesPayoutsPanel.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/__snapshots__/CyclesPayoutsPanel.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/__snapshots__/CyclesPayoutsPanel.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationDisplayCard.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationDisplayCard.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationDisplayCard.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationDisplayCard.test.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationDisplayCard.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationDisplayCard.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationDisplayCard.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationDisplayCard.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationPanel.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationPanel.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationPanel.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationPanel.test.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationPanel.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationPanel.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationTable.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationTable.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationTable.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationTable.test.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationTable.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationTable.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationTable.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ConfigurationTable.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingConfigurationPanel.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingConfigurationPanel.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingConfigurationPanel.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingConfigurationPanel.test.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingConfigurationPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingConfigurationPanel.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingConfigurationPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingConfigurationPanel.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingSubPanel.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingSubPanel.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingSubPanel.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingSubPanel.test.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingSubPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingSubPanel.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingSubPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CurrentUpcomingSubPanel.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesPanelTooltips.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesPanelTooltips.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesPanelTooltips.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesPanelTooltips.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.test.tsx
similarity index 82%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.test.tsx
index d70b0fa103..a1180df5c3 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.test.tsx
@@ -9,7 +9,7 @@ const wrapper = ({ children }: { children?: React.ReactNode }) => (
{children}
)
-describe('src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.tsx', () => {
+describe('src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.tsx', () => {
it('should match snapshot', () => {
const { baseElement } = render( , { wrapper })
expect(baseElement).toMatchSnapshot()
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ExportPayoutsCsvItem.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ExportPayoutsCsvItem.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/ExportPayoutsCsvItem.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/ExportPayoutsCsvItem.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/HistoricalConfigurationPanel.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/HistoricalConfigurationPanel.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/HistoricalConfigurationPanel.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/HistoricalConfigurationPanel.test.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/HistoricalConfigurationPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/HistoricalConfigurationPanel.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/HistoricalConfigurationPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/HistoricalConfigurationPanel.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/HistorySubPanel.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/HistorySubPanel.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/HistorySubPanel.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/HistorySubPanel.test.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/HistorySubPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/HistorySubPanel.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/HistorySubPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/HistorySubPanel.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsSubPanel.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsSubPanel.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsSubPanel.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsSubPanel.test.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsSubPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsSubPanel.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsSubPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/PayoutsSubPanel.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/SendPayoutsButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/SendPayoutsButton.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/SendPayoutsButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/SendPayoutsButton.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/TreasuryStats.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/TreasuryStats.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/TreasuryStats.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/TreasuryStats.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/UpcomingCycleChangesCallout.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/UpcomingCycleChangesCallout.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/UpcomingCycleChangesCallout.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/UpcomingCycleChangesCallout.tsx
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/ConfigurationDisplayCard.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/ConfigurationDisplayCard.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/ConfigurationDisplayCard.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/ConfigurationDisplayCard.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/ConfigurationTable.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/ConfigurationTable.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/ConfigurationTable.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/ConfigurationTable.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/CurrentUpcomingSubPanel.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/CurrentUpcomingSubPanel.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/CurrentUpcomingSubPanel.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/CurrentUpcomingSubPanel.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/CyclesTab.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/CyclesTab.test.tsx.snap
similarity index 76%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/CyclesTab.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/CyclesTab.test.tsx.snap
index 5f66e72a2d..92519f61e0 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/CyclesTab.test.tsx.snap
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/__snapshots__/CyclesTab.test.tsx.snap
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`src/components/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.tsx should match snapshot 1`] = `
+exports[`src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/components/CyclesTab.tsx should match snapshot 1`] = `
({
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks', () => ({
useProjectContext: () => ({
primaryETHTerminal: 'mockTerminal',
tokenSymbol: 'mockTokenSymbol',
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useHistoricalConfigurationPanel.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useHistoricalConfigurationPanel.ts
similarity index 97%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useHistoricalConfigurationPanel.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useHistoricalConfigurationPanel.ts
index 45fb8ad6a8..ee9509cee6 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useHistoricalConfigurationPanel.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useHistoricalConfigurationPanel.ts
@@ -1,7 +1,7 @@
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import useProjectDistributionLimit from 'hooks/v2v3/contractReader/useProjectDistributionLimit'
import {
V2V3FundingCycle,
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.test.ts
similarity index 96%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.test.ts
index 1f385fa7f6..004efbf415 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.test.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.test.ts
@@ -6,11 +6,11 @@ import { renderHook } from '@testing-library/react'
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { useProjectUpcomingFundingCycle } from 'hooks/v2v3/contractReader/useProjectUpcomingFundingCycle'
import { useOtherRulesSection } from './useOtherRulesSection'
-jest.mock('components/ProjectDashboard/hooks', () => ({
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks', () => ({
useProjectContext: jest.fn(),
useProjectMetadata: jest.fn(),
}))
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.ts
similarity index 93%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.ts
index 88f6ba7c12..a8d2a32148 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useOtherRulesSection.ts
@@ -1,7 +1,7 @@
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { useProjectUpcomingFundingCycle } from 'hooks/v2v3/contractReader/useProjectUpcomingFundingCycle'
import { ConfigurationPanelTableData } from '../../components/ConfigurationPanel'
import { useFormatConfigurationOtherRulesSection } from './useFormatConfigurationOtherRulesSection'
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.test.ts
similarity index 95%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.test.ts
index 30c94dfa35..c2982c6257 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.test.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.test.ts
@@ -6,7 +6,7 @@ import { renderHook } from '@testing-library/react-hooks'
import { useOtherRulesSection } from './useOtherRulesSection'
// Mock the hooks used inside your custom hook
-jest.mock('components/ProjectDashboard/hooks', () => ({
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks', () => ({
useProjectContext: () => ({
fundingCycleMetadata: 'mockFundingCycleMetadata',
}),
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.ts
similarity index 95%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.ts
index c41f8347a2..797862d837 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useConfigurationPanel/useTokenSection.ts
@@ -1,7 +1,7 @@
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { useProjectUpcomingFundingCycle } from 'hooks/v2v3/contractReader/useProjectUpcomingFundingCycle'
import { ConfigurationPanelTableData } from '../../components/ConfigurationPanel'
import { useFormatConfigurationTokenSection } from './useFormatConfigurationTokenSection'
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingDistributionLimit.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingDistributionLimit.ts
similarity index 96%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingDistributionLimit.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingDistributionLimit.ts
index c313d420ff..31b45fdebc 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingDistributionLimit.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingDistributionLimit.ts
@@ -1,7 +1,7 @@
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import useProjectDistributionLimit from 'hooks/v2v3/contractReader/useProjectDistributionLimit'
import { useProjectUpcomingFundingCycle } from 'hooks/v2v3/contractReader/useProjectUpcomingFundingCycle'
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingPayoutSplits.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingPayoutSplits.ts
similarity index 95%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingPayoutSplits.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingPayoutSplits.ts
index 84d08412ae..8bddee1bec 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingPayoutSplits.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingPayoutSplits.ts
@@ -1,7 +1,7 @@
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { ETH_PAYOUT_SPLIT_GROUP } from 'constants/splits'
import useProjectSplits from 'hooks/v2v3/contractReader/useProjectSplits'
import { useProjectUpcomingFundingCycle } from 'hooks/v2v3/contractReader/useProjectUpcomingFundingCycle'
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.test.ts
similarity index 97%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.test.ts
index 281f5905ae..057ad3ec86 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.test.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.test.ts
@@ -3,12 +3,12 @@ import { renderHook } from '@testing-library/react-hooks'
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { BigNumber } from 'ethers'
import { useProjectUpcomingFundingCycle } from 'hooks/v2v3/contractReader/useProjectUpcomingFundingCycle'
import { useCurrentUpcomingSubPanel } from './useCurrentUpcomingSubPanel'
-jest.mock('components/ProjectDashboard/hooks')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
jest.mock('hooks/v2v3/contractReader/useProjectUpcomingFundingCycle')
const mockUseProjectContext = useProjectContext as jest.MockedFunction<
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.ts
similarity index 88%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.ts
index 78b28251a4..7619fed0b5 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useCurrentUpcomingSubPanel.ts
@@ -2,9 +2,9 @@ import { t } from '@lingui/macro'
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
-import { useFundingCycleCountdown } from 'components/ProjectDashboard/hooks/useFundingCycleCountdown'
-import { timeSecondsToDateString } from 'components/ProjectDashboard/utils/timeSecondsToDateString'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { useFundingCycleCountdown } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useFundingCycleCountdown'
+import { timeSecondsToDateString } from 'components/v2v3/V2V3Project/ProjectDashboard/utils/timeSecondsToDateString'
import { useProjectUpcomingFundingCycle } from 'hooks/v2v3/contractReader/useProjectUpcomingFundingCycle'
import { useMemo } from 'react'
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useDistributableAmount.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useDistributableAmount.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useDistributableAmount.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useDistributableAmount.ts
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useHistorySubPanel.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useHistorySubPanel.ts
similarity index 98%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useHistorySubPanel.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useHistorySubPanel.ts
index 642d2798bc..c6cdc50756 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useHistorySubPanel.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useHistorySubPanel.ts
@@ -1,7 +1,7 @@
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { fetchPastFundingCycles } from 'components/v2v3/V2V3Project/V2V3FundingCycleSection/FundingCycleHistory/utils'
import { ETH_TOKEN_ADDRESS } from 'constants/v2v3/juiceboxTokens'
import { V2V3ProjectContractsContext } from 'contexts/v2v3/ProjectContracts/V2V3ProjectContractsContext'
@@ -48,7 +48,7 @@ const reducer = (state: State, action: Action) => {
}
}
-export type UseHistorySubPanelProps = {
+type UseHistorySubPanelProps = {
pageSize?: number
}
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.test.ts
similarity index 95%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.test.ts
index 83ad3d922a..b20f314808 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.test.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.test.ts
@@ -6,14 +6,14 @@ import { renderHook } from '@testing-library/react'
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { BigNumber } from 'ethers'
import { parseWad } from 'utils/format/formatNumber'
import { V2V3_CURRENCY_ETH } from 'utils/v2v3/currency'
import { MAX_DISTRIBUTION_LIMIT } from 'utils/v2v3/math'
import { usePayoutsSubPanel } from './usePayoutsSubPanel'
-jest.mock('components/ProjectDashboard/hooks')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
describe('usePayoutsSubPanel', () => {
const DefaultProjectContext = {
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.ts
similarity index 97%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.ts
index 18718f62de..2a5b95bf0e 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/usePayoutsSubPanel.ts
@@ -1,4 +1,4 @@
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { BigNumber } from 'ethers'
import { Split } from 'models/splits'
import { V2V3CurrencyOption } from 'models/v2v3/currencyOption'
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.test.ts
similarity index 96%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.test.ts
index d8628bf90e..014837435c 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.test.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.test.ts
@@ -2,7 +2,7 @@
* @jest-environment jsdom
*/
import { renderHook } from '@testing-library/react-hooks'
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { BigNumber } from 'ethers'
import { parseWad } from 'utils/format/formatNumber'
import { V2V3_CURRENCY_ETH } from 'utils/v2v3/currency'
@@ -10,7 +10,7 @@ import { MAX_DISTRIBUTION_LIMIT } from 'utils/v2v3/math'
import { useDistributableAmount } from './useDistributableAmount'
import { useTreasuryStats } from './useTreasuryStats'
-jest.mock('components/ProjectDashboard/hooks')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
jest.mock('./useDistributableAmount')
describe('useTreasuryStats', () => {
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.ts
similarity index 96%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.ts
index 769e7aeab3..6646797fdc 100644
--- a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useTreasuryStats.ts
@@ -1,5 +1,5 @@
import { t } from '@lingui/macro'
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { useCurrencyConverter } from 'hooks/useCurrencyConverter'
import { V2V3CurrencyOption } from 'models/v2v3/currencyOption'
import { useMemo } from 'react'
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/index.ts
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/utils/flagPairToDatum.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/utils/flagPairToDatum.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/utils/flagPairToDatum.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/utils/flagPairToDatum.test.ts
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/utils/flagPairToDatum.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/utils/flagPairToDatum.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/utils/flagPairToDatum.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/utils/flagPairToDatum.ts
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/utils/pairToDatum.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/utils/pairToDatum.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/utils/pairToDatum.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/utils/pairToDatum.test.ts
diff --git a/src/components/ProjectDashboard/components/CyclesPayoutsPanel/utils/pairToDatum.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/utils/pairToDatum.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/CyclesPayoutsPanel/utils/pairToDatum.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/utils/pairToDatum.ts
diff --git a/src/components/ProjectDashboard/components/EmptyScreen.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/EmptyScreen.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/EmptyScreen.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/EmptyScreen.tsx
diff --git a/src/components/ProjectDashboard/components/FundingCycleCountdown/FundingCycleCountdownProvider.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/FundingCycleCountdown/FundingCycleCountdownProvider.tsx
similarity index 80%
rename from src/components/ProjectDashboard/components/FundingCycleCountdown/FundingCycleCountdownProvider.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/FundingCycleCountdown/FundingCycleCountdownProvider.tsx
index 02aebbc0ed..b89b80a34d 100644
--- a/src/components/ProjectDashboard/components/FundingCycleCountdown/FundingCycleCountdownProvider.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/FundingCycleCountdown/FundingCycleCountdownProvider.tsx
@@ -1,5 +1,5 @@
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
-import { useCountdownClock } from 'components/ProjectDashboard/hooks/useCountdownClock'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { useCountdownClock } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useCountdownClock'
import { createContext } from 'react'
type FundingCycleCountdownContextType = {
diff --git a/src/components/ProjectDashboard/components/NftRewardsCard/HoverPreview.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/HoverPreview.tsx
similarity index 97%
rename from src/components/ProjectDashboard/components/NftRewardsCard/HoverPreview.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/HoverPreview.tsx
index 892ae75dc4..aff7c7cf84 100644
--- a/src/components/ProjectDashboard/components/NftRewardsCard/HoverPreview.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/HoverPreview.tsx
@@ -1,5 +1,5 @@
import { Transition } from '@headlessui/react'
-import { useProjectPageQueries } from 'components/ProjectDashboard/hooks/useProjectPageQueries'
+import { useProjectPageQueries } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries'
import { NftRewardsContext } from 'contexts/NftRewards/NftRewardsContext'
import { useHasTouch } from 'hooks/useHasTouch'
import useMobile from 'hooks/useMobile'
diff --git a/src/components/ProjectDashboard/components/NftRewardsCard/NftRewardsCard.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/NftRewardsCard.tsx
similarity index 95%
rename from src/components/ProjectDashboard/components/NftRewardsCard/NftRewardsCard.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/NftRewardsCard.tsx
index 184eef15f4..ad7de17aa7 100644
--- a/src/components/ProjectDashboard/components/NftRewardsCard/NftRewardsCard.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/NftRewardsCard.tsx
@@ -1,7 +1,7 @@
import { ArrowRightIcon } from '@heroicons/react/24/solid'
import { Trans } from '@lingui/macro'
import { Tooltip } from 'antd'
-import { useProjectPageQueries } from 'components/ProjectDashboard/hooks/useProjectPageQueries'
+import { useProjectPageQueries } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries'
import { NftRewardsContext } from 'contexts/NftRewards/NftRewardsContext'
import { useCallback, useContext, useMemo } from 'react'
import { twMerge } from 'tailwind-merge'
diff --git a/src/components/ProjectDashboard/components/NftRewardsCard/SmallNftSquare.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/SmallNftSquare.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsCard/SmallNftSquare.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/SmallNftSquare.tsx
diff --git a/src/components/ProjectDashboard/components/NftRewardsCard/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsCard/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsCard/index.ts
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/AddNftButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/AddNftButton.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/AddNftButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/AddNftButton.tsx
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/NftDetails.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/NftDetails.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/NftDetails.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/NftDetails.tsx
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/NftReward.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/NftReward.tsx
similarity index 98%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/NftReward.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/NftReward.tsx
index fa5dc9177e..449f9d5fad 100644
--- a/src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/NftReward.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/NftReward.tsx
@@ -4,7 +4,7 @@ import { NftPreview } from 'components/NftRewards/NftPreview'
import {
useProjectCart,
useProjectContext,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { DEFAULT_NFT_MAX_SUPPLY } from 'constants/nftRewards'
import { useNftRewardsEnabledForPay } from 'hooks/JB721Delegate/useNftRewardsEnabledForPay'
import { NftRewardTier } from 'models/nftRewards'
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/NftThumbnail.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/NftThumbnail.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/NftThumbnail.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/NftThumbnail.tsx
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/PreviewAddRemoveNftButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/PreviewAddRemoveNftButton.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/PreviewAddRemoveNftButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/PreviewAddRemoveNftButton.tsx
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/RemoveNftButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/RemoveNftButton.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/RemoveNftButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/RemoveNftButton.tsx
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/NftReward/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftReward/index.ts
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/NftRewardsPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftRewardsPanel.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/NftRewardsPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/NftRewardsPanel.tsx
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftTile.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftTile.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftTile.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftTile.tsx
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftTiles.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftTiles.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftTiles.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftTiles.tsx
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftsSection.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftsSection.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftsSection.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/RedeemNftsSection.tsx
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/RedeemNftsSection/index.ts
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/hooks/useJB721DelegateTokenToNftReward.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/hooks/useJB721DelegateTokenToNftReward.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/hooks/useJB721DelegateTokenToNftReward.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/hooks/useJB721DelegateTokenToNftReward.ts
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/hooks/useNftRewardsPanel.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/hooks/useNftRewardsPanel.ts
similarity index 91%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/hooks/useNftRewardsPanel.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/hooks/useNftRewardsPanel.ts
index 2147005d42..de1fcf9c19 100644
--- a/src/components/ProjectDashboard/components/NftRewardsPanel/hooks/useNftRewardsPanel.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/hooks/useNftRewardsPanel.ts
@@ -1,4 +1,4 @@
-import { useProjectCart } from 'components/ProjectDashboard/hooks'
+import { useProjectCart } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { NftRewardsContext } from 'contexts/NftRewards/NftRewardsContext'
import { useCallback, useContext } from 'react'
diff --git a/src/components/ProjectDashboard/components/NftRewardsPanel/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/NftRewardsPanel/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/NftRewardsPanel/index.ts
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/PayProjectCard.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/PayProjectCard.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectCard/PayProjectCard.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/PayProjectCard.test.tsx
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/PayProjectCard.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/PayProjectCard.tsx
similarity index 97%
rename from src/components/ProjectDashboard/components/PayProjectCard/PayProjectCard.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/PayProjectCard.tsx
index 45621b335f..f6610d6da6 100644
--- a/src/components/ProjectDashboard/components/PayProjectCard/PayProjectCard.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/PayProjectCard.tsx
@@ -4,7 +4,7 @@ import {
} from '@heroicons/react/24/outline'
import { Trans, t } from '@lingui/macro'
import { Button, Tooltip } from 'antd'
-import { usePayProjectCard } from 'components/ProjectDashboard/hooks'
+import { usePayProjectCard } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { Formik } from 'formik'
import { useV2BlockedProject } from 'hooks/useBlockedProject'
import { V2V3CurrencyOption } from 'models/v2v3/currencyOption'
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/__snapshots__/PayProjectCard.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/__snapshots__/PayProjectCard.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectCard/__snapshots__/PayProjectCard.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/__snapshots__/PayProjectCard.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/components/PayInput.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/PayInput.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectCard/components/PayInput.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/PayInput.test.tsx
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/components/PayInput.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/PayInput.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectCard/components/PayInput.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/PayInput.tsx
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.test.tsx
similarity index 82%
rename from src/components/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.test.tsx
index 3827f51787..a0755f53d7 100644
--- a/src/components/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.test.tsx
@@ -2,13 +2,16 @@
* @jest-environment jsdom
*/
import { render, screen } from '@testing-library/react'
-import { useTokensPerEth } from 'components/ProjectDashboard/hooks/useTokensPerEth'
+import { useTokensPerEth } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPerEth'
import { V2V3_CURRENCY_ETH } from 'utils/v2v3/currency'
import { TokensPerEth } from './TokensPerEth'
-jest.mock('components/ProjectDashboard/hooks/useTokensPerEth', () => ({
- useTokensPerEth: jest.fn(),
-}))
+jest.mock(
+ 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPerEth',
+ () => ({
+ useTokensPerEth: jest.fn(),
+ }),
+)
describe('TokensPerEth', () => {
const mockedTokensPerEth = {
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.tsx
similarity index 86%
rename from src/components/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.tsx
index 9f2e9fbdc3..28959af062 100644
--- a/src/components/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/TokensPerEth.tsx
@@ -1,5 +1,5 @@
import { Trans } from '@lingui/macro'
-import { useTokensPerEth } from 'components/ProjectDashboard/hooks/useTokensPerEth'
+import { useTokensPerEth } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPerEth'
import { V2V3CurrencyOption } from 'models/v2v3/currencyOption'
export const TokensPerEth = ({
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/components/__mocks__/PayInput.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/__mocks__/PayInput.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectCard/components/__mocks__/PayInput.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/__mocks__/PayInput.tsx
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/components/__snapshots__/PayInput.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/__snapshots__/PayInput.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectCard/components/__snapshots__/PayInput.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/__snapshots__/PayInput.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/components/__snapshots__/TokensPerEth.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/__snapshots__/TokensPerEth.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectCard/components/__snapshots__/TokensPerEth.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/components/__snapshots__/TokensPerEth.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/hooks/usePayInput.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/hooks/usePayInput.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectCard/hooks/usePayInput.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/hooks/usePayInput.test.ts
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/hooks/usePayInput.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/hooks/usePayInput.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectCard/hooks/usePayInput.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/hooks/usePayInput.ts
diff --git a/src/components/ProjectDashboard/components/PayProjectCard/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectCard/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectCard/index.ts
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/PayProjectModal.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/PayProjectModal.tsx
similarity index 98%
rename from src/components/ProjectDashboard/components/PayProjectModal/PayProjectModal.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/PayProjectModal.tsx
index f55696a926..faba8f0c5b 100644
--- a/src/components/ProjectDashboard/components/PayProjectModal/PayProjectModal.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/PayProjectModal.tsx
@@ -1,11 +1,11 @@
import { Trans, t } from '@lingui/macro'
import EtherscanLink from 'components/EtherscanLink'
import ExternalLink from 'components/ExternalLink'
+import { JuiceModal } from 'components/modals/JuiceModal'
import {
PayProjectModalFormValues,
usePayProjectModal,
-} from 'components/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal'
-import { JuiceModal } from 'components/modals/JuiceModal'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal'
import { Formik } from 'formik'
import Image from 'next/image'
import { twMerge } from 'tailwind-merge'
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/EditRewardBeneficiary.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/EditRewardBeneficiary.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/EditRewardBeneficiary.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/EditRewardBeneficiary.test.tsx
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/EditRewardBeneficiary.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/EditRewardBeneficiary.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/EditRewardBeneficiary.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/EditRewardBeneficiary.tsx
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/MessageInput.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/MessageInput.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/MessageInput.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/MessageInput.test.tsx
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/MessageInput.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/MessageInput.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/MessageInput.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/MessageInput.tsx
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/MessageSection.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/MessageSection.tsx
similarity index 93%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/MessageSection.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/MessageSection.tsx
index 8ea28c170d..f3eb49ebab 100644
--- a/src/components/ProjectDashboard/components/PayProjectModal/components/MessageSection.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/MessageSection.tsx
@@ -4,7 +4,7 @@ import { Callout } from 'components/Callout'
import {
PayProjectModalFormValues,
usePayProjectModal,
-} from 'components/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal'
import { useFormikContext } from 'formik'
import { MessageInput } from './MessageInput'
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.test.tsx
similarity index 85%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.test.tsx
index 7e48d7ef1d..740fe1a799 100644
--- a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.test.tsx
@@ -2,10 +2,10 @@
* @jest-environment jsdom
*/
import { render, screen } from '@testing-library/react'
-import { useNftCartItem } from 'components/ProjectDashboard/hooks/useNftCartItem'
+import { useNftCartItem } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem'
import { ReceiveNftItem } from './ReceiveNftItem'
-jest.mock('components/ProjectDashboard/hooks/useNftCartItem')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem')
jest.mock('../../NftRewardsCard/SmallNftSquare', () => ({
// eslint-disable-next-line @typescript-eslint/no-explicit-any
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.tsx
similarity index 91%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.tsx
index d637907c51..0757d17453 100644
--- a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveNftItem.tsx
@@ -1,5 +1,5 @@
import { Trans } from '@lingui/macro'
-import { useNftCartItem } from 'components/ProjectDashboard/hooks/useNftCartItem'
+import { useNftCartItem } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem'
import { twMerge } from 'tailwind-merge'
import { CartItemBadge } from '../../Cart/components/CartItem/CartItemBadge'
import { SmallNftSquare } from '../../NftRewardsCard/SmallNftSquare'
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.test.tsx
similarity index 86%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.test.tsx
index 0647989a98..cc150d8f94 100644
--- a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.test.tsx
@@ -4,13 +4,17 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-empty-function */
import { render, screen } from '@testing-library/react'
-import { usePayProjectModal } from 'components/ProjectDashboard/hooks/usePayProjectModal'
-import { useProjectPaymentTokens } from 'components/ProjectDashboard/hooks/useProjectPaymentTokens'
+import { usePayProjectModal } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal'
+import { useProjectPaymentTokens } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens'
import { Formik } from 'formik'
import { ReceiveSection } from './ReceiveSection'
-jest.mock('components/ProjectDashboard/hooks/usePayProjectModal')
-jest.mock('components/ProjectDashboard/hooks/useProjectPaymentTokens')
+jest.mock(
+ 'components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal',
+)
+jest.mock(
+ 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens',
+)
jest.mock('./ReceiveNftItem', () => ({
ReceiveNftItem: jest.fn().mockImplementation(() => NFT
),
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.tsx
similarity index 88%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.tsx
index 29839211f6..28d5a8efeb 100644
--- a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveSection.tsx
@@ -2,8 +2,8 @@ import { Trans } from '@lingui/macro'
import {
PayProjectModalFormValues,
usePayProjectModal,
-} from 'components/ProjectDashboard/hooks/usePayProjectModal'
-import { useProjectPaymentTokens } from 'components/ProjectDashboard/hooks/useProjectPaymentTokens'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal'
+import { useProjectPaymentTokens } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens'
import { useFormikContext } from 'formik'
import { EditRewardBeneficiary } from './EditRewardBeneficiary'
import { ReceiveNftItem } from './ReceiveNftItem'
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.test.tsx
similarity index 82%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.test.tsx
index 7e8509a13b..a330819785 100644
--- a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.test.tsx
@@ -3,10 +3,12 @@
*/
import { render, screen } from '@testing-library/react'
-import { useProjectPaymentTokens } from 'components/ProjectDashboard/hooks/useProjectPaymentTokens'
+import { useProjectPaymentTokens } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens'
import { ReceiveTokensItem } from './ReceiveTokensItem'
-jest.mock('components/ProjectDashboard/hooks/useProjectPaymentTokens')
+jest.mock(
+ 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens',
+)
describe('ReceiveTokensItem', () => {
const DefaultUseProjectPaymentTokens = {
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.tsx
similarity index 83%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.tsx
index 7a964946b8..df45aff535 100644
--- a/src/components/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/ReceiveTokensItem.tsx
@@ -1,6 +1,6 @@
import { Trans } from '@lingui/macro'
-import { useProjectHasErc20Token } from 'components/ProjectDashboard/hooks/useProjectHasErc20Token'
-import { useProjectPaymentTokens } from 'components/ProjectDashboard/hooks/useProjectPaymentTokens'
+import { useProjectHasErc20Token } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectHasErc20Token'
+import { useProjectPaymentTokens } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens'
import { twMerge } from 'tailwind-merge'
import { CartItemBadge } from '../../Cart/components/CartItem/CartItemBadge'
import { ProjectHeaderLogo } from '../../ProjectHeader/components/ProjectHeaderLogo'
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/components/__snapshots__/EditRewardBeneficiary.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/__snapshots__/EditRewardBeneficiary.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectModal/components/__snapshots__/EditRewardBeneficiary.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/components/__snapshots__/EditRewardBeneficiary.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/editRewardBeneficiaryReducer.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/editRewardBeneficiaryReducer.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/editRewardBeneficiaryReducer.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/editRewardBeneficiaryReducer.test.ts
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/editRewardBeneficiaryReducer.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/editRewardBeneficiaryReducer.ts
similarity index 92%
rename from src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/editRewardBeneficiaryReducer.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/editRewardBeneficiaryReducer.ts
index 8306675319..71efa9cbac 100644
--- a/src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/editRewardBeneficiaryReducer.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/editRewardBeneficiaryReducer.ts
@@ -1,11 +1,11 @@
-export type EditRewardBeneficiaryReducerState = {
+type EditRewardBeneficiaryReducerState = {
isEditing: boolean
isLoading: boolean
address?: string
error?: string
}
-export type EditRewardBeneficiaryReducerAction =
+type EditRewardBeneficiaryReducerAction =
| {
type: 'edit'
}
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/index.ts
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/useEditRewardBeneficiary.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/useEditRewardBeneficiary.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/useEditRewardBeneficiary.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/useEditRewardBeneficiary.test.ts
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/useEditRewardBeneficiary.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/useEditRewardBeneficiary.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/useEditRewardBeneficiary.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/hooks/useEditRewardBeneficiary/useEditRewardBeneficiary.ts
diff --git a/src/components/ProjectDashboard/components/PayProjectModal/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/PayProjectModal/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/PayProjectModal/index.ts
diff --git a/src/components/ProjectDashboard/components/ProjectAllocationRow/ProjectAllocationRow.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectAllocationRow/ProjectAllocationRow.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectAllocationRow/ProjectAllocationRow.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectAllocationRow/ProjectAllocationRow.test.tsx
diff --git a/src/components/ProjectDashboard/components/ProjectAllocationRow/ProjectAllocationRow.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectAllocationRow/ProjectAllocationRow.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectAllocationRow/ProjectAllocationRow.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectAllocationRow/ProjectAllocationRow.tsx
diff --git a/src/components/ProjectDashboard/components/ProjectCartProvider/ProjectCartProvider.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider/ProjectCartProvider.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectCartProvider/ProjectCartProvider.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider/ProjectCartProvider.test.tsx
diff --git a/src/components/ProjectDashboard/components/ProjectCartProvider/ProjectCartProvider.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider/ProjectCartProvider.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectCartProvider/ProjectCartProvider.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider/ProjectCartProvider.tsx
diff --git a/src/components/ProjectDashboard/components/ProjectCartProvider/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectCartProvider/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider/index.ts
diff --git a/src/components/ProjectDashboard/components/ProjectCartProvider/projectCartReducer.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider/projectCartReducer.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectCartProvider/projectCartReducer.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider/projectCartReducer.test.ts
diff --git a/src/components/ProjectDashboard/components/ProjectCartProvider/projectCartReducer.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider/projectCartReducer.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectCartProvider/projectCartReducer.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectCartProvider/projectCartReducer.ts
diff --git a/src/components/ProjectDashboard/components/ProjectHeader/ProjectHeader.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/ProjectHeader.tsx
similarity index 94%
rename from src/components/ProjectDashboard/components/ProjectHeader/ProjectHeader.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/ProjectHeader.tsx
index 5870cbd301..f3e54aaf78 100644
--- a/src/components/ProjectDashboard/components/ProjectHeader/ProjectHeader.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/ProjectHeader.tsx
@@ -1,12 +1,12 @@
import { Cog6ToothIcon } from '@heroicons/react/24/outline'
import { Trans } from '@lingui/macro'
import { Button, Divider } from 'antd'
-import BookmarkButton from 'components/BookmarkButton/BookmarkButton'
import EthereumAddress from 'components/EthereumAddress'
import { GnosisSafeBadge } from 'components/Project/ProjectHeader/GnosisSafeBadge'
-import { useProjectHeader } from 'components/ProjectDashboard/hooks'
-import { SubscribeButton } from 'components/SubscribeButton'
import { TruncatedText } from 'components/TruncatedText'
+import BookmarkButton from 'components/buttons/BookmarkButton/BookmarkButton'
+import { SubscribeButton } from 'components/buttons/SubscribeButton'
+import { useProjectHeader } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import V2V3ProjectHandleLink from 'components/v2v3/shared/V2V3ProjectHandleLink'
import { PV_V2 } from 'constants/pv'
import useMobile from 'hooks/useMobile'
diff --git a/src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderLogo.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderLogo.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderLogo.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderLogo.tsx
diff --git a/src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderPopupMenu.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderPopupMenu.tsx
similarity index 84%
rename from src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderPopupMenu.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderPopupMenu.tsx
index 2108c299e2..a02deb2078 100644
--- a/src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderPopupMenu.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderPopupMenu.tsx
@@ -1,13 +1,13 @@
import { EllipsisVerticalIcon } from '@heroicons/react/24/outline'
import { Trans } from '@lingui/macro'
-import { BookmarkButtonIcon } from 'components/BookmarkButton/BookmarkButtonIcon'
-import { useBookmarkButton } from 'components/BookmarkButton/hooks/useBookmarkButton'
-import { SubscribeButtonIcon } from 'components/SubscribeButton/SubscribeButtonIcon'
-import { useSubscribeButton } from 'components/SubscribeButton/hooks/useSubscribeButton'
+import { BookmarkButtonIcon } from 'components/buttons/BookmarkButton/BookmarkButtonIcon'
+import { useBookmarkButton } from 'components/buttons/BookmarkButton/hooks/useBookmarkButton'
+import { SubscribeButtonIcon } from 'components/buttons/SubscribeButton/SubscribeButtonIcon'
+import { useSubscribeButton } from 'components/buttons/SubscribeButton/hooks/useSubscribeButton'
import { V2V3ProjectToolsDrawer } from 'components/v2v3/V2V3Project/V2V3ProjectToolsDrawer'
import { PV_V2 } from 'constants/pv'
import { useState } from 'react'
-import { PopupMenu } from '../../../../ui/PopupMenu'
+import { PopupMenu } from '../../../../../../ui/PopupMenu'
export function ProjectHeaderPopupMenu({ projectId }: { projectId: number }) {
const [toolsIsOpen, setToolsIsOpen] = useState()
diff --git a/src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStat.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStat.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStat.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStat.tsx
diff --git a/src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.test.tsx
similarity index 82%
rename from src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.test.tsx
index 58fc574819..c14afe3ac4 100644
--- a/src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.test.tsx
@@ -5,13 +5,15 @@ import { render } from '@testing-library/react'
import {
ProjectHeaderData,
useProjectHeader,
-} from 'components/ProjectDashboard/hooks'
-import { useProjectPageQueries } from 'components/ProjectDashboard/hooks/useProjectPageQueries'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { useProjectPageQueries } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries'
import { BigNumber } from 'ethers'
import { ProjectHeaderStats } from './ProjectHeaderStats'
-jest.mock('components/ProjectDashboard/hooks')
-jest.mock('components/ProjectDashboard/hooks/useProjectPageQueries')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
+jest.mock(
+ 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries',
+)
function mockUseProjectHeader(data: ProjectHeaderData) {
;(useProjectHeader as jest.Mock).mockReturnValue(data)
diff --git a/src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.tsx
similarity index 91%
rename from src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.tsx
index e529054dbd..2af9843a13 100644
--- a/src/components/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ProjectHeaderStats.tsx
@@ -2,9 +2,9 @@ import { BigNumber } from '@ethersproject/bignumber'
import { ArrowTrendingUpIcon } from '@heroicons/react/24/outline'
import { t, Trans } from '@lingui/macro'
import ETHAmount from 'components/currency/ETHAmount'
-import { useProjectHeader } from 'components/ProjectDashboard/hooks'
-import { useProjectPageQueries } from 'components/ProjectDashboard/hooks/useProjectPageQueries'
import { TRENDING_WINDOW_DAYS } from 'components/Projects/RankingExplanation'
+import { useProjectHeader } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { useProjectPageQueries } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries'
import { PropsWithChildren, useCallback } from 'react'
import { twMerge } from 'tailwind-merge'
import { ProjectHeaderStat } from './ProjectHeaderStat'
diff --git a/src/components/ProjectDashboard/components/ProjectHeader/components/Subtitle.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/Subtitle.tsx
similarity index 92%
rename from src/components/ProjectDashboard/components/ProjectHeader/components/Subtitle.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/Subtitle.tsx
index 2b111f993f..8f3aba717f 100644
--- a/src/components/ProjectDashboard/components/ProjectHeader/components/Subtitle.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/Subtitle.tsx
@@ -1,5 +1,5 @@
import { Trans } from '@lingui/macro'
-import { useProjectPageQueries } from 'components/ProjectDashboard/hooks/useProjectPageQueries'
+import { useProjectPageQueries } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries'
import { useCallback, useEffect, useRef, useState } from 'react'
export const Subtitle = ({ subtitle }: { subtitle: string }) => {
diff --git a/src/components/ProjectDashboard/components/ProjectHeader/components/ToolsDrawerButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ToolsDrawerButton.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectHeader/components/ToolsDrawerButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/components/ToolsDrawerButton.tsx
diff --git a/src/components/ProjectDashboard/components/ProjectHeader/hooks/useProjectHeaderLogo.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/hooks/useProjectHeaderLogo.ts
similarity index 72%
rename from src/components/ProjectDashboard/components/ProjectHeader/hooks/useProjectHeaderLogo.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/hooks/useProjectHeaderLogo.ts
index bbaa399572..6fb2ed1c72 100644
--- a/src/components/ProjectDashboard/components/ProjectHeader/hooks/useProjectHeaderLogo.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/hooks/useProjectHeaderLogo.ts
@@ -1,4 +1,4 @@
-import { useProjectMetadata } from 'components/ProjectDashboard/hooks'
+import { useProjectMetadata } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
export const useProjectHeaderLogo = () => {
const { projectMetadata, projectId } = useProjectMetadata()
diff --git a/src/components/ProjectDashboard/components/ProjectHeader/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectHeader/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectHeader/index.ts
diff --git a/src/components/ProjectDashboard/components/ProjectTabs/ProjectTabs.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectTabs/ProjectTabs.tsx
similarity index 95%
rename from src/components/ProjectDashboard/components/ProjectTabs/ProjectTabs.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectTabs/ProjectTabs.tsx
index ccf4c64f63..b58f2192be 100644
--- a/src/components/ProjectDashboard/components/ProjectTabs/ProjectTabs.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectTabs/ProjectTabs.tsx
@@ -1,7 +1,7 @@
import { Tab } from '@headlessui/react'
import { Trans, t } from '@lingui/macro'
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
-import { useProjectPageQueries } from 'components/ProjectDashboard/hooks/useProjectPageQueries'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { useProjectPageQueries } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries'
import { useHasNftRewards } from 'hooks/JB721Delegate/useHasNftRewards'
import { useIsUserAddress } from 'hooks/useIsUserAddress'
import { useOnScreen } from 'hooks/useOnScreen'
diff --git a/src/components/ProjectDashboard/components/ProjectTabs/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectTabs/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectTabs/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectTabs/index.ts
diff --git a/src/components/ProjectDashboard/components/ProjectUpdatesProvider/ProjectUpdatesProvider.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/ProjectUpdatesProvider.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectUpdatesProvider/ProjectUpdatesProvider.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/ProjectUpdatesProvider.tsx
diff --git a/src/components/ProjectDashboard/components/UpdatesPanel/hooks/useFactoredProjectId.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/hooks/useFactoredProjectId.ts
similarity index 76%
rename from src/components/ProjectDashboard/components/UpdatesPanel/hooks/useFactoredProjectId.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/hooks/useFactoredProjectId.ts
index 7fd6658851..0d56a04866 100644
--- a/src/components/ProjectDashboard/components/UpdatesPanel/hooks/useFactoredProjectId.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/hooks/useFactoredProjectId.ts
@@ -1,4 +1,4 @@
-import { useProjectMetadata } from 'components/ProjectDashboard/hooks'
+import { useProjectMetadata } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { PV_V2 } from 'constants/pv'
import { getSubgraphIdForProject } from 'utils/graph'
diff --git a/src/components/ProjectDashboard/components/ProjectUpdatesProvider/hooks/useProjectUpdates.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/hooks/useProjectUpdates.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectUpdatesProvider/hooks/useProjectUpdates.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/hooks/useProjectUpdates.ts
diff --git a/src/components/ProjectDashboard/components/ProjectUpdatesProvider/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/ProjectUpdatesProvider/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/index.ts
diff --git a/src/components/ProjectDashboard/components/ProjectUpdatesProvider/utils/projectUpdatesReducer.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/utils/projectUpdatesReducer.ts
similarity index 90%
rename from src/components/ProjectDashboard/components/ProjectUpdatesProvider/utils/projectUpdatesReducer.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/utils/projectUpdatesReducer.ts
index d34a8ed346..2837abb272 100644
--- a/src/components/ProjectDashboard/components/ProjectUpdatesProvider/utils/projectUpdatesReducer.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ProjectUpdatesProvider/utils/projectUpdatesReducer.ts
@@ -1,12 +1,12 @@
import { ProjectUpdate } from '../ProjectUpdatesProvider'
-export type ProjectUpdatesReducerState = {
+type ProjectUpdatesReducerState = {
projectUpdates: ProjectUpdate[]
loading: boolean
error: string | undefined
}
-export type ProjectUpdatesReducerAction =
+type ProjectUpdatesReducerAction =
| { type: 'loading' }
| { type: 'error'; error: string }
| { type: 'success'; projectUpdates: ProjectUpdate[] }
diff --git a/src/components/ProjectDashboard/components/SuccessPayView/SuccessPayView.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/SuccessPayView.tsx
similarity index 94%
rename from src/components/ProjectDashboard/components/SuccessPayView/SuccessPayView.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/SuccessPayView.tsx
index d47092c5e6..3860f5db78 100644
--- a/src/components/ProjectDashboard/components/SuccessPayView/SuccessPayView.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/SuccessPayView.tsx
@@ -1,7 +1,7 @@
import { ArrowUturnLeftIcon } from '@heroicons/react/24/outline'
import { Trans } from '@lingui/macro'
-import { useSuccessPayView } from 'components/ProjectDashboard/hooks/useSuccessPayView'
-import { SubscribeButton } from 'components/SubscribeButton'
+import { SubscribeButton } from 'components/buttons/SubscribeButton'
+import { useSuccessPayView } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useSuccessPayView'
import confettiAnimationJuicebox from 'data/lottie/confetti-animation-juicebox.json'
import Lottie from 'lottie-react'
import {
diff --git a/src/components/ProjectDashboard/components/SuccessPayView/components/SuccessButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/SuccessButton.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/SuccessPayView/components/SuccessButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/SuccessButton.tsx
diff --git a/src/components/ProjectDashboard/components/SuccessPayView/components/SuccessNftItem.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/SuccessNftItem.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/SuccessPayView/components/SuccessNftItem.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/SuccessNftItem.tsx
diff --git a/src/components/ProjectDashboard/components/SuccessPayView/components/SuccessPayCard.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/SuccessPayCard.tsx
similarity index 94%
rename from src/components/ProjectDashboard/components/SuccessPayView/components/SuccessPayCard.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/SuccessPayCard.tsx
index ec90a7232b..afc20cda87 100644
--- a/src/components/ProjectDashboard/components/SuccessPayView/components/SuccessPayCard.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/SuccessPayCard.tsx
@@ -1,8 +1,8 @@
import { Trans } from '@lingui/macro'
import EthereumAddress from 'components/EthereumAddress'
import EtherscanLink from 'components/EtherscanLink'
-import { useProjectMetadata } from 'components/ProjectDashboard/hooks'
-import { useProjectPageQueries } from 'components/ProjectDashboard/hooks/useProjectPageQueries'
+import { useProjectMetadata } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { useProjectPageQueries } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries'
import useMobile from 'hooks/useMobile'
import moment from 'moment'
import { useMemo } from 'react'
diff --git a/src/components/ProjectDashboard/components/SuccessPayView/components/SuccessTokensItem.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/SuccessTokensItem.tsx
similarity index 89%
rename from src/components/ProjectDashboard/components/SuccessPayView/components/SuccessTokensItem.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/SuccessTokensItem.tsx
index a791a34826..1c65ab35dd 100644
--- a/src/components/ProjectDashboard/components/SuccessPayView/components/SuccessTokensItem.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/SuccessTokensItem.tsx
@@ -1,5 +1,5 @@
import { Trans } from '@lingui/macro'
-import { useProjectPageQueries } from 'components/ProjectDashboard/hooks/useProjectPageQueries'
+import { useProjectPageQueries } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries'
import { CartItemBadge } from '../../Cart/components/CartItem/CartItemBadge'
import { ProjectHeaderLogo } from '../../ProjectHeader/components/ProjectHeaderLogo'
diff --git a/src/components/ProjectDashboard/components/SuccessPayView/components/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/SuccessPayView/components/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/components/index.ts
diff --git a/src/components/ProjectDashboard/components/SuccessPayView/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/SuccessPayView/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/SuccessPayView/index.ts
diff --git a/src/components/ProjectDashboard/components/TokenHoldersModal/TokenHoldersModal.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokenHoldersModal/TokenHoldersModal.tsx
similarity index 85%
rename from src/components/ProjectDashboard/components/TokenHoldersModal/TokenHoldersModal.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokenHoldersModal/TokenHoldersModal.tsx
index 5273eba2a7..30d65f0ff4 100644
--- a/src/components/ProjectDashboard/components/TokenHoldersModal/TokenHoldersModal.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokenHoldersModal/TokenHoldersModal.tsx
@@ -1,5 +1,5 @@
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
import ParticipantsModal from 'components/modals/ParticipantsModal'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
// TODO: This is hacked together - we should consider rebuilding
export const TokenHoldersModal = ({
diff --git a/src/components/ProjectDashboard/components/TokenHoldersModal/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokenHoldersModal/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/TokenHoldersModal/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokenHoldersModal/index.ts
diff --git a/src/components/ProjectDashboard/components/TokensPanel/TokensPanel.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/TokensPanel.test.tsx
similarity index 81%
rename from src/components/ProjectDashboard/components/TokensPanel/TokensPanel.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/TokensPanel.test.tsx
index 41cec578a3..646a183361 100644
--- a/src/components/ProjectDashboard/components/TokensPanel/TokensPanel.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/TokensPanel.test.tsx
@@ -2,22 +2,25 @@
* @jest-environment jsdom
*/
import { render } from '@testing-library/react'
-import { useTokensPanel } from 'components/ProjectDashboard/hooks/useTokensPanel'
+import { useTokensPanel } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPanel'
import { TokensPanel } from './TokensPanel'
-jest.mock('components/ProjectDashboard/hooks/useYourBalanceMenuItems', () => ({
- useYourBalanceMenuItems: jest.fn().mockReturnValue({
- items: [],
- redeemModalVisible: false,
- setRedeemModalVisible: jest.fn(),
- claimTokensModalVisible: false,
- setClaimTokensModalVisible: jest.fn(),
- mintModalVisible: false,
- setMintModalVisible: jest.fn(),
- transferUnclaimedTokensModalVisible: false,
- setTransferUnclaimedTokensModalVisible: jest.fn(),
+jest.mock(
+ 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useYourBalanceMenuItems',
+ () => ({
+ useYourBalanceMenuItems: jest.fn().mockReturnValue({
+ items: [],
+ redeemModalVisible: false,
+ setRedeemModalVisible: jest.fn(),
+ claimTokensModalVisible: false,
+ setClaimTokensModalVisible: jest.fn(),
+ mintModalVisible: false,
+ setMintModalVisible: jest.fn(),
+ transferUnclaimedTokensModalVisible: false,
+ setTransferUnclaimedTokensModalVisible: jest.fn(),
+ }),
}),
-}))
+)
jest.mock(
'components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/V2V3BurnOrRedeemModal',
@@ -47,7 +50,7 @@ jest.mock('./components/TransferUnclaimedTokensModalWrapper', () => ({
.mockImplementation(() => TransferUnclaimedTokensModalWrapper
),
}))
-jest.mock('components/ProjectDashboard/hooks/useTokensPanel')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPanel')
jest.mock('./components/ReservedTokensSubPanel', () => ({
ReservedTokensSubPanel: jest
.fn()
diff --git a/src/components/ProjectDashboard/components/TokensPanel/TokensPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/TokensPanel.tsx
similarity index 96%
rename from src/components/ProjectDashboard/components/TokensPanel/TokensPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/TokensPanel.tsx
index 009b7029ac..3846306de7 100644
--- a/src/components/ProjectDashboard/components/TokensPanel/TokensPanel.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/TokensPanel.tsx
@@ -1,9 +1,9 @@
import { Trans, t } from '@lingui/macro'
import EthereumAddress from 'components/EthereumAddress'
-import { useTokensPanel } from 'components/ProjectDashboard/hooks/useTokensPanel'
-import { useYourBalanceMenuItems } from 'components/ProjectDashboard/hooks/useYourBalanceMenuItems'
import { TokenAmount } from 'components/TokenAmount'
import { IssueErc20TokenButton } from 'components/buttons/IssueErc20TokenButton'
+import { useTokensPanel } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPanel'
+import { useYourBalanceMenuItems } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useYourBalanceMenuItems'
import { V2V3BurnOrRedeemModal } from 'components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/V2V3BurnOrRedeemModal'
import { V2V3ClaimTokensModal } from 'components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/V2V3ClaimTokensModal'
import { V2V3MintModal } from 'components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/V2V3MintModal'
diff --git a/src/components/ProjectDashboard/components/TokensPanel/TokensPanelTooltips.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/TokensPanelTooltips.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/TokensPanel/TokensPanelTooltips.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/TokensPanelTooltips.tsx
diff --git a/src/components/ProjectDashboard/components/TokensPanel/components/ExportTokensCsvItem.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/ExportTokensCsvItem.tsx
similarity index 91%
rename from src/components/ProjectDashboard/components/TokensPanel/components/ExportTokensCsvItem.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/ExportTokensCsvItem.tsx
index c1ba0c4df3..aadcb96a76 100644
--- a/src/components/ProjectDashboard/components/TokensPanel/components/ExportTokensCsvItem.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/ExportTokensCsvItem.tsx
@@ -1,6 +1,6 @@
import { ArrowUpTrayIcon } from '@heroicons/react/24/outline'
import { Trans } from '@lingui/macro'
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
import { useExportSplitsToCsv } from 'hooks/useExportSplitsToCsv'
import { useContext } from 'react'
diff --git a/src/components/ProjectDashboard/components/TokensPanel/components/MigrateTokensButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/MigrateTokensButton.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/TokensPanel/components/MigrateTokensButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/MigrateTokensButton.tsx
diff --git a/src/components/ProjectDashboard/components/TokensPanel/components/RedeemTokensButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/RedeemTokensButton.tsx
similarity index 91%
rename from src/components/ProjectDashboard/components/TokensPanel/components/RedeemTokensButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/RedeemTokensButton.tsx
index cc61b41b78..3041fb2532 100644
--- a/src/components/ProjectDashboard/components/TokensPanel/components/RedeemTokensButton.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/RedeemTokensButton.tsx
@@ -1,7 +1,7 @@
import { Trans, t } from '@lingui/macro'
import { Button, Tooltip } from 'antd'
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
-import { useUserTokenBalanceWad } from 'components/ProjectDashboard/hooks/useUserTokenBalanceWad'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { useUserTokenBalanceWad } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useUserTokenBalanceWad'
import { V2V3BurnOrRedeemModal } from 'components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/V2V3BurnOrRedeemModal'
import { useCallback, useMemo, useState } from 'react'
diff --git a/src/components/ProjectDashboard/components/TokensPanel/components/ReservedTokensSubPanel.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/ReservedTokensSubPanel.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/TokensPanel/components/ReservedTokensSubPanel.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/ReservedTokensSubPanel.test.tsx
diff --git a/src/components/ProjectDashboard/components/TokensPanel/components/ReservedTokensSubPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/ReservedTokensSubPanel.tsx
similarity index 97%
rename from src/components/ProjectDashboard/components/TokensPanel/components/ReservedTokensSubPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/ReservedTokensSubPanel.tsx
index 32ec2586ab..c07d576d2c 100644
--- a/src/components/ProjectDashboard/components/TokensPanel/components/ReservedTokensSubPanel.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/ReservedTokensSubPanel.tsx
@@ -1,8 +1,8 @@
import { Trans, t } from '@lingui/macro'
import { twMerge } from 'tailwind-merge'
import { ProjectAllocationRow } from '../../ProjectAllocationRow/ProjectAllocationRow'
-import { reservedTokensTooltip } from '../../TokensPanel/TokensPanelTooltips'
import { TitleDescriptionDisplayCard } from '../../ui/TitleDescriptionDisplayCard'
+import { reservedTokensTooltip } from '../TokensPanelTooltips'
import { useReservedTokensSubPanel } from '../hooks/useReservedTokensSubPanel'
import { ExportTokensCsvItem } from './ExportTokensCsvItem'
import { SendReservedTokensButton } from './SendReservedTokensButton'
diff --git a/src/components/ProjectDashboard/components/TokensPanel/components/SendReservedTokensButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/SendReservedTokensButton.tsx
similarity index 97%
rename from src/components/ProjectDashboard/components/TokensPanel/components/SendReservedTokensButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/SendReservedTokensButton.tsx
index 9445cb09ec..921da086bc 100644
--- a/src/components/ProjectDashboard/components/TokensPanel/components/SendReservedTokensButton.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/SendReservedTokensButton.tsx
@@ -4,7 +4,7 @@ import { Button, Tooltip } from 'antd'
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import DistributeReservedTokensModal from 'components/v2v3/V2V3Project/V2V3FundingCycleSection/modals/DistributeReservedTokensModal'
import { BigNumber } from 'ethers'
import { useProjectReservedTokens } from 'hooks/v2v3/contractReader/ProjectReservedTokens'
diff --git a/src/components/ProjectDashboard/components/TokensPanel/components/TokenRedemptionCallout.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/TokenRedemptionCallout.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/TokensPanel/components/TokenRedemptionCallout.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/TokenRedemptionCallout.tsx
diff --git a/src/components/ProjectDashboard/components/TokensPanel/components/TransferUnclaimedTokensModalWrapper.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/TransferUnclaimedTokensModalWrapper.tsx
similarity index 75%
rename from src/components/ProjectDashboard/components/TokensPanel/components/TransferUnclaimedTokensModalWrapper.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/TransferUnclaimedTokensModalWrapper.tsx
index 79fbee27ee..6821899acf 100644
--- a/src/components/ProjectDashboard/components/TokensPanel/components/TransferUnclaimedTokensModalWrapper.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/TransferUnclaimedTokensModalWrapper.tsx
@@ -1,6 +1,6 @@
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
-import { useUnclaimedTokenBalance } from 'components/ProjectDashboard/hooks/useUnclaimedTokenBalance'
import { TransferUnclaimedTokensModal } from 'components/modals/TransferUnclaimedTokensModal'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { useUnclaimedTokenBalance } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks/useUnclaimedTokenBalance'
import { useTransferUnclaimedTokensTx } from 'hooks/v2v3/transactor/useTransferUnclaimedTokensTx'
export const TransferUnclaimedTokensModalWrapper = (props: {
diff --git a/src/components/ProjectDashboard/components/TokensPanel/components/__snapshots__/ReservedTokensSubPanel.test.tsx.snap b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/__snapshots__/ReservedTokensSubPanel.test.tsx.snap
similarity index 100%
rename from src/components/ProjectDashboard/components/TokensPanel/components/__snapshots__/ReservedTokensSubPanel.test.tsx.snap
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/components/__snapshots__/ReservedTokensSubPanel.test.tsx.snap
diff --git a/src/components/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.test.ts
similarity index 95%
rename from src/components/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.test.ts
index aa2102d277..4f77eef565 100644
--- a/src/components/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.test.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.test.ts
@@ -5,12 +5,12 @@ import { renderHook } from '@testing-library/react'
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { BigNumber } from 'ethers'
import { useProjectReservedTokens } from 'hooks/v2v3/contractReader/ProjectReservedTokens'
import { useReservedTokensSubPanel } from './useReservedTokensSubPanel'
-jest.mock('components/ProjectDashboard/hooks')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
jest.mock('hooks/v2v3/contractReader/ProjectReservedTokens')
describe('useReservedTokensSubPanel', () => {
diff --git a/src/components/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.ts
similarity index 96%
rename from src/components/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.ts
index 96d06fe340..0c5b71dd08 100644
--- a/src/components/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/hooks/useReservedTokensSubPanel.ts
@@ -1,7 +1,7 @@
import {
useProjectContext,
useProjectMetadata,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { BigNumber } from 'ethers'
import { useProjectReservedTokens } from 'hooks/v2v3/contractReader/ProjectReservedTokens'
import { useMemo } from 'react'
diff --git a/src/components/ProjectDashboard/components/TokensPanel/hooks/useTokenRedemptionCallout.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/hooks/useTokenRedemptionCallout.ts
similarity index 87%
rename from src/components/ProjectDashboard/components/TokensPanel/hooks/useTokenRedemptionCallout.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/hooks/useTokenRedemptionCallout.ts
index 2ce97b9ffc..a617c599f6 100644
--- a/src/components/ProjectDashboard/components/TokensPanel/hooks/useTokenRedemptionCallout.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/hooks/useTokenRedemptionCallout.ts
@@ -1,4 +1,4 @@
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { useMemo } from 'react'
import { MAX_DISTRIBUTION_LIMIT } from 'utils/v2v3/math'
diff --git a/src/components/ProjectDashboard/components/TokensPanel/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/TokensPanel/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/TokensPanel/index.ts
diff --git a/src/components/ProjectDashboard/components/UpdatesPanel/UpdatesPanel.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/UpdatesPanel.tsx
similarity index 98%
rename from src/components/ProjectDashboard/components/UpdatesPanel/UpdatesPanel.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/UpdatesPanel.tsx
index 8fc9ff5dac..040020d80e 100644
--- a/src/components/ProjectDashboard/components/UpdatesPanel/UpdatesPanel.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/UpdatesPanel.tsx
@@ -3,7 +3,7 @@ import { Trans, t } from '@lingui/macro'
import { Button } from 'antd'
import useMobile from 'hooks/useMobile'
import { useEffect } from 'react'
-import { PopupMenu } from '../../../ui/PopupMenu'
+import { PopupMenu } from '../../../../../ui/PopupMenu'
import { AddProjectUpdateModal } from '../AddProjectUpdateModal'
import { EmptyScreen } from '../EmptyScreen'
import {
diff --git a/src/components/ProjectDashboard/components/UpdatesPanel/components/ProjectUpdate.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/components/ProjectUpdate.tsx
similarity index 94%
rename from src/components/ProjectDashboard/components/UpdatesPanel/components/ProjectUpdate.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/components/ProjectUpdate.tsx
index 6ee2aec0e0..d1a1fe27c5 100644
--- a/src/components/ProjectDashboard/components/UpdatesPanel/components/ProjectUpdate.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/components/ProjectUpdate.tsx
@@ -3,13 +3,13 @@ import { Trans } from '@lingui/macro'
import axios from 'axios'
import EthereumAddress from 'components/EthereumAddress'
import { JuiceVideoThumbnailOrImage } from 'components/JuiceVideo/JuiceVideoThumbnailOrImage'
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
-import { emitConfirmationDeletionModal } from 'components/ProjectDashboard/utils/modals'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
+import { emitConfirmationDeletionModal } from 'components/v2v3/V2V3Project/ProjectDashboard/utils/modals'
import { useIsUserAddress } from 'hooks/useIsUserAddress'
import { useWalletSignIn } from 'hooks/useWalletSignIn'
import { useCallback, useContext, useMemo } from 'react'
import { emitErrorNotification } from 'utils/notifications'
-import { PopupMenu } from '../../../../ui/PopupMenu'
+import { PopupMenu } from '../../../../../../ui/PopupMenu'
import { ProjectUpdate as ProjectUpdateEntity } from '../../ProjectUpdatesProvider'
import { ProjectUpdatesContext } from '../../ProjectUpdatesProvider/ProjectUpdatesProvider'
import { useFactoredProjectId } from '../hooks/useFactoredProjectId'
diff --git a/src/components/ProjectDashboard/components/ProjectUpdatesProvider/hooks/useFactoredProjectId.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/hooks/useFactoredProjectId.ts
similarity index 76%
rename from src/components/ProjectDashboard/components/ProjectUpdatesProvider/hooks/useFactoredProjectId.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/hooks/useFactoredProjectId.ts
index 7fd6658851..0d56a04866 100644
--- a/src/components/ProjectDashboard/components/ProjectUpdatesProvider/hooks/useFactoredProjectId.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/hooks/useFactoredProjectId.ts
@@ -1,4 +1,4 @@
-import { useProjectMetadata } from 'components/ProjectDashboard/hooks'
+import { useProjectMetadata } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { PV_V2 } from 'constants/pv'
import { getSubgraphIdForProject } from 'utils/graph'
diff --git a/src/components/ProjectDashboard/components/UpdatesPanel/hooks/useUpdatesPanel.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/hooks/useUpdatesPanel.ts
similarity index 93%
rename from src/components/ProjectDashboard/components/UpdatesPanel/hooks/useUpdatesPanel.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/hooks/useUpdatesPanel.ts
index 2af383a873..d41493d2e1 100644
--- a/src/components/ProjectDashboard/components/UpdatesPanel/hooks/useUpdatesPanel.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/hooks/useUpdatesPanel.ts
@@ -1,4 +1,4 @@
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { useIsUserAddress } from 'hooks/useIsUserAddress'
import { useWalletSignIn } from 'hooks/useWalletSignIn'
import { useCallback, useContext, useState } from 'react'
diff --git a/src/components/ProjectDashboard/components/UpdatesPanel/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/UpdatesPanel/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/index.ts
diff --git a/src/components/ProjectDashboard/components/UpdatesPanel/utils/formatDateString.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/utils/formatDateString.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/UpdatesPanel/utils/formatDateString.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/UpdatesPanel/utils/formatDateString.ts
diff --git a/src/components/ProjectDashboard/components/ui/ConfirmationDeletionModal.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/ConfirmationDeletionModal.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ui/ConfirmationDeletionModal.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/ConfirmationDeletionModal.tsx
diff --git a/src/components/ProjectDashboard/components/ui/CurrencyIcon.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/CurrencyIcon.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ui/CurrencyIcon.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/CurrencyIcon.tsx
diff --git a/src/components/ProjectDashboard/components/ui/DisplayCard.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/DisplayCard.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ui/DisplayCard.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/DisplayCard.tsx
diff --git a/src/components/ProjectDashboard/components/ui/ExternalLinkWithIcon.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/ExternalLinkWithIcon.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ui/ExternalLinkWithIcon.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/ExternalLinkWithIcon.tsx
diff --git a/src/components/ProjectDashboard/components/ui/ProjectTab.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/ProjectTab.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ui/ProjectTab.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/ProjectTab.tsx
diff --git a/src/components/ProjectDashboard/components/ui/SocialLinkButton.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/SocialLinkButton.test.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ui/SocialLinkButton.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/SocialLinkButton.test.tsx
diff --git a/src/components/ProjectDashboard/components/ui/SocialLinkButton.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/SocialLinkButton.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ui/SocialLinkButton.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/SocialLinkButton.tsx
diff --git a/src/components/ProjectDashboard/components/ui/StackedComponents.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/StackedComponents.tsx
similarity index 100%
rename from src/components/ProjectDashboard/components/ui/StackedComponents.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/StackedComponents.tsx
diff --git a/src/components/ProjectDashboard/components/ui/TitleDescriptionDisplayCard.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/TitleDescriptionDisplayCard.tsx
similarity index 96%
rename from src/components/ProjectDashboard/components/ui/TitleDescriptionDisplayCard.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/TitleDescriptionDisplayCard.tsx
index f25f23a353..ef73c62c70 100644
--- a/src/components/ProjectDashboard/components/ui/TitleDescriptionDisplayCard.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/TitleDescriptionDisplayCard.tsx
@@ -2,7 +2,7 @@ import { QuestionMarkCircleIcon } from '@heroicons/react/24/outline'
import { Tooltip } from 'antd'
import { AriaRole, MouseEventHandler, ReactNode } from 'react'
import { twMerge } from 'tailwind-merge'
-import { PopupMenu, PopupMenuProps } from '../../../ui/PopupMenu'
+import { PopupMenu, PopupMenuProps } from '../../../../../ui/PopupMenu'
import { DisplayCard } from './DisplayCard'
type Props = {
diff --git a/src/components/ProjectDashboard/components/ui/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/components/ui/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/components/ui/index.ts
diff --git a/src/components/ProjectDashboard/hooks/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/index.ts
diff --git a/src/components/ProjectDashboard/hooks/useAboutPanel.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useAboutPanel.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useAboutPanel.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useAboutPanel.ts
diff --git a/src/components/ProjectDashboard/hooks/useCountdownClock.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useCountdownClock.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useCountdownClock.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useCountdownClock.test.ts
diff --git a/src/components/ProjectDashboard/hooks/useCountdownClock.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useCountdownClock.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useCountdownClock.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useCountdownClock.ts
diff --git a/src/components/ProjectDashboard/hooks/useCoverPhoto.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useCoverPhoto.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useCoverPhoto.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useCoverPhoto.ts
diff --git a/src/components/ProjectDashboard/hooks/useCurrentCycleCard.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useCurrentCycleCard.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useCurrentCycleCard.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useCurrentCycleCard.ts
diff --git a/src/components/ProjectDashboard/hooks/useFundingCycleCountdown.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useFundingCycleCountdown.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useFundingCycleCountdown.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useFundingCycleCountdown.ts
diff --git a/src/components/ProjectDashboard/hooks/useNftCartItem.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem.test.tsx
similarity index 95%
rename from src/components/ProjectDashboard/hooks/useNftCartItem.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem.test.tsx
index f8abc91e15..928c8a447e 100644
--- a/src/components/ProjectDashboard/hooks/useNftCartItem.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem.test.tsx
@@ -3,7 +3,7 @@
*/
/* eslint-disable @typescript-eslint/no-explicit-any */
import { renderHook } from '@testing-library/react'
-import { useProjectCart } from 'components/ProjectDashboard/hooks'
+import { useProjectCart } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { NftRewardsContext } from 'contexts/NftRewards/NftRewardsContext'
import { V2V3_CURRENCY_ETH } from 'utils/v2v3/currency'
import { useNftCartItem } from './useNftCartItem'
@@ -39,7 +39,7 @@ const renderUseNftCartItemHook = (quantity = 1) => {
)
}
-jest.mock('components/ProjectDashboard/hooks')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
describe('useNftCartItem', () => {
const DefaultUseProjectCartMock = {
diff --git a/src/components/ProjectDashboard/hooks/useNftCartItem.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem.ts
similarity index 94%
rename from src/components/ProjectDashboard/hooks/useNftCartItem.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem.ts
index f28bfbb5db..67a61cc044 100644
--- a/src/components/ProjectDashboard/hooks/useNftCartItem.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useNftCartItem.ts
@@ -1,4 +1,4 @@
-import { useProjectCart } from 'components/ProjectDashboard/hooks'
+import { useProjectCart } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { NftRewardsContext } from 'contexts/NftRewards/NftRewardsContext'
import { useCallback, useContext, useMemo } from 'react'
import { V2V3_CURRENCY_ETH } from 'utils/v2v3/currency'
diff --git a/src/components/ProjectDashboard/hooks/usePayProjectCard.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectCard.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/usePayProjectCard.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectCard.test.ts
diff --git a/src/components/ProjectDashboard/hooks/usePayProjectCard.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectCard.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/usePayProjectCard.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectCard.ts
diff --git a/src/components/ProjectDashboard/hooks/usePayProjectModal/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/usePayProjectModal/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/index.ts
diff --git a/src/components/ProjectDashboard/hooks/usePayProjectModal/payProjectModalReducer.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/payProjectModalReducer.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/usePayProjectModal/payProjectModalReducer.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/payProjectModalReducer.test.ts
diff --git a/src/components/ProjectDashboard/hooks/usePayProjectModal/payProjectModalReducer.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/payProjectModalReducer.ts
similarity index 94%
rename from src/components/ProjectDashboard/hooks/usePayProjectModal/payProjectModalReducer.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/payProjectModalReducer.ts
index 0db5556cc9..ae543a24d5 100644
--- a/src/components/ProjectDashboard/hooks/usePayProjectModal/payProjectModalReducer.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/payProjectModalReducer.ts
@@ -1,9 +1,9 @@
-export type PayProjectModalState = {
+type PayProjectModalState = {
isTransactionPending: boolean
isTransactionConfirmed: boolean
transactionError: string | undefined
}
-export type PayProjectModalAction =
+type PayProjectModalAction =
| { type: 'transactionPending' }
| { type: 'transactionConfirmed' }
| { type: 'transactionError'; error: string }
diff --git a/src/components/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal.test.ts
diff --git a/src/components/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/usePayProjectModal.ts
diff --git a/src/components/ProjectDashboard/hooks/usePayProjectModal/usePayProjectTx.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/usePayProjectTx.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/usePayProjectModal/usePayProjectTx.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/usePayProjectModal/usePayProjectTx.ts
diff --git a/src/components/ProjectDashboard/hooks/useProjectCart.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectCart.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useProjectCart.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectCart.ts
diff --git a/src/components/ProjectDashboard/hooks/useProjectContext.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectContext.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useProjectContext.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectContext.ts
diff --git a/src/components/ProjectDashboard/hooks/useProjectHasErc20Token.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectHasErc20Token.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useProjectHasErc20Token.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectHasErc20Token.ts
diff --git a/src/components/ProjectDashboard/hooks/useProjectHeader.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectHeader.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useProjectHeader.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectHeader.ts
diff --git a/src/components/ProjectDashboard/hooks/useProjectMetadata.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectMetadata.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useProjectMetadata.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectMetadata.ts
diff --git a/src/components/ProjectDashboard/hooks/useProjectPageQueries.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useProjectPageQueries.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries.test.ts
diff --git a/src/components/ProjectDashboard/hooks/useProjectPageQueries.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useProjectPageQueries.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPageQueries.ts
diff --git a/src/components/ProjectDashboard/hooks/useProjectPaymentTokens.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens.test.ts
similarity index 88%
rename from src/components/ProjectDashboard/hooks/useProjectPaymentTokens.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens.test.ts
index 5e8c05e220..a99a70f6c1 100644
--- a/src/components/ProjectDashboard/hooks/useProjectPaymentTokens.test.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens.test.ts
@@ -5,11 +5,11 @@ import { renderHook } from '@testing-library/react'
import {
useProjectCart,
useTokensPerEth,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { V2V3_CURRENCY_ETH } from 'utils/v2v3/currency'
import { useProjectPaymentTokens } from './useProjectPaymentTokens'
-jest.mock('components/ProjectDashboard/hooks')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
describe('useProjectPaymentTokens', () => {
const DefaultUseProjectCart = {
diff --git a/src/components/ProjectDashboard/hooks/useProjectPaymentTokens.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens.ts
similarity index 86%
rename from src/components/ProjectDashboard/hooks/useProjectPaymentTokens.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens.ts
index a728971b74..81b6f71372 100644
--- a/src/components/ProjectDashboard/hooks/useProjectPaymentTokens.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useProjectPaymentTokens.ts
@@ -1,7 +1,7 @@
import {
useProjectCart,
useTokensPerEth,
-} from 'components/ProjectDashboard/hooks'
+} from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
export const useProjectPaymentTokens = () => {
const { totalAmount: payAmount } = useProjectCart()
diff --git a/src/components/ProjectDashboard/hooks/useSuccessPayView.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useSuccessPayView.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useSuccessPayView.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useSuccessPayView.ts
diff --git a/src/components/ProjectDashboard/hooks/useTokensPanel.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPanel.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useTokensPanel.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPanel.ts
diff --git a/src/components/ProjectDashboard/hooks/useTokensPerEth.test.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPerEth.test.tsx
similarity index 94%
rename from src/components/ProjectDashboard/hooks/useTokensPerEth.test.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPerEth.test.tsx
index af4496f9ad..e2b0f3a6b6 100644
--- a/src/components/ProjectDashboard/hooks/useTokensPerEth.test.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPerEth.test.tsx
@@ -4,7 +4,7 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { renderHook } from '@testing-library/react-hooks'
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { V2V3CurrencyProvider } from 'contexts/v2v3/V2V3CurrencyProvider'
import { BigNumber } from 'ethers'
import { useCurrencyConverter } from 'hooks/useCurrencyConverter'
@@ -13,7 +13,7 @@ import { tokenSymbolText } from 'utils/tokenSymbolText'
import { V2V3_CURRENCY_ETH, V2V3_CURRENCY_USD } from 'utils/v2v3/currency'
import { useTokensPerEth } from './useTokensPerEth'
-jest.mock('components/ProjectDashboard/hooks')
+jest.mock('components/v2v3/V2V3Project/ProjectDashboard/hooks')
jest.mock('hooks/useCurrencyConverter')
diff --git a/src/components/ProjectDashboard/hooks/useTokensPerEth.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPerEth.ts
similarity index 96%
rename from src/components/ProjectDashboard/hooks/useTokensPerEth.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPerEth.ts
index 8b9ad71864..e13c1fbaa0 100644
--- a/src/components/ProjectDashboard/hooks/useTokensPerEth.ts
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useTokensPerEth.ts
@@ -1,4 +1,4 @@
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { CurrencyContext } from 'contexts/shared/CurrencyContext'
import { BigNumber, utils } from 'ethers'
import { useCurrencyConverter } from 'hooks/useCurrencyConverter'
diff --git a/src/components/ProjectDashboard/hooks/useUnclaimedTokenBalance.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useUnclaimedTokenBalance.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useUnclaimedTokenBalance.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useUnclaimedTokenBalance.ts
diff --git a/src/components/ProjectDashboard/hooks/useUserTokenBalanceWad.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useUserTokenBalanceWad.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useUserTokenBalanceWad.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useUserTokenBalanceWad.ts
diff --git a/src/components/ProjectDashboard/hooks/useYourBalanceMenuItems/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useYourBalanceMenuItems/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useYourBalanceMenuItems/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useYourBalanceMenuItems/index.ts
diff --git a/src/components/ProjectDashboard/hooks/useYourBalanceMenuItems/useBalanceMenuItemsUserFlags.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useYourBalanceMenuItems/useBalanceMenuItemsUserFlags.ts
similarity index 100%
rename from src/components/ProjectDashboard/hooks/useYourBalanceMenuItems/useBalanceMenuItemsUserFlags.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useYourBalanceMenuItems/useBalanceMenuItemsUserFlags.ts
diff --git a/src/components/ProjectDashboard/hooks/useYourBalanceMenuItems/useYourBalanceMenuItems.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useYourBalanceMenuItems/useYourBalanceMenuItems.tsx
similarity index 97%
rename from src/components/ProjectDashboard/hooks/useYourBalanceMenuItems/useYourBalanceMenuItems.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useYourBalanceMenuItems/useYourBalanceMenuItems.tsx
index fdfd3f7da4..04567ef2d7 100644
--- a/src/components/ProjectDashboard/hooks/useYourBalanceMenuItems/useYourBalanceMenuItems.tsx
+++ b/src/components/v2v3/V2V3Project/ProjectDashboard/hooks/useYourBalanceMenuItems/useYourBalanceMenuItems.tsx
@@ -6,7 +6,7 @@ import {
} from '@heroicons/react/24/outline'
import { t } from '@lingui/macro'
import { ReactNode, useMemo, useState } from 'react'
-import { PopupMenuItem } from '../../../ui/PopupMenu'
+import { PopupMenuItem } from '../../../../../ui/PopupMenu'
import { useBalanceMenuItemsUserFlags } from './useBalanceMenuItemsUserFlags'
export const useYourBalanceMenuItems = () => {
diff --git a/src/components/ProjectDashboard/index.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/index.ts
similarity index 100%
rename from src/components/ProjectDashboard/index.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/index.ts
diff --git a/src/components/ProjectDashboard/utils/modals.tsx b/src/components/v2v3/V2V3Project/ProjectDashboard/utils/modals.tsx
similarity index 100%
rename from src/components/ProjectDashboard/utils/modals.tsx
rename to src/components/v2v3/V2V3Project/ProjectDashboard/utils/modals.tsx
diff --git a/src/components/ProjectDashboard/utils/timeSecondsToDateString.test.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/utils/timeSecondsToDateString.test.ts
similarity index 100%
rename from src/components/ProjectDashboard/utils/timeSecondsToDateString.test.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/utils/timeSecondsToDateString.test.ts
diff --git a/src/components/ProjectDashboard/utils/timeSecondsToDateString.ts b/src/components/v2v3/V2V3Project/ProjectDashboard/utils/timeSecondsToDateString.ts
similarity index 100%
rename from src/components/ProjectDashboard/utils/timeSecondsToDateString.ts
rename to src/components/v2v3/V2V3Project/ProjectDashboard/utils/timeSecondsToDateString.ts
diff --git a/src/components/v2v3/V2V3Project/ProjectPageMobile.tsx b/src/components/v2v3/V2V3Project/ProjectPageMobile.tsx
deleted file mode 100644
index b9d0a454ea..0000000000
--- a/src/components/v2v3/V2V3Project/ProjectPageMobile.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { ErrorBoundaryCallout } from 'components/Callout/ErrorBoundaryCallout'
-import { NftRewardsSection } from 'components/NftRewards/NftRewardsSection'
-import { useNftRewardsEnabledForPay } from 'hooks/JB721Delegate/useNftRewardsEnabledForPay'
-import { V2V3ProjectActivity } from './ProjectActivity'
-import { ProjectPageTabs } from './ProjectPageTabs'
-import { V2V3PayProjectForm } from './V2V3PayProjectForm'
-
-export function ProjectPageMobile() {
- const nftRewardsEnabled = useNftRewardsEnabledForPay()
-
- return (
- <>
-
- {nftRewardsEnabled ? (
-
-
- NFTs failed to load.
-
- }
- >
-
-
-
- ) : null}
-
- Project details failed to load.}
- >
-
-
-
-
- Project activity failed to load.}
- >
-
-
-
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/ProjectPageRightCol.tsx b/src/components/v2v3/V2V3Project/ProjectPageRightCol.tsx
deleted file mode 100644
index b6572b0114..0000000000
--- a/src/components/v2v3/V2V3Project/ProjectPageRightCol.tsx
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { Col } from 'antd'
-import { ErrorBoundaryCallout } from 'components/Callout/ErrorBoundaryCallout'
-import { NftRewardsSection } from 'components/NftRewards/NftRewardsSection'
-import { useNftRewardsEnabledForPay } from 'hooks/JB721Delegate/useNftRewardsEnabledForPay'
-import { V2V3ProjectActivity } from './ProjectActivity'
-import { V2V3PayProjectForm } from './V2V3PayProjectForm'
-import { COL_SIZE_MD } from './V2V3Project'
-
-export function ProjectPageRightCol() {
- const nftRewardsEnabled = useNftRewardsEnabledForPay()
-
- return (
-
-
-
-
- {nftRewardsEnabled ? (
-
- NFTs failed to load.}>
-
-
-
- ) : null}
-
- Project activity failed to load.}
- >
-
-
-
-
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/ProjectPageTabs/AllAssetsButton.tsx b/src/components/v2v3/V2V3Project/ProjectPageTabs/AllAssetsButton.tsx
deleted file mode 100644
index 27b45ba57f..0000000000
--- a/src/components/v2v3/V2V3Project/ProjectPageTabs/AllAssetsButton.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { TextButton } from 'components/buttons/TextButton'
-import { useState } from 'react'
-import { V2V3ProjectTokenBalancesModal } from '../modals/V2V3ProjectTokenBalancesModal'
-
-export function AllAssetsButton() {
- const [balancesModalVisible, setBalancesModalVisible] =
- useState(false)
-
- return (
- <>
- setBalancesModalVisible(true)}>
- All assets
-
- setBalancesModalVisible(false)}
- />
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/ProjectPageTabs/OverviewTab.tsx b/src/components/v2v3/V2V3Project/ProjectPageTabs/OverviewTab.tsx
deleted file mode 100644
index 38c3625e17..0000000000
--- a/src/components/v2v3/V2V3Project/ProjectPageTabs/OverviewTab.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { ErrorBoundaryCallout } from 'components/Callout/ErrorBoundaryCallout'
-import VolumeChart from 'components/VolumeChart'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useContext } from 'react'
-import TreasuryStats from '../TreasuryStats'
-import { AllAssetsButton } from './AllAssetsButton'
-
-export default function OverviewTab() {
- const { createdAt } = useContext(V2V3ProjectContext)
- const { projectId, pv } = useContext(ProjectMetadataContext)
-
- return (
- <>
-
- {pv && projectId ? (
-
- Volume chart failed to load.}
- >
-
-
-
- ) : null}
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/ProjectPageTabs/ProjectPageTabs.tsx b/src/components/v2v3/V2V3Project/ProjectPageTabs/ProjectPageTabs.tsx
deleted file mode 100644
index 484c98976a..0000000000
--- a/src/components/v2v3/V2V3Project/ProjectPageTabs/ProjectPageTabs.tsx
+++ /dev/null
@@ -1,49 +0,0 @@
-import { t } from '@lingui/macro'
-import { Col, Tabs } from 'antd'
-import Loading from 'components/Loading'
-import { Suspense, lazy } from 'react'
-import { COL_SIZE_MD } from '../V2V3Project'
-import { TabLabel } from './TabLabel'
-const OverviewTab = lazy(() => import('./OverviewTab'))
-const TokensTab = lazy(() => import('./TokensTab'))
-const V2V3FundingCycleSection = lazy(() => import('../V2V3FundingCycleSection'))
-
-export function ProjectPageTabs() {
- const tabItems = [
- {
- label: ,
- key: 'overview',
- children: (
- }>
-
-
- ),
- },
- {
- label: ,
- key: 'cycle',
- children: (
- }>
- {' '}
-
- ),
- },
- {
- label: ,
- key: 'tokens',
- children: (
- }>
-
-
- ),
- },
- ]
-
- return (
-
-
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/ProjectPageTabs/TabLabel.tsx b/src/components/v2v3/V2V3Project/ProjectPageTabs/TabLabel.tsx
deleted file mode 100644
index 92a1f5ed37..0000000000
--- a/src/components/v2v3/V2V3Project/ProjectPageTabs/TabLabel.tsx
+++ /dev/null
@@ -1,3 +0,0 @@
-export function TabLabel({ label }: { label: string }) {
- return {label}
-}
diff --git a/src/components/v2v3/V2V3Project/ProjectPageTabs/TokensTab.tsx b/src/components/v2v3/V2V3Project/ProjectPageTabs/TokensTab.tsx
deleted file mode 100644
index 5a575f6e9e..0000000000
--- a/src/components/v2v3/V2V3Project/ProjectPageTabs/TokensTab.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import { useHasNftRewards } from 'hooks/JB721Delegate/useHasNftRewards'
-import { useWallet } from 'hooks/Wallet'
-import { ManageNftsSection } from '../ManageNftsSection/ManageNftsSection'
-import { V2V3ManageTokensSection } from '../V2V3ManageTokensSection'
-
-export default function TokensTab() {
- const { isConnected } = useWallet()
- const { value: hasNftRewards } = useHasNftRewards()
-
- return (
- <>
-
-
- {hasNftRewards && isConnected ? (
-
- ) : null}
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/ProjectPageTabs/index.tsx b/src/components/v2v3/V2V3Project/ProjectPageTabs/index.tsx
deleted file mode 100644
index 8c07cd48e3..0000000000
--- a/src/components/v2v3/V2V3Project/ProjectPageTabs/index.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export { ProjectPageTabs } from './ProjectPageTabs'
diff --git a/src/components/v2v3/V2V3Project/TreasuryStats/DistributedRatio.tsx b/src/components/v2v3/V2V3Project/TreasuryStats/DistributedRatio.tsx
deleted file mode 100644
index ccbcd7558d..0000000000
--- a/src/components/v2v3/V2V3Project/TreasuryStats/DistributedRatio.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-import { Trans } from '@lingui/macro'
-import StatLine from 'components/Project/StatLine'
-import TooltipLabel from 'components/TooltipLabel'
-import { DISTRIBUTION_LIMIT_EXPLANATION } from 'components/strings'
-import V2V3CurrencyAmount from 'components/v2v3/shared/V2V3CurrencyAmount'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useContext } from 'react'
-import { isInfiniteDistributionLimit } from 'utils/v2v3/fundingCycle'
-
-export default function DistributedRatio() {
- const {
- distributionLimit,
- usedDistributionLimit,
- distributionLimitCurrency,
- loading: { distributionLimitLoading },
- } = useContext(V2V3ProjectContext)
-
- return (
- Payouts}
- statLabelTip={DISTRIBUTION_LIMIT_EXPLANATION}
- statValue={
- distributionLimit?.gt(0) ? (
-
- {' '}
- <>
- /{' '}
- {isInfiniteDistributionLimit(distributionLimit) ? (
- NO LIMIT
- ) : (
-
- )}
- >
-
- ) : (
-
-
- No payouts are scheduled for this cycle. All ETH is available
- for redemption (subject to the redemption rate).
-
- }
- label={No payouts }
- />
-
- )
- }
- />
- )
-}
diff --git a/src/components/v2v3/V2V3Project/TreasuryStats/OwnerBalance.tsx b/src/components/v2v3/V2V3Project/TreasuryStats/OwnerBalance.tsx
deleted file mode 100644
index 926847ee27..0000000000
--- a/src/components/v2v3/V2V3Project/TreasuryStats/OwnerBalance.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import { Trans } from '@lingui/macro'
-import ETHAmount from 'components/currency/ETHAmount'
-import EtherscanLink from 'components/EtherscanLink'
-import StatLine from 'components/Project/StatLine'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useEthBalanceQuery } from 'hooks/useEthBalance'
-import { useContext } from 'react'
-
-export default function OwnerBalance() {
- const { projectOwnerAddress } = useContext(V2V3ProjectContext)
- const { data: projectOwnerWalletBalance, isLoading } =
- useEthBalanceQuery(projectOwnerAddress)
-
- return (
- Owner wallet balance}
- statLabelTip={
- <>
-
-
- The amount of ETH in the wallet that owns this project.
-
-
{' '}
-
- >
- }
- statValue={
-
-
-
- }
- />
- )
-}
diff --git a/src/components/v2v3/V2V3Project/TreasuryStats/ProjectBalance.tsx b/src/components/v2v3/V2V3Project/TreasuryStats/ProjectBalance.tsx
deleted file mode 100644
index 5cdba3c380..0000000000
--- a/src/components/v2v3/V2V3Project/TreasuryStats/ProjectBalance.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Trans } from '@lingui/macro'
-import StatLine from 'components/Project/StatLine'
-import ETHAmount from 'components/currency/ETHAmount'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { BigNumber } from 'ethers'
-import { useContext } from 'react'
-import { NO_CURRENCY, V2V3_CURRENCY_USD } from 'utils/v2v3/currency'
-
-import V2V3CurrencyAmount from 'components/v2v3/shared/V2V3CurrencyAmount'
-
-export default function ProjectBalance() {
- const {
- ETHBalance,
- balanceInDistributionLimitCurrency,
- distributionLimitCurrency,
- loading: { balanceInDistributionLimitCurrencyLoading },
- } = useContext(V2V3ProjectContext)
-
- return (
- Project balance}
- statLabelTip={
- The amount of ETH that this project has right now.
- }
- statValue={
-
- {distributionLimitCurrency?.eq(V2V3_CURRENCY_USD) && (
-
- {' '}
-
- )}
-
-
- }
- />
- )
-}
diff --git a/src/components/v2v3/V2V3Project/TreasuryStats/index.tsx b/src/components/v2v3/V2V3Project/TreasuryStats/index.tsx
deleted file mode 100644
index 2c4d21f5d9..0000000000
--- a/src/components/v2v3/V2V3Project/TreasuryStats/index.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import { Skeleton } from 'antd'
-import FundingProgressBar from 'components/Project/FundingProgressBar'
-import { VolumeStatLine } from 'components/Project/VolumeStatLine'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import useTerminalCurrentOverflow from 'hooks/v2v3/contractReader/useTerminalCurrentOverflow'
-import { useContext } from 'react'
-import DistributedRatio from './DistributedRatio'
-import OwnerBalance from './OwnerBalance'
-import ProjectBalance from './ProjectBalance'
-
-export default function TreasuryStats() {
- const {
- balanceInDistributionLimitCurrency,
- distributionLimit,
- totalVolume,
- primaryETHTerminal,
- loading: { distributionLimitLoading },
- } = useContext(V2V3ProjectContext)
- const { projectId } = useContext(ProjectMetadataContext)
-
- const { data: overflow, loading: overflowLoading } =
- useTerminalCurrentOverflow({
- terminal: primaryETHTerminal,
- projectId,
- })
-
- const fundingProgressBarLoading = overflowLoading || distributionLimitLoading
-
- return (
-
-
-
-
-
- {!fundingProgressBarLoading && distributionLimit ? (
-
- ) : null}
-
-
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3Dashboard.tsx b/src/components/v2v3/V2V3Project/V2V3Dashboard.tsx
deleted file mode 100644
index 3e511634af..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3Dashboard.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import Loading from 'components/Loading'
-import { V2V3Project } from 'components/v2v3/V2V3Project'
-import { AnnouncementLauncher } from 'contexts/Announcements/AnnouncementLauncher'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { TransactionProvider } from 'contexts/Transaction/TransactionProvider'
-import { useContext } from 'react'
-
-export default function V2V3Dashboard() {
- const { projectMetadata } = useContext(ProjectMetadataContext)
-
- if (!projectMetadata) return
-
- return (
-
-
-
-
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/CurrentFundingCycle.tsx b/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/CurrentFundingCycle.tsx
deleted file mode 100644
index de4cb363b9..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/CurrentFundingCycle.tsx
+++ /dev/null
@@ -1,69 +0,0 @@
-import { LoadingOutlined } from '@ant-design/icons'
-import { Trans } from '@lingui/macro'
-import { CardSection } from 'components/CardSection'
-import FundingCycleDetailsCard from 'components/Project/FundingCycleDetailsCard'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useContext } from 'react'
-import { getV2V3FundingCycleRiskCount } from 'utils/v2v3/fundingCycle'
-import FundingCycleDetails from './FundingCycleDetails'
-import PayoutSplitsCard from './PayoutSplitsCard'
-import ReservedTokensSplitsCard from './ReservedTokensSplitsCard'
-
-export function CurrentFundingCycle() {
- const {
- fundingCycle,
- payoutSplits,
- distributionLimitCurrency,
- distributionLimit,
- reservedTokensSplits,
- fundingCycleMetadata,
- loading: { fundingCycleLoading },
- } = useContext(V2V3ProjectContext)
-
- if (fundingCycleLoading) {
- return
- }
-
- if (!fundingCycle || fundingCycle.number.eq(0) || !fundingCycleMetadata) {
- return (
-
- No active cycle.
-
- )
- }
-
- return (
-
-
-
- }
- fundingCycleDurationSeconds={fundingCycle.duration}
- fundingCycleStartTime={fundingCycle.start}
- isFundingCycleRecurring={true}
- fundingCycleRiskCount={getV2V3FundingCycleRiskCount(
- fundingCycle,
- fundingCycleMetadata,
- )}
- />
-
-
-
-
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/FundingCycleHistory/FundingCycleHistory.tsx b/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/FundingCycleHistory/FundingCycleHistory.tsx
deleted file mode 100644
index b9115ba47d..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/FundingCycleHistory/FundingCycleHistory.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import { Trans } from '@lingui/macro'
-import Loading from 'components/Loading'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { V2V3ProjectContractsContext } from 'contexts/v2v3/ProjectContracts/V2V3ProjectContractsContext'
-import {
- V2V3FundingCycle,
- V2V3FundingCycleMetadata,
-} from 'models/v2v3/fundingCycle'
-import { useContext, useEffect, useState } from 'react'
-import { PastFundingCycle } from './PastFundingCycle'
-import { fetchPastFundingCycles } from './utils'
-
-export function FundingCycleHistory() {
- const { projectId } = useContext(ProjectMetadataContext)
- const {
- contracts: { JBController },
- } = useContext(V2V3ProjectContractsContext)
- const { fundingCycle: currentFundingCycle } = useContext(V2V3ProjectContext)
-
- const [pastFundingCycles, setPastFundingCycles] = useState<
- [V2V3FundingCycle, V2V3FundingCycleMetadata][]
- >([])
-
- useEffect(() => {
- async function loadPastFundingCycles() {
- if (!projectId || !currentFundingCycle || !JBController) return
-
- const pastFundingCycles = await fetchPastFundingCycles({
- projectId,
- currentFundingCycle,
- JBController,
- })
-
- setPastFundingCycles(pastFundingCycles)
- }
-
- loadPastFundingCycles()
- }, [JBController, projectId, currentFundingCycle])
-
- if (!projectId || !currentFundingCycle || !currentFundingCycle?.number)
- return null
-
- const allCyclesLoaded =
- pastFundingCycles.length >= currentFundingCycle.number.toNumber() - 1
-
- if (!allCyclesLoaded) return
- if (!pastFundingCycles.length)
- return (
-
- No previous cycles
-
- )
-
- return (
-
- {pastFundingCycles.map(([fundingCycle, fundingCycleMetadata]) => (
-
- ))}
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/FundingCycleHistory/PastFundingCycle.tsx b/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/FundingCycleHistory/PastFundingCycle.tsx
deleted file mode 100644
index 181017e543..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/FundingCycleHistory/PastFundingCycle.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-import { CaretRightOutlined } from '@ant-design/icons'
-import { t, Trans } from '@lingui/macro'
-import { Modal } from 'antd'
-import CurrencySymbol from 'components/currency/CurrencySymbol'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import useProjectDistributionLimit from 'hooks/v2v3/contractReader/useProjectDistributionLimit'
-import useUsedDistributionLimit from 'hooks/v2v3/contractReader/useUsedDistributionLimit'
-import { V2V3CurrencyOption } from 'models/v2v3/currencyOption'
-import {
- V2V3FundingCycle,
- V2V3FundingCycleMetadata,
-} from 'models/v2v3/fundingCycle'
-import { useContext, useState } from 'react'
-import { formatHistoricalDate } from 'utils/format/formatDate'
-import { formatWad } from 'utils/format/formatNumber'
-import { V2V3CurrencyName } from 'utils/v2v3/currency'
-import { MAX_DISTRIBUTION_LIMIT } from 'utils/v2v3/math'
-import FundingCycleDetails from '../FundingCycleDetails'
-
-export function PastFundingCycle({
- fundingCycle,
- fundingCycleMetadata,
-}: {
- fundingCycle: V2V3FundingCycle
- fundingCycleMetadata: V2V3FundingCycleMetadata
-}) {
- const [modalVisible, setModalVisible] = useState(false)
- const { primaryETHTerminal } = useContext(V2V3ProjectContext)
- const { projectId } = useContext(ProjectMetadataContext)
-
- const { data: distributionLimitData } = useProjectDistributionLimit({
- projectId,
- configuration: fundingCycle?.configuration?.toString(),
- terminal: primaryETHTerminal,
- })
-
- const { data: usedDistributionLimit } = useUsedDistributionLimit({
- projectId,
- terminal: primaryETHTerminal,
- fundingCycleNumber: fundingCycle?.number,
- })
-
- const [distributionLimit, distributionLimitCurrency] =
- distributionLimitData ?? []
-
- const distributionLimitIsInfinite = distributionLimit?.eq(
- MAX_DISTRIBUTION_LIMIT,
- )
- const distributionLimitIsZero = !distributionLimit || distributionLimit?.eq(0)
-
- return (
- <>
- setModalVisible(true)}
- >
-
- {/* Ant fucking d.... */}
-
#{fundingCycle.number.toString()}
-
-
-
- {!distributionLimitIsInfinite && !distributionLimitIsZero ? (
-
- {formatWad(usedDistributionLimit, { precision: 2 })}/
- {formatWad(distributionLimit, { precision: 2 })} withdrawn
-
- ) : (
-
- {formatWad(usedDistributionLimit, { precision: 2 })} withdrawn
-
- )}
-
-
-
-
- {formatHistoricalDate(
- fundingCycle.start.add(fundingCycle.duration).mul(1000).toNumber(),
- )}
-
-
-
-
- setModalVisible(false)}
- onOk={() => setModalVisible(false)}
- cancelButtonProps={{ hidden: true }}
- okText={t`Done`}
- >
-
-
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/FundingCycleHistory/index.ts b/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/FundingCycleHistory/index.ts
deleted file mode 100644
index 8ba285a282..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/FundingCycleHistory/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { FundingCycleHistory } from './FundingCycleHistory'
diff --git a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/PayoutSplitsCard.tsx b/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/PayoutSplitsCard.tsx
deleted file mode 100644
index d0150e55cb..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/PayoutSplitsCard.tsx
+++ /dev/null
@@ -1,183 +0,0 @@
-import { SettingOutlined } from '@ant-design/icons'
-import { Trans } from '@lingui/macro'
-import { Button, ButtonProps, Skeleton, Tooltip } from 'antd'
-import { CardSection } from 'components/CardSection'
-import SpendingStats from 'components/Project/SpendingStats'
-import TooltipLabel from 'components/TooltipLabel'
-import SplitList from 'components/v2v3/shared/SplitList'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { BigNumber } from 'ethers'
-import { useV2V3WalletHasPermission } from 'hooks/v2v3/contractReader/useV2V3WalletHasPermission'
-import { Split } from 'models/splits'
-import { V2V3CurrencyOption } from 'models/v2v3/currencyOption'
-import { V2V3OperatorPermission } from 'models/v2v3/permissions'
-import Link from 'next/link'
-import { useContext, useState } from 'react'
-import { settingsPagePath } from 'utils/routes'
-import { V2V3CurrencyName } from 'utils/v2v3/currency'
-import { MAX_DISTRIBUTION_LIMIT, formatFee } from 'utils/v2v3/math'
-import { reloadWindow } from 'utils/windowUtils'
-import DistributePayoutsModal from './modals/DistributePayoutsModal'
-
-function DistributeButton({
- distributableAmount,
- ...props
-}: {
- distributableAmount: BigNumber | undefined
-} & ButtonProps): JSX.Element {
- const distributeButtonDisabled = distributableAmount?.eq(0)
-
- return (
- No payouts remaining for this cycle.}
- open={distributeButtonDisabled ? undefined : false}
- >
-
- Send payouts
-
-
- )
-}
-
-export default function PayoutSplitsCard({
- hideDistributeButton,
- payoutSplits,
- distributionLimitCurrency,
- distributionLimit,
-}: {
- hideDistributeButton?: boolean
- payoutSplits: Split[] | undefined
- distributionLimitCurrency: BigNumber | undefined
- distributionLimit: BigNumber | undefined
-}) {
- const {
- usedDistributionLimit,
- projectOwnerAddress,
- balanceInDistributionLimitCurrency,
- loading,
- handle,
- primaryETHTerminalFee,
- } = useContext(V2V3ProjectContext)
- const { projectId } = useContext(ProjectMetadataContext)
-
- const [distributePayoutsModalVisible, setDistributePayoutsModalVisible] =
- useState()
- const isLoadingStats =
- loading.ETHBalanceLoading ||
- loading.distributionLimitLoading ||
- loading.balanceInDistributionLimitCurrencyLoading ||
- loading.usedDistributionLimitLoading
-
- const canEditPayouts = useV2V3WalletHasPermission(
- V2V3OperatorPermission.SET_SPLITS,
- )
-
- const effectiveDistributionLimit = distributionLimit ?? BigNumber.from(0)
- const distributedAmount = usedDistributionLimit ?? BigNumber.from(0)
-
- const distributable = effectiveDistributionLimit.eq(0)
- ? effectiveDistributionLimit
- : effectiveDistributionLimit.sub(distributedAmount)
-
- const distributableAmount = balanceInDistributionLimitCurrency?.gt(
- distributable,
- )
- ? distributable
- : balanceInDistributionLimitCurrency
-
- return (
-
-
- {hideDistributeButton ? null : (
-
-
-
-
-
-
- setDistributePayoutsModalVisible(true)}
- />
-
-
- )}
-
-
-
- Payouts
-
- }
- tip={
- This cycle's payouts. Payouts reset each cycle.
- }
- />
- {canEditPayouts && (
-
- }
- >
-
- Edit payouts
-
-
-
- )}
-
- {payoutSplits && distributionLimit?.gt(0) ? (
-
- ) : (
-
- No payouts scheduled for this cycle.
-
- )}
-
-
-
- setDistributePayoutsModalVisible(false)}
- onConfirmed={reloadWindow}
- />
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/ReservedTokensSplitsCard.tsx b/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/ReservedTokensSplitsCard.tsx
deleted file mode 100644
index 8eb7a9e538..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/ReservedTokensSplitsCard.tsx
+++ /dev/null
@@ -1,180 +0,0 @@
-import { SettingOutlined } from '@ant-design/icons'
-import { t, Trans } from '@lingui/macro'
-import { Button, Skeleton, Tooltip } from 'antd'
-import { CardSection } from 'components/CardSection'
-import { TokenAmount } from 'components/TokenAmount'
-import TooltipIcon from 'components/TooltipIcon'
-import TooltipLabel from 'components/TooltipLabel'
-import SplitList from 'components/v2v3/shared/SplitList'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { BigNumber } from 'ethers'
-import { useProjectReservedTokens } from 'hooks/v2v3/contractReader/ProjectReservedTokens'
-import { useV2V3WalletHasPermission } from 'hooks/v2v3/contractReader/useV2V3WalletHasPermission'
-import { Split } from 'models/splits'
-import { V2V3OperatorPermission } from 'models/v2v3/permissions'
-import Link from 'next/link'
-import { useContext, useState } from 'react'
-import { settingsPagePath } from 'utils/routes'
-import { tokenSymbolText } from 'utils/tokenSymbolText'
-import { formatReservedRate } from 'utils/v2v3/math'
-import { reloadWindow } from 'utils/windowUtils'
-import DistributeReservedTokensModal from './modals/DistributeReservedTokensModal'
-
-export default function ReservedTokensSplitsCard({
- hideDistributeButton,
- reservedTokensSplits,
- reservedRate,
-}: {
- hideDistributeButton?: boolean
- reservedTokensSplits: Split[] | undefined
- reservedRate: BigNumber | undefined
-}) {
- const { tokenSymbol, projectOwnerAddress, handle } =
- useContext(V2V3ProjectContext)
- const { projectId } = useContext(ProjectMetadataContext)
-
- const effectiveReservedRate = reservedRate ?? BigNumber.from(0)
-
- const [
- distributeReservedTokensModalVisible,
- setDistributeReservedTokensModalVisible,
- ] = useState()
- const { data: reservedTokens, loading: loadingReservedTokens } =
- useProjectReservedTokens({
- projectId,
- reservedRate: reservedRate,
- })
- const canEditTokens = useV2V3WalletHasPermission(
- V2V3OperatorPermission.SET_SPLITS,
- )
-
- const tokensText = tokenSymbolText({
- tokenSymbol,
- capitalize: false,
- plural: true,
- })
-
- const distributeButtonDisabled = reservedTokens?.eq(0)
-
- const DistributeButton = (
- setDistributeReservedTokensModalVisible(true)}
- disabled={distributeButtonDisabled}
- >
- Send {tokensText}
-
- )
-
- return (
-
-
- {hideDistributeButton ? null : (
-
-
-
- {reservedTokens ? (
-
-
- {' '}
-
- reserved
-
- {' '}
-
- Project tokens currently reserved for the recipients
- below. These tokens can be sent out at any time.
-
- }
- />
-
- ) : null}{' '}
-
-
- {reservedTokens?.eq(0) ? (
-
- {DistributeButton}
-
- ) : (
- DistributeButton
- )}
-
- )}
-
-
-
-
- Reserved tokens (
- {formatReservedRate(reservedRate)}%)
-
- }
- tip={
-
- Projects can reserve a percentage of token issuance for the
- recipients set by the project owner.
-
- }
- />
- {canEditTokens && reservedRate?.gt(0) ? (
-
- }
- >
-
- Edit recipients
-
-
-
- ) : null}
-
- {effectiveReservedRate.gt(0) ? (
- reservedTokensSplits ? (
-
- ) : null
- ) : (
-
- This project doesn't reserve any tokens.
-
- )}
-
-
-
- setDistributeReservedTokensModalVisible(false)}
- onConfirmed={reloadWindow}
- />
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/UpcomingFundingCycle.tsx b/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/UpcomingFundingCycle.tsx
deleted file mode 100644
index 7daa9f2a62..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/UpcomingFundingCycle.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { CardSection } from 'components/CardSection'
-import Loading from 'components/Loading'
-import FundingCycleDetailsCard from 'components/Project/FundingCycleDetailsCard'
-import {
- ETH_PAYOUT_SPLIT_GROUP,
- RESERVED_TOKEN_SPLIT_GROUP,
-} from 'constants/splits'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import useProjectDistributionLimit from 'hooks/v2v3/contractReader/useProjectDistributionLimit'
-import useProjectSplits from 'hooks/v2v3/contractReader/useProjectSplits'
-import { useProjectUpcomingFundingCycle } from 'hooks/v2v3/contractReader/useProjectUpcomingFundingCycle'
-import { useContext } from 'react'
-import { getV2V3FundingCycleRiskCount } from 'utils/v2v3/fundingCycle'
-import FundingCycleDetails from './FundingCycleDetails'
-import PayoutSplitsCard from './PayoutSplitsCard'
-import ReservedTokensSplitsCard from './ReservedTokensSplitsCard'
-
-export function UpcomingFundingCycle() {
- const { primaryETHTerminal } = useContext(V2V3ProjectContext)
- const { projectId } = useContext(ProjectMetadataContext)
-
- const { data: upcomingFundingCycleResponse, loading } =
- useProjectUpcomingFundingCycle({ projectId })
- const [upcomingFundingCycle, upcomingFundingCycleMetadata, ballotState] =
- upcomingFundingCycleResponse ?? []
-
- const { data: queuedPayoutSplits } = useProjectSplits({
- projectId,
- splitGroup: ETH_PAYOUT_SPLIT_GROUP,
- domain: upcomingFundingCycle?.configuration?.toString(),
- })
-
- const { data: queuedReservedTokensSplits } = useProjectSplits({
- projectId,
- splitGroup: RESERVED_TOKEN_SPLIT_GROUP,
- domain: upcomingFundingCycle?.configuration?.toString(),
- })
-
- const { data: queuedDistributionLimitData } = useProjectDistributionLimit({
- projectId,
- configuration: upcomingFundingCycle?.configuration.toString(),
- terminal: primaryETHTerminal,
- })
- const [queuedDistributionLimit, queuedDistributionLimitCurrency] =
- queuedDistributionLimitData ?? []
-
- if (loading) return
-
- if (!upcomingFundingCycle || !upcomingFundingCycleMetadata) {
- return (
-
- No upcoming cycle.
-
- )
- }
-
- return (
-
-
-
- }
- fundingCycleDurationSeconds={upcomingFundingCycle.duration}
- fundingCycleStartTime={upcomingFundingCycle.start}
- isFundingCycleRecurring
- fundingCycleRiskCount={getV2V3FundingCycleRiskCount(
- upcomingFundingCycle,
- upcomingFundingCycleMetadata,
- )}
- ballotState={ballotState}
- ballotStrategyAddress={upcomingFundingCycle.ballot}
- />
-
-
-
-
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/index.tsx b/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/index.tsx
deleted file mode 100644
index 7039b7f966..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3FundingCycleSection/index.tsx
+++ /dev/null
@@ -1,126 +0,0 @@
-import { ExclamationCircleOutlined, SettingOutlined } from '@ant-design/icons'
-import { Trans, t } from '@lingui/macro'
-import { Button, Tooltip } from 'antd'
-import { CardSection } from 'components/CardSection'
-import Loading from 'components/Loading'
-import FundingCycleSection, {
- TabType,
-} from 'components/Project/FundingCycleSection'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useV2V3WalletHasPermission } from 'hooks/v2v3/contractReader/useV2V3WalletHasPermission'
-import { V2V3OperatorPermission } from 'models/v2v3/permissions'
-import Link from 'next/link'
-import { useContext } from 'react'
-import { settingsPagePath } from 'utils/routes'
-import {
- getV2V3FundingCycleRiskCount,
- hasFundingDuration,
-} from 'utils/v2v3/fundingCycle'
-import { serializeV2V3FundingCycleData } from 'utils/v2v3/serializers'
-import { CurrentFundingCycle } from './CurrentFundingCycle'
-import { FundingCycleHistory } from './FundingCycleHistory'
-import { UpcomingFundingCycle } from './UpcomingFundingCycle'
-
-const TabText = ({
- text,
- hideRiskFlag,
-}: {
- text: string
- hideRiskFlag?: boolean
-}) => {
- const { fundingCycle, fundingCycleMetadata } = useContext(V2V3ProjectContext)
-
- const hasRisks =
- fundingCycle &&
- fundingCycleMetadata &&
- getV2V3FundingCycleRiskCount(fundingCycle, fundingCycleMetadata)
-
- if (!hasRisks || hideRiskFlag) {
- return {text}
- }
-
- return (
-
- This cycle's rules may lead to unexpected behavior. Before paying this
- project, know and understand its rules.
-
- }
- >
-
- {text}
-
-
-
- )
-}
-
-export default function V2V3FundingCycleSection() {
- const {
- fundingCycle,
- handle,
- loading: { fundingCycleLoading },
- } = useContext(V2V3ProjectContext)
- const { projectId } = useContext(ProjectMetadataContext)
-
- const currentCycleHasDuration =
- fundingCycle &&
- hasFundingDuration(serializeV2V3FundingCycleData(fundingCycle))
-
- const canReconfigure = useV2V3WalletHasPermission(
- V2V3OperatorPermission.RECONFIGURE,
- )
-
- if (fundingCycleLoading) {
- return
- }
-
- const reconfigureButtonText = currentCycleHasDuration ? (
- Edit upcoming cycle
- ) : (
- Edit cycle
- )
-
- const tabs = [
- {
- key: 'current',
- label: ,
- content: ,
- },
- currentCycleHasDuration && {
- key: 'upcoming',
- label: ,
- content: ,
- },
- {
- key: 'history',
- label: ,
- content: (
-
-
-
- ),
- },
- ].filter(Boolean) as TabType[]
-
- return (
-
- }>
- {reconfigureButtonText}
-
-
- ) : null
- }
- hideTitle
- />
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/AccountBalanceDescription.tsx b/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/AccountBalanceDescription.tsx
deleted file mode 100644
index 010b84a084..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/AccountBalanceDescription.tsx
+++ /dev/null
@@ -1,124 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { Button } from 'antd'
-import { TokenAmount } from 'components/TokenAmount'
-import ManageTokensModal from 'components/modals/ManageTokensModal'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import useERC20BalanceOf from 'hooks/ERC20/useERC20BalanceOf'
-import { useWallet } from 'hooks/Wallet'
-import useTotalBalanceOf from 'hooks/v2v3/contractReader/useTotalBalanceOf'
-import { useV2V3WalletHasPermission } from 'hooks/v2v3/contractReader/useV2V3WalletHasPermission'
-import { useTransferUnclaimedTokensTx } from 'hooks/v2v3/transactor/useTransferUnclaimedTokensTx'
-import { useIsOwnerConnected } from 'hooks/v2v3/useIsOwnerConnected'
-import { useProjectHasErc20 } from 'hooks/v2v3/useProjectHasErc20'
-import { V2V3OperatorPermission } from 'models/v2v3/permissions'
-import { useContext, useState } from 'react'
-import { formatPercent, fromWad, parseWad } from 'utils/format/formatNumber'
-import { tokenSymbolText } from 'utils/tokenSymbolText'
-import { V2V3BurnOrRedeemModal } from './V2V3BurnOrRedeemModal'
-import { V2V3ClaimTokensModal } from './V2V3ClaimTokensModal'
-import { V2V3MintModal } from './V2V3MintModal'
-
-export function AccountBalanceDescription() {
- const {
- tokenAddress,
- tokenSymbol,
- totalTokenSupply,
- fundingCycleMetadata,
- primaryTerminalCurrentOverflow,
- } = useContext(V2V3ProjectContext)
- const { projectId } = useContext(ProjectMetadataContext)
-
- const [manageTokensModalVisible, setManageTokensModalVisible] =
- useState(false)
-
- const { userAddress } = useWallet()
- const { data: claimedBalance } = useERC20BalanceOf(tokenAddress, userAddress)
- const { data: totalBalance } = useTotalBalanceOf(userAddress, projectId)
- const unclaimedBalance = totalBalance?.sub(claimedBalance ?? 0)
- const userHasMintPermission = useV2V3WalletHasPermission(
- V2V3OperatorPermission.MINT,
- )
- const ownerIsConnected = useIsOwnerConnected()
- const hasIssuedERC20 = useProjectHasErc20()
-
- const totalTokenSupplyDiscrete = parseInt(fromWad(totalTokenSupply))
- const totalBalanceWithLock = parseInt(fromWad(totalBalance))
- // %age of tokens the user owns.
- const userOwnershipPercentage =
- formatPercent(
- parseWad(totalBalanceWithLock),
- parseWad(totalTokenSupplyDiscrete),
- ) || '0'
-
- const hasOverflow = Boolean(primaryTerminalCurrentOverflow?.gt(0))
- const redeemDisabled = Boolean(
- !hasOverflow || fundingCycleMetadata?.redemptionRate.eq(0),
- )
-
- const tokenText = tokenSymbolText({
- tokenSymbol,
- capitalize: false,
- plural: true,
- })
-
- const projectAllowsMint = Boolean(fundingCycleMetadata?.allowMinting)
- const showManageTokensButton = Boolean(
- totalBalance?.gt(0) || (projectAllowsMint && ownerIsConnected),
- )
-
- return (
- <>
-
- {hasIssuedERC20 && claimedBalance ? (
-
-
-
- ) : null}
-
- {unclaimedBalance ? (
- hasIssuedERC20 ? (
-
- {' '}
- claimable
-
- ) : (
-
- )
- ) : null}
-
-
- {userOwnershipPercentage}% of total supply
-
-
-
- {showManageTokensButton ? (
- setManageTokensModalVisible(true)}>
- Manage {tokenText}
-
- ) : null}
-
- setManageTokensModalVisible(false)}
- projectAllowsMint={projectAllowsMint}
- userHasMintPermission={userHasMintPermission}
- hasOverflow={hasOverflow}
- redeemDisabled={redeemDisabled}
- tokenSymbol={tokenSymbol}
- tokenAddress={tokenAddress}
- tokenUnclaimedBalance={unclaimedBalance}
- transferUnclaimedTokensTx={useTransferUnclaimedTokensTx}
- RedeemModal={V2V3BurnOrRedeemModal}
- ClaimTokensModal={V2V3ClaimTokensModal}
- MintModal={V2V3MintModal}
- />
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/index.ts b/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/index.ts
deleted file mode 100644
index 349c621675..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/AccountBalanceDescription/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './AccountBalanceDescription'
diff --git a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/LegacyProjectTokensDescription/LegacyProjectTokensDescription.tsx b/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/LegacyProjectTokensDescription/LegacyProjectTokensDescription.tsx
deleted file mode 100644
index e4be49da5c..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/LegacyProjectTokensDescription/LegacyProjectTokensDescription.tsx
+++ /dev/null
@@ -1,48 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { Button } from 'antd'
-import { TokenAmount } from 'components/TokenAmount'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V1UserProvider } from 'contexts/v1/User/V1UserProvider'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useTotalLegacyTokenBalance } from 'hooks/JBV3Token/contractReader/useTotalLegacyTokenBalance'
-import { useContext, useState } from 'react'
-import { MigrateLegacyProjectTokensModal } from './MigrateLegacyProjectTokensModal'
-
-export function LegacyProjectTokensDescription() {
- const { projectId } = useContext(ProjectMetadataContext)
- const { tokenSymbol } = useContext(V2V3ProjectContext)
-
- const [modalOpen, setModalOpen] = useState(false)
-
- const { totalLegacyTokenBalance, v1ClaimedBalance } =
- useTotalLegacyTokenBalance({ projectId })
-
- return (
- <>
-
-
-
-
- {totalLegacyTokenBalance?.gt(0) && (
- <>
- setModalOpen(true)}>
- Migrate tokens
-
- {modalOpen && (
-
- setModalOpen(false)}
- />
-
- )}
- >
- )}
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/LegacyProjectTokensDescription/LegacyProjectTokensDescriptionHeading.tsx b/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/LegacyProjectTokensDescription/LegacyProjectTokensDescriptionHeading.tsx
deleted file mode 100644
index 983db39abe..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/LegacyProjectTokensDescription/LegacyProjectTokensDescriptionHeading.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Trans } from '@lingui/macro'
-import TooltipIcon from 'components/TooltipIcon'
-
-export function LegacyProjectTokensDescriptionHeading() {
- return (
-
- Legacy balance
-
- Your total token balance for this project's legacy tokens (V1 or V2
- tokens).
-
- }
- />
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/LegacyProjectTokensDescription/index.tsx b/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/LegacyProjectTokensDescription/index.tsx
deleted file mode 100644
index 7d8e5ab1d8..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/LegacyProjectTokensDescription/index.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './LegacyProjectTokensDescription'
-export * from './LegacyProjectTokensDescriptionHeading'
diff --git a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/ProjectTokenDescription/ProjectTokenDescription.tsx b/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/ProjectTokenDescription/ProjectTokenDescription.tsx
deleted file mode 100644
index 56a4c18473..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/ProjectTokenDescription/ProjectTokenDescription.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import EthereumAddress from 'components/EthereumAddress'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useContext } from 'react'
-
-export function ProjectTokenDescription() {
- const { tokenSymbol, tokenAddress } = useContext(V2V3ProjectContext)
-
- return (
-
- {tokenSymbol} (
- )
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/ProjectTokenDescription/index.ts b/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/ProjectTokenDescription/index.ts
deleted file mode 100644
index 116f3429ef..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/ProjectTokenDescription/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './ProjectTokenDescription'
diff --git a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/TotalSupplyDescription.tsx b/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/TotalSupplyDescription.tsx
deleted file mode 100644
index 1b9966f38f..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/TotalSupplyDescription.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { TokenAmount } from 'components/TokenAmount'
-import { TextButton } from 'components/buttons/TextButton'
-import ParticipantsModal from 'components/modals/ParticipantsModal'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useContext, useState } from 'react'
-
-export function TotalSupplyDescription() {
- const { tokenSymbol, tokenAddress, totalTokenSupply } =
- useContext(V2V3ProjectContext)
-
- const [participantsModalVisible, setParticipantsModalVisible] =
- useState(false)
-
- if (!totalTokenSupply) return null
-
- return (
- <>
-
-
-
-
- {totalTokenSupply.gt(0) ? (
-
setParticipantsModalVisible(true)}>
- Holders
-
- ) : null}
-
- setParticipantsModalVisible(false)}
- />
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/V2V3ManageTokensSection.tsx b/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/V2V3ManageTokensSection.tsx
deleted file mode 100644
index 1ae8084cf3..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/V2V3ManageTokensSection.tsx
+++ /dev/null
@@ -1,109 +0,0 @@
-import { t, Trans } from '@lingui/macro'
-import { Descriptions } from 'antd'
-import { IssueErc20TokenButton } from 'components/buttons/IssueErc20TokenButton'
-import SectionHeader from 'components/SectionHeader'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useProjectHasLegacyTokens } from 'hooks/JBV3Token/contractReader/useProjectHasLegacyTokens'
-import { useV2V3WalletHasPermission } from 'hooks/v2v3/contractReader/useV2V3WalletHasPermission'
-import { useProjectHasErc20 } from 'hooks/v2v3/useProjectHasErc20'
-import { useWallet } from 'hooks/Wallet'
-import { V2V3OperatorPermission } from 'models/v2v3/permissions'
-import { CSSProperties, useContext } from 'react'
-import { tokenSymbolText } from 'utils/tokenSymbolText'
-import { reloadWindow } from 'utils/windowUtils'
-import { AccountBalanceDescription } from './AccountBalanceDescription'
-import {
- LegacyProjectTokensDescription,
- LegacyProjectTokensDescriptionHeading,
-} from './LegacyProjectTokensDescription'
-import { ProjectTokenDescription } from './ProjectTokenDescription'
-import { TotalSupplyDescription } from './TotalSupplyDescription'
-
-const labelStyle: CSSProperties = {
- width: '10.5rem',
-}
-const contentStyle: CSSProperties = {
- display: 'flex',
- flexWrap: 'wrap',
- gap: 5,
- justifyContent: 'space-between',
- width: '10.5rem',
- alignItems: 'flex-start',
-}
-
-export function V2V3ManageTokensSection() {
- const { tokenSymbol } = useContext(V2V3ProjectContext)
- const { userAddress } = useWallet()
- const hasIssueTicketsPermission = useV2V3WalletHasPermission(
- V2V3OperatorPermission.ISSUE,
- )
-
- const hasIssuedERC20 = useProjectHasErc20()
- const showIssueErc20TokenButton = !hasIssuedERC20 && hasIssueTicketsPermission
- const showLegacyProjectTokensSection = useProjectHasLegacyTokens()
-
- const tokenText = tokenSymbolText({
- tokenSymbol,
- capitalize: false,
- plural: true,
- includeTokenWord: true,
- })
-
- return (
-
-
- Tokens}
- tip={
-
- Anyone who pays this project receives {tokenText}. Depending on
- this project's rules, it may be possible to redeem {tokenText} to
- reclaim ETH.
-
- }
- />
- {showIssueErc20TokenButton && (
-
- )}
-
-
- {hasIssuedERC20 && tokenSymbol && (
-
-
-
- )}
-
-
-
-
- {userAddress ? (
- <>
-
-
-
-
- {showLegacyProjectTokensSection && (
- }
- labelStyle={labelStyle}
- contentStyle={contentStyle}
- className="pt-5"
- >
-
-
- )}
- >
- ) : null}
-
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/index.tsx b/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/index.tsx
deleted file mode 100644
index 7d452d7652..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ManageTokensSection/index.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export { V2V3ManageTokensSection } from './V2V3ManageTokensSection'
diff --git a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/NftRewardCell.tsx b/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/NftRewardCell.tsx
deleted file mode 100644
index 0208d23f9c..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/NftRewardCell.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-import { Tooltip } from 'antd'
-import ExternalLink from 'components/ExternalLink'
-import { JuiceVideoThumbnailOrImage } from 'components/JuiceVideo/JuiceVideoThumbnailOrImage'
-import { NftRewardTier } from 'models/nftRewards'
-import { classNames } from 'utils/classNames'
-import { ipfsUriToGatewayUrl } from 'utils/ipfs'
-
-export function NftRewardCell({
- nftRewards,
-}: {
- nftRewards: NftRewardTier[]
-}): JSX.Element {
- const uniqueTiersIdsAndCounts = nftRewards.reduce(
- (acc: Record, curr) => {
- acc[curr.id ?? -1] = (acc[curr.id ?? -1] || 0) + 1
- return acc
- },
- {},
- )
- return (
-
- {Object.keys(uniqueTiersIdsAndCounts).map((tierId, idx) => {
- const tier = nftRewards.find(_tier => _tier.id === parseInt(tierId))
- if (!tier?.id) return
- const tierCount = uniqueTiersIdsAndCounts[tier.id]
- const isLink = tier.externalLink
-
- return (
-
-
- {tier.name}
-
-
({tierCount})
-
-
-
-
-
- )
- })}
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/TCCheckboxContent.tsx b/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/TCCheckboxContent.tsx
deleted file mode 100644
index 65f917ed0a..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/TCCheckboxContent.tsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { Modal } from 'antd'
-import ExternalLink from 'components/ExternalLink'
-import ProjectRiskNotice from 'components/ProjectRiskNotice'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useContext, useState } from 'react'
-import { helpPagePath } from 'utils/routes'
-import {
- getUnsafeV2V3FundingCycleProperties,
- getV2V3FundingCycleRiskCount,
-} from 'utils/v2v3/fundingCycle'
-
-export function TCCheckboxContent() {
- const { fundingCycle, fundingCycleMetadata } = useContext(V2V3ProjectContext)
-
- const [riskModalVisible, setRiskModalVisible] = useState()
- const riskCount =
- fundingCycle && fundingCycleMetadata
- ? getV2V3FundingCycleRiskCount(fundingCycle, fundingCycleMetadata)
- : undefined
-
- return (
- <>
-
- {riskCount ? (
-
- I understand and accept the risks associated with{' '}
- {
- setRiskModalVisible(true)
- e.preventDefault()
- }}
- >
- this project
- {' '}
- and the{' '}
-
- Juicebox Protocol
-
- .
-
- ) : (
-
- I accept the{' '}
-
- risks
- {' '}
- associated with the Juicebox protocol.
-
- )}
-
-
- Potential risks}
- open={riskModalVisible}
- okButtonProps={{ hidden: true }}
- onCancel={() => setRiskModalVisible(false)}
- cancelText={Close }
- >
- {fundingCycle && fundingCycleMetadata && (
-
- )}
-
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/V2V3ConfirmPayModal.tsx b/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/V2V3ConfirmPayModal.tsx
deleted file mode 100644
index 3bcead28da..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/V2V3ConfirmPayModal.tsx
+++ /dev/null
@@ -1,170 +0,0 @@
-import { t, Trans } from '@lingui/macro'
-import { useForm } from 'antd/lib/form/Form'
-import ETHAmount from 'components/currency/ETHAmount'
-import TransactionModal from 'components/modals/TransactionModal'
-import { NFT_PAYMENT_CONFIRMED_QUERY_PARAM } from 'components/NftRewards/NftPostPayModal'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { BigNumber } from 'ethers'
-import { usePayETHPaymentTerminalTx } from 'hooks/v2v3/transactor/usePayETHPaymentTerminalTx'
-import { useWallet } from 'hooks/Wallet'
-import { useRouter } from 'next/router'
-import { useContext, useEffect, useState } from 'react'
-import { buildPaymentMemo } from 'utils/buildPaymentMemo'
-import { emitErrorNotification } from 'utils/notifications'
-import { v2v3ProjectRoute } from 'utils/routes'
-import { useDelegateMetadata } from './hooks/useDelegateMetadata.tsx'
-import { useNftRewardTiersToMint } from './hooks/useNftRewardTiersToMint.tsx'
-import { V2V3PayForm, V2V3PayFormType } from './V2V3PayForm'
-
-export function V2V3ConfirmPayModal({
- open,
- weiAmount,
- onCancel,
-}: {
- open?: boolean
- weiAmount: BigNumber | undefined
- onCancel?: VoidFunction
-}) {
- const { fundingCycle, handle } = useContext(V2V3ProjectContext)
- const { projectMetadata, projectId } = useContext(ProjectMetadataContext)
-
- const [loading, setLoading] = useState()
- const [transactionPending, setTransactionPending] = useState()
- const [form] = useForm()
-
- const router = useRouter()
- const {
- userAddress,
- chainUnsupported,
- isConnected,
- changeNetworks,
- connect,
- } = useWallet()
- const delegateMetadata = useDelegateMetadata()
- const nftRewardTiers = useNftRewardTiersToMint()
- const payProjectTx = usePayETHPaymentTerminalTx()
-
- // Use the userAddress as the beneficiary by default, reset whenever form is opened
- useEffect(() => {
- form.setFieldValue('beneficiary', userAddress)
- }, [userAddress, form, open])
-
- if (!fundingCycle || !projectId || !projectMetadata) return null
-
- const handleOkButtonClick = async () => {
- // Prompt wallet connect if no wallet connected
- if (chainUnsupported) {
- await changeNetworks()
- return
- }
- if (!isConnected) {
- await connect()
- return
- }
-
- form.submit()
- }
-
- const handlePaySuccess = () => {
- onCancel?.()
- setLoading(false)
- setTransactionPending(false)
-
- form.resetFields()
-
- if (nftRewardTiers && projectMetadata?.nftPaymentSuccessModal) {
- router.replace(
- `${v2v3ProjectRoute({
- handle,
- projectId,
- })}?${NFT_PAYMENT_CONFIRMED_QUERY_PARAM}=1`,
- )
- }
- }
-
- async function executePayTx() {
- if (!weiAmount || !projectId) return
-
- const {
- beneficiary,
- memo: textMemo,
- preferClaimedTokens,
- stickerUrls,
- uploadedImage,
- } = form.getFieldsValue()
-
- const txBeneficiary = beneficiary ?? userAddress
-
- setLoading(true)
-
- try {
- const txSuccess = await payProjectTx(
- {
- memo: buildPaymentMemo({
- text: textMemo,
- imageUrl: uploadedImage,
- stickerUrls,
- nftUrls: nftRewardTiers?.map(tier => tier.fileUrl),
- }),
- preferClaimedTokens: Boolean(preferClaimedTokens),
- beneficiary: txBeneficiary,
- value: weiAmount,
- delegateMetadata,
- },
- {
- onConfirmed() {
- handlePaySuccess()
- },
- onError() {
- setLoading(false)
- setTransactionPending(false)
- },
- onDone() {
- setTransactionPending(true)
- },
- },
- )
-
- if (!txSuccess) {
- setLoading(false)
- setTransactionPending(false)
- }
- } catch (error) {
- emitErrorNotification(`Failure: ${error}`)
- setLoading(false)
- setTransactionPending(false)
- }
- }
-
- return (
-
-
- Pay
-
-
- }
- connectWalletText={t`Connect wallet to pay`}
- onCancel={() => {
- form.resetFields()
- onCancel?.()
- }}
- confirmLoading={loading}
- width={640}
- centered
- destroyOnClose
- >
- executePayTx()}
- />
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/V2V3PayForm.tsx b/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/V2V3PayForm.tsx
deleted file mode 100644
index 895cc1850b..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/V2V3PayForm.tsx
+++ /dev/null
@@ -1,330 +0,0 @@
-import { CrownOutlined } from '@ant-design/icons'
-import { t, Trans } from '@lingui/macro'
-import { Button, Checkbox, Form } from 'antd'
-import { FormInstance, FormProps, useWatch } from 'antd/lib/form/Form'
-import { Callout } from 'components/Callout'
-import ETHAmount from 'components/currency/ETHAmount'
-import USDAmount from 'components/currency/USDAmount'
-import EthereumAddress from 'components/EthereumAddress'
-import Sticker from 'components/icons/Sticker'
-import { EthAddressInput } from 'components/inputs/EthAddressInput'
-import { FormImageUploader } from 'components/inputs/FormImageUploader'
-import { JuiceTextArea } from 'components/inputs/JuiceTextArea'
-import { AttachStickerModal } from 'components/modals/AttachStickerModal'
-import Paragraph from 'components/Paragraph'
-import { Parenthesis } from 'components/Parenthesis'
-import { StickerSelection } from 'components/Project/StickerSelection'
-import TooltipIcon from 'components/TooltipIcon'
-import { ProjectPreferences } from 'constants/projectPreferences'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { BigNumber } from 'ethers'
-import { isAddress } from 'ethers/lib/utils'
-import { useCurrencyConverter } from 'hooks/useCurrencyConverter'
-import { useProjectHasErc20 } from 'hooks/v2v3/useProjectHasErc20'
-import { useContext, useState } from 'react'
-import { twJoin } from 'tailwind-merge'
-import { isZeroAddress } from 'utils/address'
-import { classNames } from 'utils/classNames'
-import { formatWad, parseWad } from 'utils/format/formatNumber'
-import { tokenSymbolText } from 'utils/tokenSymbolText'
-import { weightAmountPermyriad } from 'utils/v2v3/math'
-import { useNftRewardTiersToMint } from './hooks/useNftRewardTiersToMint.tsx'
-import { NftRewardCell } from './NftRewardCell'
-import { TCCheckboxContent } from './TCCheckboxContent'
-
-export interface V2V3PayFormType {
- memo?: string
- beneficiary?: string
- stickerUrls?: string[]
- uploadedImage?: string
- preferClaimedTokens?: boolean
-}
-
-export const V2V3PayForm = ({
- weiAmount,
- form,
- ...props
-}: {
- weiAmount: BigNumber | undefined
- form: FormInstance
-} & FormProps) => {
- const { fundingCycle, fundingCycleMetadata, tokenSymbol } =
- useContext(V2V3ProjectContext)
- const { projectMetadata } = useContext(ProjectMetadataContext)
-
- const [customBeneficiaryEnabled, setCustomBeneficiaryEnabled] =
- useState(false)
- const [attachStickerModalVisible, setAttachStickerModalVisible] =
- useState(false)
-
- const hasIssuedTokens = useProjectHasErc20()
- const nftRewardTiers = useNftRewardTiersToMint()
- const converter = useCurrencyConverter()
- const usdAmount = converter.weiToUsd(weiAmount)
-
- const beneficiary = useWatch('beneficiary', form)
- const stickerUrls = useWatch('stickerUrls', form)
-
- const hasStickers = (stickerUrls ?? []).length > 0
- const canAddMoreStickers =
- (stickerUrls ?? []).length < ProjectPreferences.MAX_IMAGES_PAYMENT_MEMO
-
- const tokensReceived = weightAmountPermyriad(
- fundingCycle?.weight,
- fundingCycleMetadata?.reservedRate?.toNumber(),
- weiAmount,
- 'payer',
- )
- const tokensReceivedFormatted =
- formatWad(tokensReceived, { precision: 2 }) ?? '0'
- const tokensText = tokenSymbolText({
- tokenSymbol,
- plural: parseFloat(tokensReceived) !== 1,
- })
-
- return (
- <>
-
-
- setAttachStickerModalVisible(false)}
- onSelect={sticker => {
- if (typeof window === 'undefined') {
- return
- }
- const url = new URL(`${window.location.origin}${sticker.filepath}`)
- const urlString = url.toString()
-
- const existingStickerUrls = (form.getFieldValue('stickerUrls') ??
- []) as string[]
- const updatedStickerUrls = [...existingStickerUrls, urlString]
-
- form.setFieldsValue({
- stickerUrls: updatedStickerUrls,
- })
- }}
- />
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/V2V3PayProjectFormProvider.tsx b/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/V2V3PayProjectFormProvider.tsx
deleted file mode 100644
index 5999408f1d..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/V2V3PayProjectFormProvider.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import { usePayProjectForm } from 'components/Project/PayProjectForm/hooks/usePayProjectForm'
-import { PayProjectFormContext } from 'components/Project/PayProjectForm/payProjectFormContext'
-import { V2V3PayButton } from 'components/v2v3/V2V3Project/V2V3PayButton/V2V3PayButton'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useContext } from 'react'
-import { weightAmountPermyriad } from 'utils/v2v3/math'
-
-export const V2V3PayProjectFormProvider: React.FC<
- React.PropsWithChildren
-> = ({ children }) => {
- const { fundingCycleMetadata, fundingCycle, tokenSymbol, tokenAddress } =
- useContext(V2V3ProjectContext)
-
- const payProjectForm = usePayProjectForm()
-
- return (
-
- {children}
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/hooks/useDelegateMetadata.tsx.ts b/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/hooks/useDelegateMetadata.tsx.ts
deleted file mode 100644
index d9c3e3bd13..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/hooks/useDelegateMetadata.tsx.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { PayProjectFormContext } from 'components/Project/PayProjectForm/payProjectFormContext'
-import { JB721DelegateContractsContext } from 'contexts/NftRewards/JB721DelegateContracts/JB721DelegateContractsContext'
-import { useContext } from 'react'
-import { encodeJb721DelegateMetadata } from 'utils/encodeJb721DelegateMetadata/encodeJb721DelegateMetadata'
-
-export function useDelegateMetadata() {
- const { version: JB721DelegateVersion } = useContext(
- JB721DelegateContractsContext,
- )
-
- const { form: payProjectForm } = useContext(PayProjectFormContext)
-
- if (!payProjectForm?.payMetadata || !JB721DelegateVersion) return undefined
-
- return encodeJb721DelegateMetadata(
- payProjectForm?.payMetadata,
- JB721DelegateVersion,
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/hooks/useNftRewardTiersToMint.tsx.ts b/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/hooks/useNftRewardTiersToMint.tsx.ts
deleted file mode 100644
index 42b42bc01b..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/hooks/useNftRewardTiersToMint.tsx.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { PayProjectFormContext } from 'components/Project/PayProjectForm/payProjectFormContext'
-import { NftRewardsContext } from 'contexts/NftRewards/NftRewardsContext'
-import { useContext } from 'react'
-import { rewardTiersFromIds } from 'utils/nftRewards'
-
-export function useNftRewardTiersToMint() {
- const { form: payProjectForm } = useContext(PayProjectFormContext)
- const {
- nftRewards: { rewardTiers },
- } = useContext(NftRewardsContext)
-
- const nftTierIdsToMint = [
- ...(payProjectForm?.payMetadata?.tierIdsToMint ?? []),
- ].sort()
-
- if (!rewardTiers || !nftTierIdsToMint) return
-
- return rewardTiersFromIds({
- tierIds: nftTierIdsToMint,
- rewardTiers,
- })
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/index.ts b/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/index.ts
deleted file mode 100644
index 7d49aeff0c..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './V2V3ConfirmPayModal'
diff --git a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3PayButton.tsx b/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3PayButton.tsx
deleted file mode 100644
index 978dff48fd..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3PayButton/V2V3PayButton.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-import { t, Trans } from '@lingui/macro'
-import { Button, Tooltip } from 'antd'
-import ETHAmount from 'components/currency/ETHAmount'
-import {
- PayButtonProps,
- PayProjectFormContext,
-} from 'components/Project/PayProjectForm/payProjectFormContext'
-import { PROJECT_PAGE } from 'constants/fathomEvents'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import useWeiConverter from 'hooks/useWeiConverter'
-import { trackFathomGoal } from 'lib/fathom'
-import { V2V3CurrencyOption } from 'models/v2v3/currencyOption'
-import { useContext, useState } from 'react'
-import { twMerge } from 'tailwind-merge'
-import { V2V3_CURRENCY_USD } from 'utils/v2v3/currency'
-import { V2V3ConfirmPayModal } from './V2V3ConfirmPayModal'
-
-export function V2V3PayButton({ disabled, wrapperClassName }: PayButtonProps) {
- const {
- fundingCycleMetadata,
- loading: { fundingCycleLoading, primaryETHTerminalLoading },
- } = useContext(V2V3ProjectContext)
- const { projectMetadata, isArchived } = useContext(ProjectMetadataContext)
- const { form: payProjectForm } = useContext(PayProjectFormContext)
-
- const [payModalVisible, setPayModalVisible] = useState(false)
-
- const { payInCurrency, payAmount } = payProjectForm ?? {}
-
- const weiPayAmt = useWeiConverter({
- currency: payInCurrency as V2V3CurrencyOption,
- amount: payAmount,
- })
-
- const payButtonText = projectMetadata?.payButton?.length
- ? projectMetadata.payButton
- : t`Pay`
-
- let disabledMessage: string | undefined
- if (isArchived) {
- disabledMessage = t`This project is archived and can't be paid.`
- } else if (fundingCycleMetadata?.pausePay) {
- disabledMessage = t`Payments to this project are paused in this cycle.`
- }
-
- const isPayDisabled = Boolean(disabledMessage) || disabled
-
- return (
-
-
- {
- setPayModalVisible(true)
- trackFathomGoal(PROJECT_PAGE.PAY_CTA)
- }}
- disabled={isPayDisabled}
- loading={fundingCycleLoading || primaryETHTerminalLoading}
- >
- {payButtonText}
-
-
- {payInCurrency === V2V3_CURRENCY_USD && (
-
-
- Paid as
-
-
- )}
-
-
setPayModalVisible(false)}
- weiAmount={weiPayAmt}
- />
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3PayProjectForm.tsx b/src/components/v2v3/V2V3Project/V2V3PayProjectForm.tsx
deleted file mode 100644
index 6851be7e14..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3PayProjectForm.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { PayProjectForm } from 'components/Project/PayProjectForm'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useValidatePrimaryEthTerminal } from 'hooks/v2v3/useValidatePrimaryEthTerminal'
-import { useContext } from 'react'
-
-export function V2V3PayProjectForm() {
- const { fundingCycle } = useContext(V2V3ProjectContext)
- const hasCurrentFundingCycle = fundingCycle?.number.gt(0)
- const isPrimaryETHTerminalValid = useValidatePrimaryEthTerminal()
-
- const disabled = !hasCurrentFundingCycle || !isPrimaryETHTerminalValid
-
- return
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3Project.tsx b/src/components/v2v3/V2V3Project/V2V3Project.tsx
deleted file mode 100644
index 1cd598d257..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3Project.tsx
+++ /dev/null
@@ -1,73 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { Row } from 'antd'
-import { ErrorBoundaryCallout } from 'components/Callout/ErrorBoundaryCallout'
-import { ProjectHeader } from 'components/Project/ProjectHeader'
-import ScrollToTopButton from 'components/buttons/ScrollToTopButton'
-import { useModalFromUrlQuery } from 'components/modals/hooks/useModalFromUrlQuery'
-import { V2V3PayProjectFormProvider } from 'components/v2v3/V2V3Project/V2V3PayButton/V2V3ConfirmPayModal/V2V3PayProjectFormProvider'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useIsUserAddress } from 'hooks/useIsUserAddress'
-import useMobile from 'hooks/useMobile'
-import { useContext } from 'react'
-import { ProjectPageMobile } from './ProjectPageMobile'
-import { ProjectPageRightCol } from './ProjectPageRightCol'
-import { ProjectPageTabs } from './ProjectPageTabs'
-import { V2V3ProjectHeaderActions } from './V2V3ProjectHeaderActions/V2V3ProjectHeaderActions'
-import { ProjectBanners } from './banners/ProjectBanners'
-import NewDeployModal, { NEW_DEPLOY_QUERY_PARAM } from './modals/NewDeployModal'
-
-export const COL_SIZE_MD = 12
-
-export function V2V3Project() {
- const { projectOwnerAddress, handle } = useContext(V2V3ProjectContext)
- const { projectId } = useContext(ProjectMetadataContext)
-
- const { visible: newDeployModalVisible, hide: hideNewDeployModal } =
- useModalFromUrlQuery(NEW_DEPLOY_QUERY_PARAM)
-
- const isMobile = useMobile()
- const isOwner = useIsUserAddress(projectOwnerAddress)
-
- const canEditProjectHandle = isOwner && !handle
-
- if (projectId === undefined) return null
-
- return (
-
-
-
-
}
- handle={handle}
- projectOwnerAddress={projectOwnerAddress}
- canEditProjectHandle={canEditProjectHandle}
- />
-
-
- {/* */}
-
- {isMobile ? (
-
- ) : (
-
- Project details failed to load.}
- >
-
-
-
-
- )}
-
-
-
-
-
-
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectHeaderActions/V2V3ProjectHeaderActions.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectHeaderActions/V2V3ProjectHeaderActions.tsx
index e309bac35f..5c3059b38f 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectHeaderActions/V2V3ProjectHeaderActions.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectHeaderActions/V2V3ProjectHeaderActions.tsx
@@ -1,8 +1,8 @@
import { Cog6ToothIcon, WrenchIcon } from '@heroicons/react/24/outline'
import { t, Trans } from '@lingui/macro'
import { Button, Divider, Tooltip } from 'antd'
-import BookmarkButton from 'components/BookmarkButton/BookmarkButton'
-import { SubscribeButton } from 'components/SubscribeButton'
+import BookmarkButton from 'components/buttons/BookmarkButton/BookmarkButton'
+import { SubscribeButton } from 'components/buttons/SubscribeButton'
import { V2V3ProjectToolsDrawer } from 'components/v2v3/V2V3Project/V2V3ProjectToolsDrawer'
import { PV_V2 } from 'constants/pv'
import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/ProjectSettingsDashboard.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/ProjectSettingsDashboard.tsx
index b9bc1973f9..e10f99385d 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/ProjectSettingsDashboard.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/ProjectSettingsDashboard.tsx
@@ -2,9 +2,9 @@ import { Trans } from '@lingui/macro'
import { Button } from 'antd'
import EthereumAddress from 'components/EthereumAddress'
import Loading from 'components/Loading'
-import { useDistributableAmount } from 'components/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useDistributableAmount'
import { AmountInCurrency } from 'components/currency/AmountInCurrency'
import ETHAmount from 'components/currency/ETHAmount'
+import { useDistributableAmount } from 'components/v2v3/V2V3Project/ProjectDashboard/components/CyclesPayoutsPanel/hooks/useDistributableAmount'
import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
import { BigNumber } from 'ethers'
@@ -15,8 +15,6 @@ import { V2V3CurrencyName } from 'utils/v2v3/currency'
import { ProjectSettingsLayout } from './ProjectSettingsLayout'
import { useSettingsPagePath } from './hooks/useSettingsPagePath'
-export type MenuKey = V2V3SettingsPageKey
-
export type V2V3SettingsPageKey =
| 'general'
| 'handle'
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/hooks/useFundingHasSavedChanges.ts b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/hooks/useFundingHasSavedChanges.ts
deleted file mode 100644
index aa8fcb33d4..0000000000
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/hooks/useFundingHasSavedChanges.ts
+++ /dev/null
@@ -1,204 +0,0 @@
-import isEqual from 'lodash/isEqual'
-import { NftRewardTier } from 'models/nftRewards'
-import { useMemo } from 'react'
-import { DEFAULT_MUST_START_AT_OR_AFTER } from 'redux/slices/editingV2Project'
-import { tiersEqual } from 'utils/nftRewards'
-import {
- serializeFundAccessConstraint,
- serializeV2V3FundingCycleData,
- serializeV2V3FundingCycleMetadata,
-} from 'utils/v2v3/serializers'
-
-import { EditingFundingCycleConfig } from './useEditingFundingCycleConfig'
-import { InitialEditingData } from './useInitialEditingData'
-
-export const useFundingHasSavedChanges = ({
- editingFundingCycleConfig,
- initialEditingData,
-}: {
- editingFundingCycleConfig: EditingFundingCycleConfig
- initialEditingData: InitialEditingData | undefined
-}) => {
- const {
- editingPayoutGroupedSplits,
- editingReservedTokensGroupedSplits,
- editingFundingCycleMetadata,
- editingFundingCycleData,
- editingFundAccessConstraints,
- editingNftRewards,
- editingMustStartAtOrAfter,
- } = editingFundingCycleConfig
-
- const fundingHasSavedChanges = useMemo(() => {
- if (!initialEditingData) {
- // Nothing to compare so return false
- return false
- }
- const editedChanges: InitialEditingData = {
- fundAccessConstraints: editingFundAccessConstraints.map(
- serializeFundAccessConstraint,
- ),
- fundingCycleMetadata: serializeV2V3FundingCycleMetadata(
- editingFundingCycleMetadata,
- ),
- fundingCycleData: serializeV2V3FundingCycleData(editingFundingCycleData),
- payoutGroupedSplits: {
- payoutGroupedSplits: editingPayoutGroupedSplits.splits,
- reservedTokensGroupedSplits: editingReservedTokensGroupedSplits.splits,
- },
- nftRewards: editingNftRewards,
- mustStartAtOrAfter:
- editingMustStartAtOrAfter || DEFAULT_MUST_START_AT_OR_AFTER,
- }
-
- return !isEqual(initialEditingData, editedChanges)
- }, [
- editingFundAccessConstraints,
- editingFundingCycleData,
- editingFundingCycleMetadata,
- editingPayoutGroupedSplits,
- editingReservedTokensGroupedSplits,
- editingNftRewards,
- initialEditingData,
- editingMustStartAtOrAfter,
- ])
-
- const fundingDrawerHasSavedChanges = useMemo(() => {
- const fundingCycleData = serializeV2V3FundingCycleData(
- editingFundingCycleData,
- )
- const fundAccessConstraints = editingFundAccessConstraints.length
- ? serializeFundAccessConstraint(editingFundAccessConstraints?.[0])
- : undefined
- const payoutGroupedSplits = editingPayoutGroupedSplits.splits
-
- if (!fundAccessConstraints || !initialEditingData) {
- return false
- }
- const durationUpdated =
- fundingCycleData.duration !== initialEditingData.fundingCycleData.duration
- const distributionLimitUpdated =
- fundAccessConstraints.distributionLimit !==
- initialEditingData.fundAccessConstraints?.[0]?.distributionLimit
- const distributionLimitCurrencyUpdated =
- fundAccessConstraints.distributionLimitCurrency !==
- initialEditingData.fundAccessConstraints?.[0]?.distributionLimitCurrency
- const payoutGroupedSplitsUpdated = !isEqual(
- payoutGroupedSplits,
- initialEditingData.payoutGroupedSplits?.payoutGroupedSplits ?? [],
- )
- return (
- durationUpdated ||
- distributionLimitUpdated ||
- distributionLimitCurrencyUpdated ||
- payoutGroupedSplitsUpdated
- )
- }, [
- editingFundAccessConstraints,
- editingFundingCycleData,
- editingPayoutGroupedSplits.splits,
- initialEditingData,
- ])
-
- const tokenDrawerHasSavedChanges = useMemo(() => {
- const fundingCycleData = serializeV2V3FundingCycleData(
- editingFundingCycleData,
- )
- const fundingCycleMetadata = serializeV2V3FundingCycleMetadata(
- editingFundingCycleMetadata,
- )
- const fundAccessConstraints = editingFundAccessConstraints.length
- ? serializeFundAccessConstraint(editingFundAccessConstraints?.[0])
- : undefined
- const reservedTokensGroupedSplits =
- editingReservedTokensGroupedSplits.splits
-
- if (!fundAccessConstraints || !initialEditingData) {
- return false
- }
-
- const reservedRateUpdated =
- fundingCycleMetadata.reservedRate !==
- initialEditingData.fundingCycleMetadata.reservedRate
- const reservedTokensGroupedSplitsUpdated = !isEqual(
- reservedTokensGroupedSplits,
- initialEditingData.payoutGroupedSplits.reservedTokensGroupedSplits ?? [],
- )
- const discountRateUpdated =
- fundingCycleData.discountRate !==
- initialEditingData.fundingCycleData.discountRate
- const redemptionRateUpdated =
- fundingCycleMetadata.redemptionRate !==
- initialEditingData.fundingCycleMetadata.redemptionRate
-
- return (
- reservedRateUpdated ||
- reservedTokensGroupedSplitsUpdated ||
- discountRateUpdated ||
- redemptionRateUpdated
- )
- }, [
- editingFundAccessConstraints,
- editingFundingCycleData,
- editingFundingCycleMetadata,
- editingReservedTokensGroupedSplits.splits,
- initialEditingData,
- ])
-
- const rulesDrawerHasSavedChanges = useMemo(() => {
- const fundingCycleData = serializeV2V3FundingCycleData(
- editingFundingCycleData,
- )
- const fundingCycleMetadata = serializeV2V3FundingCycleMetadata(
- editingFundingCycleMetadata,
- )
- const fundAccessConstraints = editingFundAccessConstraints.length
- ? serializeFundAccessConstraint(editingFundAccessConstraints?.[0])
- : undefined
-
- if (!fundAccessConstraints || !initialEditingData) {
- return false
- }
-
- const pausePaymentsUpdated =
- fundingCycleMetadata.pausePay !==
- initialEditingData.fundingCycleMetadata.pausePay
- const allowMintingUpdated =
- fundingCycleMetadata.allowMinting !==
- initialEditingData.fundingCycleMetadata.allowMinting
- const ballotUpdated =
- fundingCycleData.ballot !== initialEditingData.fundingCycleData.ballot
-
- return pausePaymentsUpdated || allowMintingUpdated || ballotUpdated
- }, [
- editingFundAccessConstraints,
- editingFundingCycleData,
- editingFundingCycleMetadata,
- initialEditingData,
- ])
-
- const nftDrawerHasSavedChanges = useMemo(() => {
- const initialNftRewards = initialEditingData?.nftRewards
- if (!editingNftRewards) return false
- if (!initialNftRewards && editingNftRewards) return true
-
- const rewardTiersChanged = Boolean(
- editingNftRewards.rewardTiers?.some(
- (rewardTier: NftRewardTier, index: number) => {
- const initialRewardTier = initialNftRewards?.rewardTiers?.[index]
- if (!initialRewardTier) return true
- return !tiersEqual({ tier1: rewardTier, tier2: initialRewardTier })
- },
- ),
- )
- return rewardTiersChanged
- }, [initialEditingData, editingNftRewards])
-
- return {
- fundingHasSavedChanges,
- fundingDrawerHasSavedChanges,
- tokenDrawerHasSavedChanges,
- rulesDrawerHasSavedChanges,
- nftDrawerHasSavedChanges,
- }
-}
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/hooks/useInitialEditingData.ts b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/hooks/useInitialEditingData.ts
index 1eb698ef70..4f838f301e 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/hooks/useInitialEditingData.ts
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/hooks/useInitialEditingData.ts
@@ -29,7 +29,7 @@ import {
serializeV2V3FundingCycleMetadata,
} from 'utils/v2v3/serializers'
-export interface InitialEditingData {
+interface InitialEditingData {
fundAccessConstraints: SerializedV2V3FundAccessConstraint[]
fundingCycleData: SerializedV2V3FundingCycleData
fundingCycleMetadata: SerializedV2V3FundingCycleMetadata
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/EditCycleFormFields.ts b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/EditCycleFormFields.ts
index 9689590fcb..5e4e96edf2 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/EditCycleFormFields.ts
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/EditCycleFormFields.ts
@@ -3,7 +3,7 @@ import { CurrencyName } from 'constants/currency'
import { Split } from 'models/splits'
import { NftRewardsData } from 'redux/slices/editingV2Project/types'
-export type DetailsSectionFields = {
+type DetailsSectionFields = {
duration: number
durationUnit: DurationOption
ballot: string
@@ -12,14 +12,14 @@ export type DetailsSectionFields = {
pausePay: boolean
}
-export type PayoutsSectionFields = {
+type PayoutsSectionFields = {
payoutSplits: Split[]
distributionLimit: number | undefined // undefined = infinite limit
distributionLimitCurrency: CurrencyName
holdFees: boolean
}
-export type TokenSectionFields = {
+type TokenSectionFields = {
mintRate: number
reservedTokens: number // percentage
reservedSplits: Split[]
@@ -29,7 +29,7 @@ export type TokenSectionFields = {
pauseTransfers: boolean // "Disable project token transfers"
}
-export type NftSectionFields = {
+type NftSectionFields = {
nftRewards: NftRewardsData | undefined
useDataSourceForRedeem: boolean
}
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/EditCyclePage.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/EditCyclePage.tsx
index a04862adba..70bb5a338f 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/EditCyclePage.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/EditCyclePage.tsx
@@ -1,7 +1,7 @@
import { Trans } from '@lingui/macro'
import { Button, Form, Tooltip } from 'antd'
import Loading from 'components/Loading'
-import { ExternalLinkWithIcon } from 'components/ProjectDashboard/components/ui/ExternalLinkWithIcon'
+import { ExternalLinkWithIcon } from 'components/v2v3/V2V3Project/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
import Link from 'next/link'
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/HeaderRows.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/HeaderRows.tsx
index a28ce8061b..f4a25069c2 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/HeaderRows.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/HeaderRows.tsx
@@ -2,7 +2,7 @@ import { PlusOutlined } from '@ant-design/icons'
import { Trans } from '@lingui/macro'
import { Button } from 'antd'
-import { ExternalLinkWithIcon } from 'components/ProjectDashboard/components/ui/ExternalLinkWithIcon'
+import { ExternalLinkWithIcon } from 'components/v2v3/V2V3Project/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import {
AddEditAllocationModal,
AddEditAllocationModalEntity,
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/PayoutTableSettings.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/PayoutTableSettings.tsx
index 2174f7e07b..b450f8e56f 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/PayoutTableSettings.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/PayoutTableSettings.tsx
@@ -1,7 +1,7 @@
import { ReceiptPercentIcon, TrashIcon } from '@heroicons/react/24/outline'
import { Trans } from '@lingui/macro'
-import { handleConfirmationDeletion } from 'components/ProjectDashboard/utils/modals'
import { PopupMenu, PopupMenuItem } from 'components/ui/PopupMenu'
+import { handleConfirmationDeletion } from 'components/v2v3/V2V3Project/ProjectDashboard/utils/modals'
import { useState } from 'react'
import { usePayoutsTable } from '../hooks/usePayoutsTable'
import { SwitchToLimitedModal } from './modals/SwitchToLimitedModal'
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/modals/SwitchToLimitedModal.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/modals/SwitchToLimitedModal.tsx
index bddc2058ed..210e492356 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/modals/SwitchToLimitedModal.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/modals/SwitchToLimitedModal.tsx
@@ -1,8 +1,8 @@
import { Trans } from '@lingui/macro'
import { Modal } from 'antd'
-import { ExternalLinkWithIcon } from 'components/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import CurrencySwitch from 'components/currency/CurrencySwitch'
import FormattedNumberInput from 'components/inputs/FormattedNumberInput'
+import { ExternalLinkWithIcon } from 'components/v2v3/V2V3Project/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import { useState } from 'react'
import { helpPagePath } from 'utils/routes'
import { V2V3_CURRENCY_ETH, V2V3_CURRENCY_USD } from 'utils/v2v3/currency'
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/modals/SwitchToUnlimitedModal.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/modals/SwitchToUnlimitedModal.tsx
index 8bdf1ef1e7..a7a725f2ec 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/modals/SwitchToUnlimitedModal.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/PayoutsSection/PayoutsTable/modals/SwitchToUnlimitedModal.tsx
@@ -1,6 +1,6 @@
import { Trans } from '@lingui/macro'
import { Modal } from 'antd'
-import { ExternalLinkWithIcon } from 'components/ProjectDashboard/components/ui/ExternalLinkWithIcon'
+import { ExternalLinkWithIcon } from 'components/v2v3/V2V3Project/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import { helpPagePath } from 'utils/routes'
import { usePayoutsTable } from '../../hooks/usePayoutsTable'
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/IssuanceRateReductionField.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/IssuanceRateReductionField.tsx
index ba53f799e0..ee0af58374 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/IssuanceRateReductionField.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/IssuanceRateReductionField.tsx
@@ -1,7 +1,7 @@
import { Trans } from '@lingui/macro'
-import { ExternalLinkWithIcon } from 'components/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import { JuiceSwitch } from 'components/inputs/JuiceSwitch'
import NumberSlider from 'components/inputs/NumberSlider'
+import { ExternalLinkWithIcon } from 'components/v2v3/V2V3Project/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import { useState } from 'react'
import { helpPagePath } from 'utils/routes'
import { useEditCycleFormContext } from '../EditCycleFormContext'
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/RedemptionRateField.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/RedemptionRateField.tsx
index da71924029..c71d8264f9 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/RedemptionRateField.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/RedemptionRateField.tsx
@@ -1,9 +1,9 @@
import { Trans } from '@lingui/macro'
import { useWatch } from 'antd/lib/form/Form'
-import { ExternalLinkWithIcon } from 'components/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import { TokenRedemptionRateGraph } from 'components/TokenRedemptionRateGraph'
import { JuiceSwitch } from 'components/inputs/JuiceSwitch'
import NumberSlider from 'components/inputs/NumberSlider'
+import { ExternalLinkWithIcon } from 'components/v2v3/V2V3Project/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import { useState } from 'react'
import { helpPagePath } from 'utils/routes'
import { useEditCycleFormContext } from '../EditCycleFormContext'
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/ReservedTokensField.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/ReservedTokensField.tsx
index 7d45e5dd3a..d32ea7d377 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/ReservedTokensField.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditCyclePage/TokensSection/ReservedTokensField.tsx
@@ -1,9 +1,9 @@
import { Trans } from '@lingui/macro'
import { useWatch } from 'antd/lib/form/Form'
-import { ExternalLinkWithIcon } from 'components/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import { FormItems } from 'components/formItems'
import { ItemNoInput } from 'components/formItems/ItemNoInput'
import { JuiceSwitch } from 'components/inputs/JuiceSwitch'
+import { ExternalLinkWithIcon } from 'components/v2v3/V2V3Project/ProjectDashboard/components/ui/ExternalLinkWithIcon'
import { Split } from 'models/splits'
import { useState } from 'react'
import { helpPagePath } from 'utils/routes'
diff --git a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditNftsPage/EditNftsPage.tsx b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditNftsPage/EditNftsPage.tsx
index a5a08d8031..9ac8af9638 100644
--- a/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditNftsPage/EditNftsPage.tsx
+++ b/src/components/v2v3/V2V3Project/V2V3ProjectSettings/pages/EditNftsPage/EditNftsPage.tsx
@@ -3,9 +3,9 @@ import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
import { useNftDeployerCanReconfigure } from 'hooks/JB721Delegate/contractReader/useNftDeployerCanReconfigure'
import { useContext } from 'react'
+import { LaunchNftsPage } from './LaunchNftCollection'
import { EnableNftsCard } from './LaunchNftCollection/EnableNftsCard'
-import { LaunchNftsPage } from './LaunchNftCollection/LaunchNftsCollection'
-import { UpdateNftsPage } from './UpdateNftsPage/UpdateNftsPage'
+import { UpdateNftsPage } from './UpdateNftsPage'
export function EditNftsPage() {
const { projectId } = useContext(ProjectMetadataContext)
diff --git a/src/components/v2v3/V2V3Project/banners/ProjectBanners.tsx b/src/components/v2v3/V2V3Project/banners/ProjectBanners.tsx
deleted file mode 100644
index 3dcb1e4903..0000000000
--- a/src/components/v2v3/V2V3Project/banners/ProjectBanners.tsx
+++ /dev/null
@@ -1,48 +0,0 @@
-import { PV_V2 } from 'constants/pv'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContractsContext } from 'contexts/v2v3/ProjectContracts/V2V3ProjectContractsContext'
-import useProjectControllerAddress from 'hooks/v2v3/contractReader/useProjectControllerAddress'
-import { useContext } from 'react'
-import { isZeroAddress } from 'utils/address'
-import { V2BugNoticeBanner } from './V2BugNoticeBanner'
-
-export function ProjectBanners() {
- const { projectId, pv } = useContext(ProjectMetadataContext)
- const {
- contracts,
- loading: { projectContractsLoading },
- } = useContext(V2V3ProjectContractsContext)
-
- // get the projects controller address on the deprecated JBDirectory (the bugged version)
- const { data: controllerAddress } = useProjectControllerAddress({
- projectId,
- useDeprecatedContract: true,
- })
-
- const isV2Project = pv === PV_V2
-
- // if the project was created on the bugged version of the JBDirectory, it will have a non-zero controller address.
- const hasProjectOnDeprecatedContracts =
- controllerAddress && !isZeroAddress(controllerAddress)
-
- // if the project has upgraded to the new contracts, have a defined JBController.
- const hasUpgradedJBController = contracts?.JBController !== undefined
-
- // show banner if a V2 project was launched on the bugged contracts and hasn't upgraded.
- const showV2BugNoticeBanner = Boolean(
- isV2Project &&
- !projectContractsLoading?.JBControllerLoading &&
- hasProjectOnDeprecatedContracts &&
- !hasUpgradedJBController,
- )
-
- const hasBanners = showV2BugNoticeBanner
-
- if (!hasBanners) return null
-
- return (
-
- {showV2BugNoticeBanner && }
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/banners/V2BugNoticeBanner.tsx b/src/components/v2v3/V2V3Project/banners/V2BugNoticeBanner.tsx
deleted file mode 100644
index 0a4183b821..0000000000
--- a/src/components/v2v3/V2V3Project/banners/V2BugNoticeBanner.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import Banner from 'components/Banner'
-import ExternalLink from 'components/ExternalLink'
-
-export function V2BugNoticeBanner() {
- // This copy has not been prepped for translations due to being a hot fix that is likely to change.
- return (
-
-
- This project uses an old version of the V2 Juicebox protocol
- contracts. This version of the contracts contains a minor bug.{' '}
- No ETH is in danger and projects are unlikely to be
- affected.{' '}
-
- Read the postmortem.
-
-
-
- Payments to V2 projects with a balance of 0 ETH have been disabled.
- To re-enable payments, this project's owner must re-launch their
- cycle using the updated version of the V2 Juicebox contracts.
-
- >
- }
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/index.ts b/src/components/v2v3/V2V3Project/index.ts
deleted file mode 100644
index bf5cf27ce3..0000000000
--- a/src/components/v2v3/V2V3Project/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { V2V3Project } from './V2V3Project'
diff --git a/src/components/v2v3/V2V3Project/modals/NewDeployModal.tsx b/src/components/v2v3/V2V3Project/modals/NewDeployModal.tsx
deleted file mode 100644
index 777a4a72c5..0000000000
--- a/src/components/v2v3/V2V3Project/modals/NewDeployModal.tsx
+++ /dev/null
@@ -1,138 +0,0 @@
-import { CheckCircleFilled } from '@ant-design/icons'
-import { t, Trans } from '@lingui/macro'
-import { Modal } from 'antd'
-import RichButton from 'components/buttons/RichButton'
-import ExternalLink from 'components/ExternalLink'
-import { IssueErc20TokenModal } from 'components/modals/IssueErc20TokenModal'
-import {
- ISSUE_ERC20_EXPLANATION,
- PROJECT_PAYER_ADDRESS_EXPLANATION,
-} from 'components/strings'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { useDeployProjectPayerTx } from 'hooks/v2v3/transactor/useDeployProjectPayerTx'
-import Link from 'next/link'
-import { useContext, useState } from 'react'
-import { settingsPagePath } from 'utils/routes'
-import { LaunchProjectPayerModal } from './LaunchProjectPayerModal'
-
-export const NEW_DEPLOY_QUERY_PARAM = 'np'
-
-export default function NewDeployModal({
- open,
- onClose,
-}: {
- open: boolean
- onClose: VoidFunction
-}) {
- const { handle } = useContext(V2V3ProjectContext)
- const { projectId } = useContext(ProjectMetadataContext)
-
- const [issueTokenModalVisible, setIssueTokenModalVisible] =
- useState(false)
- const [launchProjectPayerModalVisible, setLaunchProjectPayerModalVisible] =
- useState(false)
- const [hasIssuedToken, setHasIssuedToken] = useState()
- const [hasLaunchedPayableAddress, setHasLaunchedPayableAddress] =
- useState()
-
- const completedAllSteps = hasIssuedToken && hasLaunchedPayableAddress
-
- return (
-
-
- Project launch successful
-
-
-
- Congratulations on launching your project! For help planning your next
- steps, share your project in the{' '}
-
- JuiceboxDAO Discord
-
- . Optionally, you can also:
-
-
-
-
- Set a project handle (optional)}
- description={
-
- Set a unique handle that will be visible in your project's URL,
- and that will allow your project to appear in search results.
-
- }
- disabled={!!handle}
- icon={
- handle ? (
-
- ) : undefined
- }
- primaryColorClassName={
- handle ? 'text-grey-400 dark:text-slate-200' : undefined
- }
- />
-
- Create an ERC-20 token (optional)}
- description={ISSUE_ERC20_EXPLANATION}
- onClick={() => setIssueTokenModalVisible(true)}
- disabled={hasIssuedToken}
- icon={
- hasIssuedToken ? (
-
- ) : undefined
- }
- primaryColorClassName={
- hasIssuedToken ? 'text-grey-400 dark:text-slate-200' : undefined
- }
- />
- Create a project payer address (optional)}
- description={PROJECT_PAYER_ADDRESS_EXPLANATION}
- onClick={() => setLaunchProjectPayerModalVisible(true)}
- disabled={hasLaunchedPayableAddress}
- icon={
- hasLaunchedPayableAddress ? (
-
- ) : undefined
- }
- primaryColorClassName={
- hasLaunchedPayableAddress
- ? 'text-grey-400 dark:text-slate-200'
- : undefined
- }
- />
-
- setIssueTokenModalVisible(false)}
- onConfirmed={() => setHasIssuedToken(true)}
- />
- setLaunchProjectPayerModalVisible(false)}
- useDeployProjectPayerTx={useDeployProjectPayerTx}
- onConfirmed={() => setHasLaunchedPayableAddress(true)}
- />
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/TokenRefs.tsx b/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/TokenRefs.tsx
deleted file mode 100644
index a3c890966e..0000000000
--- a/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/TokenRefs.tsx
+++ /dev/null
@@ -1,170 +0,0 @@
-import {
- CaretDownFilled,
- DeleteOutlined,
- PlusCircleOutlined,
-} from '@ant-design/icons'
-import { Trans, t } from '@lingui/macro'
-import { Button, Col, Form, Input, Row, Tooltip } from 'antd'
-import { FormInstance } from 'antd/lib/form/Form'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { constants } from 'ethers'
-
-import { useContext, useState } from 'react'
-import { EditTrackedAssetsForm } from './V2V3ProjectTokenBalancesModal'
-
-export type AssetInputType = 'project' | 'erc20'
-
-const AssetTypeSwitcherButton = ({
- type,
- onClick,
-}: {
- type?: AssetInputType
- onClick: VoidFunction
-}) => {
- const formattedType = type === 'project' ? 'Project' : 'ERC-20'
- return (
- }
- onClick={onClick}
- >
- {formattedType}
-
- )
-}
-
-const AssetInput = ({
- value,
- onChange,
-}: {
- value?: { input?: string; type?: AssetInputType }
- onChange?: (props: { input: string; type: AssetInputType }) => void
-}) => {
- const [input, setInput] = useState(value?.input ?? '')
- const [type, setType] = useState(value?.type ?? 'erc20')
-
- const triggerChange = (changedValue: {
- input?: string
- type?: AssetInputType
- }) => {
- onChange?.({
- input,
- type,
- ...value,
- ...changedValue,
- })
- }
- const onInputChange = (e: React.ChangeEvent) => {
- setInput(input)
- triggerChange({
- input: e.target.value,
- })
- }
- const onTypeChange = (newType: AssetInputType) => {
- setType(newType)
- triggerChange({ type: newType, input: '' })
- }
-
- return (
-
- )
-}
-
-export function TokenRefs({
- form,
-}: {
- form: FormInstance
-}) {
- const { projectMetadata } = useContext(ProjectMetadataContext)
-
- const initialTokens = (
- projectMetadata?.tokens ?? [{ type: 'erc20', value: '' }]
- ).map(r => ({ ...r }))
- const initialValues = {
- tokenRefs: initialTokens.map(t => ({
- assetInput: { input: t.value, type: t.type },
- })),
- }
-
- return (
-
- {(fields, { add, remove }) => (
- <>
- {fields.map(({ key, name }) => (
-
-
- {
- if (!value?.input.length) {
- return Promise.reject('Value is ')
- }
- return Promise.resolve()
- },
- validateTrigger: 'onCreate',
- message: 'Value is required',
- required: true,
- },
- ]}
- >
-
-
-
-
-
- }
- block
- onClick={() => remove(name)}
- />
-
-
-
- ))}
-
- add()}
- block
- icon={ }
- >
-
- Add token
-
-
-
- >
- )}
-
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/V2V3ProjectTokenBalance.tsx b/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/V2V3ProjectTokenBalance.tsx
deleted file mode 100644
index 8eb6ab9b9f..0000000000
--- a/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/V2V3ProjectTokenBalance.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import { Trans } from '@lingui/macro'
-import { TokenAmount } from 'components/TokenAmount'
-import V2V3ProjectHandleLink from 'components/v2v3/shared/V2V3ProjectHandleLink'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import useSymbolOfERC20 from 'hooks/ERC20/useSymbolOfERC20'
-import useProjectHandle from 'hooks/v2v3/contractReader/useProjectHandle'
-import useProjectToken from 'hooks/v2v3/contractReader/useProjectToken'
-import useTotalBalanceOf from 'hooks/v2v3/contractReader/useTotalBalanceOf'
-import { useContext } from 'react'
-
-export const V2V3ProjectTokenBalance = ({
- projectId,
-}: {
- projectId: number
-}) => {
- const { projectOwnerAddress } = useContext(V2V3ProjectContext)
- const { data: handle } = useProjectHandle({ projectId })
- const { data: tokenAddress } = useProjectToken({ projectId })
- const { data: tokenSymbol } = useSymbolOfERC20(tokenAddress)
- const { data: balance } = useTotalBalanceOf(projectOwnerAddress, projectId)
-
- if (!balance) return null
-
- return (
- <>
- {tokenSymbol ? (
-
-
-
- ) : (
-
-
- for{' '}
-
-
-
- )}
- >
- )
-}
diff --git a/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/V2V3ProjectTokenBalancesModal.tsx b/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/V2V3ProjectTokenBalancesModal.tsx
deleted file mode 100644
index 825f218bb2..0000000000
--- a/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/V2V3ProjectTokenBalancesModal.tsx
+++ /dev/null
@@ -1,180 +0,0 @@
-import { SettingOutlined } from '@ant-design/icons'
-import { t, Trans } from '@lingui/macro'
-import { Button, Form, Modal, ModalProps } from 'antd'
-import ERC20TokenBalance from 'components/ERC20TokenBalance'
-import { PV_V2 } from 'constants/pv'
-import { V2V3_PROJECT_IDS } from 'constants/v2v3/projectIds'
-import { ProjectMetadataContext } from 'contexts/shared/ProjectMetadataContext'
-import { V2V3ProjectContext } from 'contexts/v2v3/Project/V2V3ProjectContext'
-import { BigNumber } from 'ethers'
-import { useV2V3WalletHasPermission } from 'hooks/v2v3/contractReader/useV2V3WalletHasPermission'
-import { useEditProjectDetailsTx } from 'hooks/v2v3/transactor/useEditProjectDetailsTx'
-import { uploadProjectMetadata } from 'lib/api/ipfs'
-import { revalidateProject } from 'lib/api/nextjs'
-import { TokenRef } from 'models/tokenRef'
-import { V2V3OperatorPermission } from 'models/v2v3/permissions'
-import { useContext, useState } from 'react'
-
-import { AssetInputType, TokenRefs } from './TokenRefs'
-import { V2V3ProjectTokenBalance } from './V2V3ProjectTokenBalance'
-
-export interface EditTrackedAssetsForm {
- tokenRefs: { assetInput: { input: string; type: AssetInputType } }[]
-}
-
-function EditTrackedAssetsModal({
- close,
- ...props
-}: ModalProps & { close: VoidFunction }) {
- const [loading, setLoading] = useState()
- const { projectId, projectMetadata } = useContext(ProjectMetadataContext)
-
- const [form] = Form.useForm()
-
- const editV2ProjectDetailsTx = useEditProjectDetailsTx()
-
- async function updateTokenRefs() {
- const projectName = projectMetadata?.name
-
- if (!projectName) return
-
- await form.validateFields()
-
- setLoading(true)
-
- const editingTokenRefs: TokenRef[] = form
- .getFieldsValue()
- .tokenRefs.map(t => t.assetInput)
- .map(a => ({ value: a.input, type: a.type }))
-
- const uploadedMetadata = await uploadProjectMetadata({
- ...projectMetadata,
- tokens: editingTokenRefs.filter(t => t.type),
- })
-
- if (!uploadedMetadata.Hash) {
- setLoading(false)
- return
- }
-
- editV2ProjectDetailsTx(
- { cid: uploadedMetadata.Hash },
- {
- onDone: async () => {
- if (projectId) {
- await revalidateProject({
- pv: PV_V2,
- projectId: String(projectId),
- })
- }
- setLoading(false)
- close?.()
- form.resetFields()
- },
- },
- )
- }
-
- return (
-
-
-
- Display ERC-20 and other Juicebox project tokens that this project
- owner holds.
-
-
-
-
-
- )
-}
-
-export function V2V3ProjectTokenBalancesModal(props: ModalProps) {
- const { projectMetadata } = useContext(ProjectMetadataContext)
- const { projectOwnerAddress } = useContext(V2V3ProjectContext)
-
- const [editModalVisible, setEditModalVisible] = useState()
-
- const hasEditPermission = useV2V3WalletHasPermission(
- V2V3OperatorPermission.RECONFIGURE,
- )
-
- // Filter out JBDAO tokens, because we always display that balance.
- const trackedTokens = projectMetadata?.tokens?.filter(
- t =>
- !(
- t.type === 'project' &&
- parseInt(t.value) === V2V3_PROJECT_IDS.JUICEBOX_DAO
- ),
- )
-
- return (
-
- {hasEditPermission ? (
- }
- onClick={() => setEditModalVisible(true)}
- >
-
- Edit tracked assets
-
-
- ) : (
-
- )}
-
- Done
-
-
- }
- {...props}
- >
-
-
- Assets
-
-
- Other assets in this project's owner's wallet.
-
-
-
-
- {trackedTokens?.map(t =>
- t.type === 'erc20' ? (
-
- ) : (
-
- ),
- )}
-
-
- {hasEditPermission ? (
-
setEditModalVisible(false)}
- />
- ) : null}
-
-
- )
-}
diff --git a/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/index.ts b/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/index.ts
deleted file mode 100644
index 224b2455df..0000000000
--- a/src/components/v2v3/V2V3Project/modals/V2V3ProjectTokenBalancesModal/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { V2V3ProjectTokenBalancesModal } from './V2V3ProjectTokenBalancesModal'
diff --git a/src/components/v2v3/shared/DiffedSplits/DiffedSplitFields/DiffedSplitAmount.tsx b/src/components/v2v3/shared/DiffedSplits/DiffedSplitFields/DiffedSplitAmount.tsx
deleted file mode 100644
index e448fa5430..0000000000
--- a/src/components/v2v3/shared/DiffedSplits/DiffedSplitFields/DiffedSplitAmount.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import { DiffedItem } from '../../DiffedItem'
-import { SplitProps } from '../../SplitItem'
-import { SplitAmountValue } from '../../SplitItem/SplitAmountValue'
-
-export function DiffedSplitAmount({
- newSplitProps,
- oldSplitProps,
-}: {
- newSplitProps: SplitProps
- oldSplitProps: SplitProps | undefined
-}) {
- if (!oldSplitProps?.split.percent) {
- return
- } else if (!newSplitProps.split.percent) {
- return
- }
-
- return (
-
- {oldSplitProps ? (
- }
- diffStatus="old"
- hideIcon
- />
- ) : null}
- }
- diffStatus="new"
- hideIcon
- />
-
- )
-}
diff --git a/src/components/v2v3/shared/DiffedSplits/DiffedSplitFields/DiffedSplitPercent.tsx b/src/components/v2v3/shared/DiffedSplits/DiffedSplitFields/DiffedSplitPercent.tsx
deleted file mode 100644
index dbc3636df9..0000000000
--- a/src/components/v2v3/shared/DiffedSplits/DiffedSplitFields/DiffedSplitPercent.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import { DiffedItem } from 'components/v2v3/shared/DiffedItem'
-import { BigNumber } from 'ethers'
-import { formatSplitPercent } from 'utils/v2v3/math'
-
-export function DiffedSplitPercent({
- percent,
- oldPercent,
-}: {
- percent: number
- oldPercent?: number
-}) {
- const formattedPercent = formatSplitPercent(BigNumber.from(percent))
- const formattedOldPercent = oldPercent
- ? formatSplitPercent(BigNumber.from(oldPercent))
- : '0'
- const _percent = {formattedPercent}%
- if (!oldPercent || formattedPercent === formattedOldPercent) return _percent
-
- const _oldPercent = {formattedOldPercent}%
-
- return (
-
-
-
-
- )
-}
diff --git a/src/components/v2v3/shared/DiffedSplits/DiffedSplitList.tsx b/src/components/v2v3/shared/DiffedSplits/DiffedSplitList.tsx
index b9e5df5c0f..a2de8bd920 100644
--- a/src/components/v2v3/shared/DiffedSplits/DiffedSplitList.tsx
+++ b/src/components/v2v3/shared/DiffedSplits/DiffedSplitList.tsx
@@ -1,4 +1,4 @@
-import { useProjectContext } from 'components/ProjectDashboard/hooks'
+import { useProjectContext } from 'components/v2v3/V2V3Project/ProjectDashboard/hooks'
import { BigNumber } from 'ethers'
import round from 'lodash/round'
import { Split } from 'models/splits'
diff --git a/src/components/v2v3/shared/FundingCycleConfigurationDrawers/RulesDrawer/RulesForm/RulesForm.tsx b/src/components/v2v3/shared/FundingCycleConfigurationDrawers/RulesDrawer/RulesForm/RulesForm.tsx
index 07428e1d8f..5e47ba84b1 100644
--- a/src/components/v2v3/shared/FundingCycleConfigurationDrawers/RulesDrawer/RulesForm/RulesForm.tsx
+++ b/src/components/v2v3/shared/FundingCycleConfigurationDrawers/RulesDrawer/RulesForm/RulesForm.tsx
@@ -1,7 +1,7 @@
import { Trans } from '@lingui/macro'
import { Button, Form, Switch } from 'antd'
import FormItemLabel from 'components/FormItemLabel'
-import ReconfigurationStrategySelector from 'components/ReconfigurationStrategy/ReconfigurationStrategySelector'
+import ReconfigurationStrategySelector from 'components/inputs/ReconfigurationStrategy/ReconfigurationStrategySelector'
import {
CONTROLLER_CONFIG_EXPLANATION,
CONTROLLER_MIGRATION_EXPLANATION,
diff --git a/src/components/v2v3/shared/V2V3CurrencyAmount.tsx b/src/components/v2v3/shared/V2V3CurrencyAmount.tsx
deleted file mode 100644
index 95e6f1698d..0000000000
--- a/src/components/v2v3/shared/V2V3CurrencyAmount.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import ETHAmount from 'components/currency/ETHAmount'
-import USDAmount from 'components/currency/USDAmount'
-import { BigNumber } from 'ethers'
-import {
- NO_CURRENCY,
- V2V3_CURRENCY_ETH,
- V2V3_CURRENCY_USD,
-} from 'utils/v2v3/currency'
-
-export default function V2V3CurrencyAmount({
- amount,
- currency,
- precision = 2,
-}: {
- amount: BigNumber | undefined
- currency: BigNumber | undefined
- precision?: number
-}) {
- if (amount === undefined) return null
-
- if (currency?.eq(NO_CURRENCY) || currency?.eq(V2V3_CURRENCY_ETH)) {
- return
- }
-
- if (currency?.eq(V2V3_CURRENCY_USD)) {
- return
- }
-
- return null
-}
diff --git a/src/constants/featureFlags.ts b/src/constants/featureFlags.ts
index 4dfd519cd5..641ceebc1a 100644
--- a/src/constants/featureFlags.ts
+++ b/src/constants/featureFlags.ts
@@ -1,10 +1,6 @@
-export type FeatureFlag =
- | 'SIMULATE_TXS'
- | 'NEW_PROJECT_PAGE'
- | 'PAYOUTS_TABLE_CREATE_FLOW'
+export type FeatureFlag = 'SIMULATE_TXS' | 'PAYOUTS_TABLE_CREATE_FLOW'
export const FEATURE_FLAGS: { [k in FeatureFlag]: string } = {
SIMULATE_TXS: 'simulateTxs',
- NEW_PROJECT_PAGE: 'newProjectPage',
PAYOUTS_TABLE_CREATE_FLOW: 'payoutsTableCreateFlow',
}
diff --git a/src/locales/messages.pot b/src/locales/messages.pot
index c351f9d2ca..03e945f418 100644
--- a/src/locales/messages.pot
+++ b/src/locales/messages.pot
@@ -62,9 +62,6 @@ msgstr ""
msgid "Your project's tokens are not ERC-20 tokens by default. After you create your project, you can create an ERC-20 for your token holders to claim. This is optional."
msgstr ""
-msgid "Anyone who pays this project receives {tokenText}. Depending on this project's rules, it may be possible to redeem {tokenText} to reclaim ETH."
-msgstr ""
-
msgid "Available upgrades"
msgstr ""
@@ -143,9 +140,6 @@ msgstr ""
msgid "Token issuance rate:"
msgstr ""
-msgid "Set a unique handle that will be visible in your project's URL, and that will allow your project to appear in search results."
-msgstr ""
-
msgid "Determines whether tokens will be minted by payments made through this address."
msgstr ""
@@ -200,9 +194,6 @@ msgstr ""
msgid "Payout recipients:"
msgstr ""
-msgid "Project launch successful"
-msgstr ""
-
msgid "Lock until"
msgstr ""
@@ -218,9 +209,6 @@ msgstr ""
msgid "Funding"
msgstr ""
-msgid "NFTs failed to load."
-msgstr ""
-
msgid "Cycle details"
msgstr ""
@@ -275,9 +263,6 @@ msgstr ""
msgid "Cycles:"
msgstr ""
-msgid "<0/> <1>reserved1>"
-msgstr ""
-
msgid "or <0><1>sell {tokenSymbol} on exchange.1>0>"
msgstr ""
@@ -299,9 +284,6 @@ msgstr ""
msgid "Attach an image"
msgstr ""
-msgid "Choose wallet"
-msgstr ""
-
msgid "A reserved rate of more than {RESERVED_RATE_WARNING_THRESHOLD_PERCENT}% is risky for contributors. Contributors won't receive many tokens for their contribution."
msgstr ""
@@ -617,12 +599,6 @@ msgstr ""
msgid "While payments to this project are paused, your project will not be able to receive payments. Transferring ETH to this project will still work."
msgstr ""
-msgid "<0/> for <1/>"
-msgstr ""
-
-msgid "Overview"
-msgstr ""
-
msgid "last {TRENDING_WINDOW_DAYS} days"
msgstr ""
@@ -770,9 +746,6 @@ msgstr ""
msgid "Use me as a base!"
msgstr ""
-msgid "Receive ERC-20 tokens"
-msgstr ""
-
msgid "New NFTs will be available in your next cycle as long as it starts after your edit deadline."
msgstr ""
@@ -932,9 +905,6 @@ msgstr ""
msgid "Payouts will be sent to:"
msgstr ""
-msgid "Project tokens currently reserved for the recipients below. These tokens can be sent out at any time."
-msgstr ""
-
msgid "Automated"
msgstr ""
@@ -977,9 +947,6 @@ msgstr ""
msgid "Hold fees"
msgstr ""
-msgid "Receive:"
-msgstr ""
-
msgid "Grant NFT permissions"
msgstr ""
@@ -1067,9 +1034,6 @@ msgstr ""
msgid "Maximum {MAX_DESCRIPTION_LENGTH} characters"
msgstr ""
-msgid "You must review and accept the risks."
-msgstr ""
-
msgid "% tokens redeemed"
msgstr ""
@@ -1097,9 +1061,6 @@ msgstr ""
msgid "Project owner (you)"
msgstr ""
-msgid "This cycle's payouts. Payouts reset each cycle."
-msgstr ""
-
msgid "Edit project and cycle rules"
msgstr ""
@@ -1115,9 +1076,6 @@ msgstr ""
msgid "Are you sure you want to remove {0}?"
msgstr ""
-msgid "I understand and accept the risks associated with <0>this project0> and the <1>Juicebox Protocol1>."
-msgstr ""
-
msgid "Payouts"
msgstr ""
@@ -1169,9 +1127,6 @@ msgstr ""
msgid "1. Set ENS name"
msgstr ""
-msgid "Legacy balance"
-msgstr ""
-
msgid "No overflow"
msgstr ""
@@ -1208,9 +1163,6 @@ msgstr ""
msgid "Collection Name"
msgstr ""
-msgid "No active cycle."
-msgstr ""
-
msgid "The project owner is the only reserved token recipient. Any reserved tokens sent out this cycle will go to them."
msgstr ""
@@ -1238,9 +1190,6 @@ msgstr ""
msgid "Choose an ENS name to use as the project's handle. Subdomains are allowed and will be included in the handle. Handles won't include the \".eth\" extension."
msgstr ""
-msgid "This project doesn't reserve any tokens."
-msgstr ""
-
msgid "Total:"
msgstr ""
@@ -1577,9 +1526,6 @@ msgstr ""
msgid "Launch V3 migration token"
msgstr ""
-msgid "Your total token balance for this project's legacy tokens (V1 or V2 tokens)."
-msgstr ""
-
msgid "days"
msgstr ""
@@ -1643,9 +1589,6 @@ msgstr ""
msgid "Collection description"
msgstr ""
-msgid "Project details failed to load."
-msgstr ""
-
msgid "There are no NFT tiers to update."
msgstr ""
@@ -1709,9 +1652,6 @@ msgstr ""
msgid "Memo"
msgstr ""
-msgid "I accept the <0>risks0> associated with the Juicebox protocol."
-msgstr ""
-
msgid "Transfer unclaimed {tokenTextShort}"
msgstr ""
@@ -1745,9 +1685,6 @@ msgstr ""
msgid "Switch to limited payouts"
msgstr ""
-msgid "Export payout CSV"
-msgstr ""
-
msgid "JuiceboxDAO is a community of passionate builders, creators, and innovators working together to push the boundaries of decentralized funding. Using the Juicebox protocol, we've created a DAO to coordinate thousands of JBX holders, build in the open, and govern the protocol over time."
msgstr ""
@@ -1814,9 +1751,6 @@ msgstr ""
msgid "Claim tokens as ERC-20"
msgstr ""
-msgid "Pay <0/>"
-msgstr ""
-
msgid "Choose an ENS name before setting the text record"
msgstr ""
@@ -1964,9 +1898,6 @@ msgstr ""
msgid "Optionally, you can create an ERC-20 token once your project has been deployed. Until then, the Juicebox protocol will track token balances internally, allowing your supporters to receive tokens and redeem them for ETH."
msgstr ""
-msgid "I understand and accept this project's notice."
-msgstr ""
-
msgid "Set this to the sum of your payouts"
msgstr ""
@@ -2219,9 +2150,6 @@ msgstr ""
msgid "Splits payer addresses"
msgstr ""
-msgid "Attach an on-chain message to this payment."
-msgstr ""
-
msgid "ERC-20 tokens can only be issued once an ERC-20 token has been created for this project."
msgstr ""
@@ -2270,9 +2198,6 @@ msgstr ""
msgid "The project owner can edit the next cycle's rules at any time."
msgstr ""
-msgid "Redeem for ETH"
-msgstr ""
-
msgid "Export this cycle's payouts to CSV."
msgstr ""
@@ -2387,9 +2312,6 @@ msgstr ""
msgid "No edits were made to cycle details for this cycle."
msgstr ""
-msgid "{nftBalanceFormatted, plural, one {NFT} other {NFTs}}"
-msgstr ""
-
msgid "Save recipients"
msgstr ""
@@ -2840,9 +2762,6 @@ msgstr ""
msgid "Owned by: <0/>"
msgstr ""
-msgid "Close, I'll do these later"
-msgstr ""
-
msgid "Activity"
msgstr ""
@@ -2909,9 +2828,6 @@ msgstr ""
msgid "{0} after {feePercentage}% JBX membership fee"
msgstr ""
-msgid "No upcoming cycle."
-msgstr ""
-
msgid "Explore all projects"
msgstr ""
@@ -2942,9 +2858,6 @@ msgstr ""
msgid "Redeem tokens"
msgstr ""
-msgid "Display ERC-20 and other Juicebox project tokens that this project owner holds."
-msgstr ""
-
msgid "Add an on-chain note about this cycle."
msgstr ""
@@ -2975,9 +2888,6 @@ msgstr ""
msgid "Approve"
msgstr ""
-msgid "Manage {tokenText}"
-msgstr ""
-
msgid "Bookmark project"
msgstr ""
@@ -3005,9 +2915,6 @@ msgstr ""
msgid "Danger Zone"
msgstr ""
-msgid "Create an ERC-20 token (optional)"
-msgstr ""
-
msgid "<0>Juicebox has had <1>multiple security audits1>, and has handled tens of thousands of ETH through its protocol.0><2>However, Juicebox is still experimental software. Although the Juicebox contract team have done their part to shape the smart contracts for public use and have tested the code thoroughly, the risk of exploits is never 0%.2><3>Due to their public nature, any exploits to the contracts may have irreversible consequences, including loss of ETH. Please use Juicebox with caution.3><4><5>Learn more about the risks.5>4>"
msgstr ""
@@ -3029,9 +2936,6 @@ msgstr ""
msgid "This Juicebox V3 project also has a project on Juicebox V1 and/or V2. The project owner is allowing you to migrate your legacy tokens (V1 or V2) for V3 tokens."
msgstr ""
-msgid "Untrack token"
-msgstr ""
-
msgid "How do I use this website?"
msgstr ""
@@ -3182,9 +3086,6 @@ msgstr ""
msgid "Collection details"
msgstr ""
-msgid "Mint this project's ERC-20 tokens to your wallet. Leave unchecked to have Juicebox track your token balance, saving gas on this transaction. You can claim your ERC-20 tokens later."
-msgstr ""
-
msgid "Request a feature."
msgstr ""
@@ -3401,9 +3302,6 @@ msgstr ""
msgid "Insufficient token balance"
msgstr ""
-msgid "No previous cycles"
-msgstr ""
-
msgid "From"
msgstr ""
@@ -3524,9 +3422,6 @@ msgstr ""
msgid "Prevent NFT overspending"
msgstr ""
-msgid "Pay this project to receive NFTs."
-msgstr ""
-
msgid "V1 project handle"
msgstr ""
@@ -3977,12 +3872,6 @@ msgstr ""
msgid "Redeem {tokensLabel} for ETH"
msgstr ""
-msgid "Projects can reserve a percentage of token issuance for the recipients set by the project owner."
-msgstr ""
-
-msgid "No payouts scheduled for this cycle."
-msgstr ""
-
msgid "Set metadata resolver for {projectTitle}\\'s project NFT"
msgstr ""
@@ -4244,9 +4133,6 @@ msgstr ""
msgid "Project NFT theme"
msgstr ""
-msgid "Project activity failed to load."
-msgstr ""
-
msgid "payout"
msgstr ""
@@ -4301,9 +4187,6 @@ msgstr ""
msgid "Edited payout"
msgstr ""
-msgid "<0/> claimable"
-msgstr ""
-
msgid "Pay out specific amounts of ETH to addresses and projects each cycle. Any remaining ETH will stay in the project for future cycles."
msgstr ""
@@ -4421,9 +4304,6 @@ msgstr ""
msgid "Upgrade your project's JBController and JBETHPaymentTerminal contracts. This upgrade is required to deploy a migration token (JBV3Token)."
msgstr ""
-msgid "Create a project payer address (optional)"
-msgstr ""
-
msgid "Edit reserved token recipients"
msgstr ""
@@ -4592,9 +4472,6 @@ msgstr ""
msgid "Review & Deploy"
msgstr ""
-msgid "Congratulations on launching your project! For help planning your next steps, share your project in the <0>JuiceboxDAO Discord0>. Optionally, you can also:"
-msgstr ""
-
msgid "Token beneficiary:"
msgstr ""
@@ -4697,9 +4574,6 @@ msgstr ""
msgid "Zero (no payouts)"
msgstr ""
-msgid "Set a project handle (optional)"
-msgstr ""
-
msgid "Error loading payments"
msgstr ""
@@ -4832,15 +4706,9 @@ msgstr ""
msgid "Payment notice"
msgstr ""
-msgid "{userOwnershipPercentage}% of total supply"
-msgstr ""
-
msgid "Make changes to your cycle settings and rules"
msgstr ""
-msgid "Amount:"
-msgstr ""
-
msgid "Reserved tokens"
msgstr ""
@@ -4928,9 +4796,6 @@ msgstr ""
msgid "No payout recipients"
msgstr ""
-msgid "You must understand and accept this project's notice."
-msgstr ""
-
msgid "V3"
msgstr ""
@@ -5012,9 +4877,6 @@ msgstr ""
msgid "Unlocked Cycles"
msgstr ""
-msgid "Add token"
-msgstr ""
-
msgid "No edits were made to tokens for this cycle."
msgstr ""
diff --git a/src/pages/v2/p/[projectId]/index.tsx b/src/pages/v2/p/[projectId]/index.tsx
index 13f0500f3c..c64b029617 100644
--- a/src/pages/v2/p/[projectId]/index.tsx
+++ b/src/pages/v2/p/[projectId]/index.tsx
@@ -1,7 +1,5 @@
-import Loading from 'components/Loading'
-import ProjectDashboard from 'components/ProjectDashboard'
import { AppWrapper, SEO } from 'components/common'
-import { FEATURE_FLAGS } from 'constants/featureFlags'
+import ProjectDashboard from 'components/v2v3/V2V3Project/ProjectDashboard'
import { PV_V2 } from 'constants/pv'
import { AnnouncementsProvider } from 'contexts/Announcements/AnnouncementsProvider'
import { V2V3ProjectPageProvider } from 'contexts/v2v3/V2V3ProjectPageProvider'
@@ -9,16 +7,12 @@ import { paginateDepleteProjectsQueryCall } from 'lib/apollo/paginateDepleteProj
import { loadCatalog } from 'locales/utils'
import { ProjectMetadata } from 'models/projectMetadata'
import { GetStaticPaths, GetStaticProps, InferGetStaticPropsType } from 'next'
-import React, { PropsWithChildren, Suspense, lazy } from 'react'
-import { featureFlagEnabled } from 'utils/featureFlags'
+import React, { PropsWithChildren } from 'react'
import { cidFromUrl, ipfsPublicGatewayUrl } from 'utils/ipfs'
import {
ProjectPageProps,
getProjectStaticProps,
} from 'utils/server/pages/props'
-const V2V3Dashboard = lazy(
- () => import('components/v2v3/V2V3Project/V2V3Dashboard'),
-)
export const getStaticPaths: GetStaticPaths = async () => {
if (process.env.BUILD_CACHE_V2_PROJECTS === 'true') {
@@ -85,14 +79,10 @@ const ProjectPageSEO = ({
/>
)
-export default function V2ProjectPage({
+export default function V2V3ProjectPage({
metadata,
projectId,
}: InferGetStaticPropsType) {
- const newProjectPageEnabled = featureFlagEnabled(
- FEATURE_FLAGS.NEW_PROJECT_PAGE,
- )
-
return (
<>
@@ -101,13 +91,7 @@ export default function V2ProjectPage({
- {newProjectPageEnabled ? (
-
- ) : (
- }>
-
-
- )}
+
diff --git a/src/utils/encodeJb721DelegateMetadata/encodeJb721DelegateMetadata.ts b/src/utils/encodeJb721DelegateMetadata/encodeJb721DelegateMetadata.ts
index c779ffb46c..94f707dd29 100644
--- a/src/utils/encodeJb721DelegateMetadata/encodeJb721DelegateMetadata.ts
+++ b/src/utils/encodeJb721DelegateMetadata/encodeJb721DelegateMetadata.ts
@@ -10,19 +10,19 @@ import { constants, utils } from 'ethers'
import { createMetadata } from 'juicebox-metadata-helper'
import { JB721DelegateVersion } from 'models/v2v3/contracts'
-export interface JB721DELAGATE_V3_PAY_METADATA {
+interface JB721DELAGATE_V3_PAY_METADATA {
tierIdsToMint: number[]
dontMint?: boolean
expectMintFromExtraFunds?: boolean
dontOverspend?: boolean
}
-export interface JB721DELAGATE_V3_1_PAY_METADATA {
+interface JB721DELAGATE_V3_1_PAY_METADATA {
tierIdsToMint: number[]
allowOverspending?: boolean
}
-export type JB721DELAGATE_V3_2_PAY_METADATA = JB721DELAGATE_V3_1_PAY_METADATA
+type JB721DELAGATE_V3_2_PAY_METADATA = JB721DELAGATE_V3_1_PAY_METADATA
export type PayMetadata =
| JB721DELAGATE_V3_PAY_METADATA
diff --git a/src/utils/featureFlags.ts b/src/utils/featureFlags.ts
index 74940b2d9d..9781a1277b 100644
--- a/src/utils/featureFlags.ts
+++ b/src/utils/featureFlags.ts
@@ -1,4 +1,3 @@
-import { FEATURE_FLAGS } from 'constants/featureFlags'
import { readNetwork } from 'constants/networks'
import { NetworkName } from 'models/networkName'
@@ -12,13 +11,7 @@ import { NetworkName } from 'models/networkName'
*/
const FEATURE_FLAG_DEFAULTS: {
[featureFlag: string]: { [networkName in NetworkName]?: boolean }
-} = {
- [FEATURE_FLAGS.NEW_PROJECT_PAGE]: {
- mainnet: true,
- goerli: true,
- localhost: true,
- },
-}
+} = {}
const featureFlagKey = (baseKey: string) => {
return `${baseKey}_${readNetwork.name}`
diff --git a/src/utils/notifications.ts b/src/utils/notifications.ts
index 1934dd97c1..331fa9db39 100644
--- a/src/utils/notifications.ts
+++ b/src/utils/notifications.ts
@@ -1,5 +1,5 @@
import { notification } from 'antd'
-import ErrorNotificationButtons from 'components/ErrorNotificationButtons'
+import ErrorNotificationButtons from 'components/buttons/ErrorNotificationButtons'
/**
* @param message Title of notification