diff --git a/app/layouts/PublishMenu.tsx b/app/layouts/PublishMenu.tsx index dceae1b10..f1675515b 100644 --- a/app/layouts/PublishMenu.tsx +++ b/app/layouts/PublishMenu.tsx @@ -2,22 +2,31 @@ import { ChevronRight, Plus } from 'lucide-react'; import { useRouter } from 'next/navigation'; +import dynamic from 'next/dynamic'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faBullhorn, faFileSignature } from '@fortawesome/pro-light-svg-icons'; import { BaseMenu, BaseMenuItem } from '@/components/ui/form/BaseMenu'; import { useAuthenticatedAction } from '@/contexts/AuthModalContext'; import { SwipeableDrawer } from '@/components/ui/SwipeableDrawer'; -import { - OpenFundingOpportunityModal, - type FundingOpportunityCreationMethod, -} from '@/components/Funding/OpenFundingOpportunityModal'; -import { - OpenProposalModal, - type ProposalCreationMethod, -} from '@/components/Funding/OpenProposalModal'; +import type { FundingOpportunityCreationMethod } from '@/components/Funding/OpenFundingOpportunityModal'; +import type { ProposalCreationMethod } from '@/components/Funding/OpenProposalModal'; import { useScreenSize } from '@/hooks/useScreenSize'; import { useState } from 'react'; +const OpenFundingOpportunityModal = dynamic( + () => + import('@/components/Funding/OpenFundingOpportunityModal').then( + (mod) => mod.OpenFundingOpportunityModal + ), + { ssr: false } +); + +const OpenProposalModal = dynamic( + () => + import('@/components/Funding/OpenProposalModal').then((mod) => mod.OpenProposalModal), + { ssr: false } +); + interface PublishMenuProps { forceMinimize?: boolean; } diff --git a/components/Funding/OpenFundingOpportunityModal.tsx b/components/Funding/OpenFundingOpportunityModal.tsx index 2a1bd9143..ecba3f4c9 100644 --- a/components/Funding/OpenFundingOpportunityModal.tsx +++ b/components/Funding/OpenFundingOpportunityModal.tsx @@ -1,6 +1,7 @@ 'use client'; import { useEffect, useState, useTransition } from 'react'; +import dynamic from 'next/dynamic'; import Link from 'next/link'; import { Dialog } from '@headlessui/react'; import { @@ -19,9 +20,13 @@ import { Button, buttonVariants } from '@/components/ui/Button'; import Icon from '@/components/ui/icons/Icon'; import { ResearchCoinIcon } from '@/components/ui/icons/ResearchCoinIcon'; import AnimatedGlobe from '@/components/Globe/AnimatedGlobe'; -import { DocumentUploadStep } from '@/components/Funding/DocumentUploadStep'; import { cn } from '@/utils/styles'; +const DocumentUploadStep = dynamic( + () => import('@/components/Funding/DocumentUploadStep').then((mod) => mod.DocumentUploadStep), + { ssr: false } +); + export type FundingOpportunityCreationMethod = 'template' | 'upload' | 'blank'; interface OpenFundingOpportunityModalProps { diff --git a/components/Funding/OpenProposalModal.tsx b/components/Funding/OpenProposalModal.tsx index 55fdb2e20..1dede7d54 100644 --- a/components/Funding/OpenProposalModal.tsx +++ b/components/Funding/OpenProposalModal.tsx @@ -1,14 +1,19 @@ 'use client'; import { useEffect, useState } from 'react'; +import dynamic from 'next/dynamic'; import { Dialog } from '@headlessui/react'; import { ArrowLeft, ArrowRight, File, FileText, Globe, Lock, Upload, Users, X } from 'lucide-react'; import { BaseModal } from '@/components/ui/BaseModal'; import { Button } from '@/components/ui/Button'; import AnimatedProposal from '@/components/Proposal/AnimatedProposal'; -import { DocumentUploadStep } from '@/components/Funding/DocumentUploadStep'; import { cn } from '@/utils/styles'; +const DocumentUploadStep = dynamic( + () => import('@/components/Funding/DocumentUploadStep').then((mod) => mod.DocumentUploadStep), + { ssr: false } +); + export type ProposalCreationMethod = 'template' | 'upload' | 'blank'; interface OpenProposalModalProps { diff --git a/components/banners/VerificationBanner.tsx b/components/banners/VerificationBanner.tsx index 5ca461887..fd12754d1 100644 --- a/components/banners/VerificationBanner.tsx +++ b/components/banners/VerificationBanner.tsx @@ -27,11 +27,11 @@ export default function VerificationBanner({ onClose, onMenuClose }: Verificatio