Hey is a decentralized and permissionless social media app built with Lens Protocol 馃尶
at main 136 lines 5.0 kB view raw
1import NewPublication from "@/components/Composer/NewPublication"; 2import SuperFollow from "@/components/Shared/Account/SuperFollow"; 3import SwitchAccounts from "@/components/Shared/Account/SwitchAccounts"; 4import TopUp from "@/components/Shared/Account/TopUp"; 5import { useSignupStore } from "@/components/Shared/Auth/Signup"; 6import SuperJoin from "@/components/Shared/Group/SuperJoin"; 7import ReportAccount from "@/components/Shared/Modal/ReportAccount"; 8import ReportPost from "@/components/Shared/Modal/ReportPost"; 9import Subscribe from "@/components/Shared/Modal/Subscribe"; 10import { Modal } from "@/components/Shared/UI"; 11import { useAuthModalStore } from "@/store/non-persisted/modal/useAuthModalStore"; 12import { useFundModalStore } from "@/store/non-persisted/modal/useFundModalStore"; 13import { useNewPostModalStore } from "@/store/non-persisted/modal/useNewPostModalStore"; 14import { useProModalStore } from "@/store/non-persisted/modal/useProModalStore"; 15import { useReportAccountModalStore } from "@/store/non-persisted/modal/useReportAccountModalStore"; 16import { useReportPostModalStore } from "@/store/non-persisted/modal/useReportPostModalStore"; 17import { useSuperFollowModalStore } from "@/store/non-persisted/modal/useSuperFollowModalStore"; 18import { useSuperJoinModalStore } from "@/store/non-persisted/modal/useSuperJoinModalStore"; 19import { useSwitchAccountModalStore } from "@/store/non-persisted/modal/useSwitchAccountModalStore"; 20import { usePostAttachmentStore } from "@/store/non-persisted/post/usePostAttachmentStore"; 21import { usePostStore } from "@/store/non-persisted/post/usePostStore"; 22import Auth from "./Auth"; 23 24const GlobalModals = () => { 25 const { setShow: setShowSwitchAccountModal, show: showSwitchAccountModal } = 26 useSwitchAccountModalStore(); 27 const { show: showNewPostModal, setShow: setShowNewPostModal } = 28 useNewPostModalStore(); 29 const { editingPost, setEditingPost, setQuotedPost, setPostContent } = 30 usePostStore(); 31 const { setAttachments } = usePostAttachmentStore(); 32 const { authModalType, showAuthModal, setShowAuthModal } = 33 useAuthModalStore(); 34 const { 35 reportingAccount, 36 showReportAccountModal, 37 setShowReportAccountModal 38 } = useReportAccountModalStore(); 39 const { reportingPostId, showReportPostModal, setShowReportPostModal } = 40 useReportPostModalStore(); 41 const { showFundModal, setShowFundModal } = useFundModalStore(); 42 const { showSuperJoinModal, setShowSuperJoinModal, superJoiningGroup } = 43 useSuperJoinModalStore(); 44 const { 45 showSuperFollowModal, 46 setShowSuperFollowModal, 47 superFollowingAccount 48 } = useSuperFollowModalStore(); 49 const { show: showProModal, setShow: setShowProModal } = useProModalStore(); 50 const { screen: signupScreen } = useSignupStore(); 51 52 const authModalTitle = 53 authModalType === "signup" 54 ? signupScreen === "choose" 55 ? "Signup" 56 : null 57 : "Login"; 58 59 return ( 60 <> 61 <Modal 62 onClose={() => setShowReportPostModal(false, reportingPostId)} 63 show={showReportPostModal} 64 title="Report Post" 65 > 66 <ReportPost postId={reportingPostId} /> 67 </Modal> 68 <Modal 69 onClose={() => setShowReportAccountModal(false, reportingAccount)} 70 show={showReportAccountModal} 71 title="Report account" 72 > 73 <ReportAccount account={reportingAccount} /> 74 </Modal> 75 <Modal 76 onClose={() => setShowSwitchAccountModal(false)} 77 show={showSwitchAccountModal} 78 size="xs" 79 title="Switch Account" 80 > 81 <SwitchAccounts /> 82 </Modal> 83 <Modal 84 onClose={() => setShowAuthModal(false, authModalType)} 85 show={showAuthModal} 86 title={authModalTitle} 87 > 88 <Auth /> 89 </Modal> 90 <Modal 91 onClose={() => { 92 setShowNewPostModal(false); 93 setPostContent(""); 94 setEditingPost(undefined); 95 setQuotedPost(undefined); 96 setAttachments([]); 97 }} 98 show={showNewPostModal} 99 size="md" 100 title={editingPost ? "Edit post" : "Create post"} 101 > 102 <NewPublication className="!rounded-b-xl !rounded-t-none border-none" /> 103 </Modal> 104 <Modal 105 onClose={() => setShowFundModal({ showFundModal: false })} 106 show={showFundModal} 107 title="Top-up your account" 108 > 109 <TopUp /> 110 </Modal> 111 <Modal 112 onClose={() => setShowSuperJoinModal(false, superJoiningGroup)} 113 show={showSuperJoinModal} 114 title="Super Join" 115 > 116 <SuperJoin /> 117 </Modal> 118 <Modal 119 onClose={() => setShowSuperFollowModal(false, superFollowingAccount)} 120 show={showSuperFollowModal} 121 title="Super Follow" 122 > 123 <SuperFollow /> 124 </Modal> 125 <Modal 126 onClose={() => setShowProModal(false)} 127 show={showProModal} 128 size="md" 129 > 130 <Subscribe /> 131 </Modal> 132 </> 133 ); 134}; 135 136export default GlobalModals;