{"version":3,"file":"js/407-726c146a77ad309a49b0.js","mappings":"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ACqF,EAAAA,EAAU,CAACE,QAAQ,UAAUzE,UAAU,WACtCd,EAAAA,cAAC82E,EAAAA,EAAQ,CAACh2E,UAAU,0BAI1Bd,EAAAA,cAAC80E,EAAY,CAACzqB,aAAclwC,EAAOgvC,eAQnD,CAEA,SAAS4tB,EAAU7rD,GAAe,IAAd,QAAEi+B,GAASj+B,EAC7B,OACElrB,EAAAA,cAAAA,EAAAA,SAAA,KACsB,UAAnBmpD,EAAQiK,QAAsBpzD,EAAAA,cAACmrD,EAAAA,QAAe,MAAK,IAChC,aAAnBhC,EAAQiK,QAAyBpzD,EAAAA,cAACg7C,EAAAA,QAAkB,MACjC,YAAnBmO,EAAQiK,QAAwBpzD,EAAAA,cAACo3C,EAAAA,QAAiB,MAGzD,C,4GC7xBA,MAAM4/B,EAAqB,CACzB,UACA,UACA,QACA,OACA,OACA,OACA,OACA,YACA,OACA,SACA,UACA,eACA,SACA,OACA,SACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,WACA,WACA,WACA,SACA,SACA,QACA,WACA,MACA,SACA,OACA,QACA,MACA,QACA,OACA,MACA,SACA,QACA,SACA,OACA,OACA,QACA,QACA,UACA,OACA,OACA,UACA,OACA,OACA,OACA,QACA,aACA,OACA,UACA,QACA,QACA,QACA,SACA,UACA,QACA,QACA,OACA,UACA,OACA,QACA,SACA,OACA,QACA,OACA,UACA,SACA,SACA,MACA,OACA,OACA,UACA,UACA,UACA,SACA,UACA,UACA,WACA,OACA,WACA,WACA,aACA,UACA,OACA,WACA,SACA,OACA,UACA,cACA,cACA,WACA,aACA,OACA,UACA,SACA,UACA,WACA,WACA,MACA,SACA,UACA,WACA,UACA,SACA,SACA,WACA,cACA,WACA,OACA,QACA,UACA,cACA,WACA,UACA,MACA,UACA,cACA,OACA,OACA,UACA,SACA,QACA,YACA,UACA,WACA,OACA,OACA,YACA,aACA,OACA,UACA,SACA,QACA,OACA,SACA,SACA,OACA,WACA,YACA,WACA,WACA,WACA,YACA,cACA,YACA,UACA,UACA,WACA,O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D,EAAKqkD,EAAsBD,GAC/B,OAAOE,EAAoBtkD,EAC5B,CACA,SAASqkD,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEpoD,EAAKioD,GAAM,CACpC,IAAIzkD,EAAI,IAAIuK,MAAM,uBAAyBk6C,EAAM,KAEjD,MADAzkD,EAAEgT,KAAO,mBACHhT,CACP,CACA,OAAOxD,EAAIioD,EACZ,CACAD,EAAel/B,KAAO,WACrB,OAAO/Y,OAAO+Y,KAAK9oB,EACpB,EACAgoD,EAAeK,QAAUH,EACzBI,EAAOC,QAAUP,EACjBA,EAAenkD,GAAK,K,qCC7MpB,MAAMisC,GAAMq0C,E,QAAAA,MAEZ,K,sWCPA,MAAM74B,EAAiB,CACrB,qBACA,sBACA,YACA,iBACA,aACA,YACA,cACA,cACA,gBACA,gBACA,gBACA,cACA,cACA,UACA,iBACA,WACA,gBACA,mBACA,iBACA,SACA,SACA,aACA,WACA,SACA,aACA,YACA,YACA,yBACA,oBACA,aACA,WACA,oBACA,aACA,WACA,WACA,UACA,gBACA,aACA,uBACA,aACA,iBACA,MACA,kBACA,UACA,QACA,sBACA,SACA,aACA,eACA,SACA,qBACA,UACA,iBACA,iBACA,YACA,UACA,kBACA,eACA,kBACA,yBACA,yBACA,0BACA,yBACA,yBACA,2BACA,uCACA,4BACA,+BACA,+BACA,gCACA,uBACA,wBACA,gCACA,2BACA,mCACA,qCACA,wBACA,qBACA,+BACA,sCACA,+BACA,6BACA,gCACA,iCACA,iCACA,8BACA,yCACA,mCACA,sDAGI84B,EAAa,CACjB,kBACA,iBACA,kBACA,oBACA,MACA,0BACA,gBACA,uBACA,qBACA,wBACA,mBACA,kBACA,gBACA,cACA,cACA,cACA,YACA,yBACA,0BACA,kBACA,SACA,aACA,aACA,gBACA,sBACA,aACA,qBACA,mBACA,uBACA,aACA,kBACA,iBACA,kBACA,eACA,cACA,kBACA,0BACA,gBACA,iBACA,qBACA,iBACA,gBACA,2BACA,+BACA,qBACA,oBACA,kBACA,uBACA,aACA,yBACA,yBACA,uBACA,oBACA,yBACA,4BACA,4BACA,oBACA,gBACA,yBACA,iBACA,yBACA,0BACA,kBACA,qBACA,YACA,8BACA,wBACA,qBACA,wBACA,uBACA,iBACA,uBACA,iBACA,iBACA,WACA,cACA,YACA,mBACA,gBACA,sBACA,4BACA,qBACA,0BACA,2BACA,kBACA,sCACA,4BACA,6BACA,YACA,wBACA,cACA,eACA,wBACA,mCACA,wBACA,sBACA,oBACA,kBACA,oBACA,wBACA,mBACA,uBACA,iBACA,YACA,wBACA,cACA,uBACA,uBACA,0BACA,sBACA,2BACA,uBACA,sBACA,sBACA,mBACA,gBACA,SACA,WACA,sBACA,kBACA,yBACA,yBACA,eACA,2BACA,oBACA,sBACA,sBACA,2BACA,6BACA,sBACA,eACA,yBACA,yBACA,iBACA,kBACA,oBACA,mBACA,mBACA,cACA,sBACA,mBACA,oBACA,gBACA,kCACA,oBACA,uBACA,0BACA,aACA,gBACA,uBACA,gBACA,oBACA,wBACA,kBACA,oBACA,uBACA,yBACA,yBACA,sBACA,uBACA,sBACA,wBACA,+BACA,kBACA,kBACA,qBACA,mBACA,oBACA,mBACA,qBACA,qBACA,gBACA,8BACA,kBACA,kBACA,kBACA,yBACA,iBACA,eACA,yBACA,sBACA,iBACA,oBACA,yBACA,iBACA,yBACA,2BACA,qBACA,yBACA,0BACA,uBACA,0BACA,0BACA,sBACA,oBACA,iCACA,eACA,YACA,YACA,yBACA,2BACA,mBACA,oBACA,qBACA,0BACA,kBACA,qBACA,mCACA,sBACA,qBACA,oBACA,iBACA,yBACA,iCACA,qBACA,kBACA,yBACA,oBACA,+BACA,gBACA,0BACA,sBACA,cACA,qBACA,sBACA,uBACA,eACA,qBACA,oBACA,4BACA,cACA,qBACA,gCACA,qBACA,kBACA,iBACA,wBACA,uBACA,wBACA,gBACA,oBACA,kBACA,kBACA,eACA,yBACA,qBACA,qBACA,yBACA,6BACA,2BACA,iBACA,iBACA,sBACA,qBACA,mBACA,oBACA,sBACA,kBACA,eACA,oBACA,mBACA,qBACA,oBACA,2BACA,kBACA,mBACA,6BACA,yBACA,wBACA,8BACA,uBACA,gCACA,8BACA,yBACA,eACA,kBACA,oBACA,yBACA,8BACA,0BACA,2BACA,oBACA,2BACA,qBACA,qBACA,uBACA,qBACA,kBACA,UACA,+BACA,yBACA,kBACA,oCACA,4BACA,oBACA,4BACA,mCACA,4BACA,qBACA,+BACA,4BACA,wBACA,iBACA,4BACA,oBACA,uBACA,4BACA,8BACA,yBACA,qBACA,+BACA,qBACA,kCACA,iCACA,mBACA,wBACA,uBACA,2BACA,kCACA,iBACA,0BACA,kBACA,iBACA,iBACA,eACA,cACA,cACA,eACA,mBACA,oBACA,qBACA,eACA,mBACA,mBACA,oBACA,gBACA,uBACA,uBACA,gBACA,mBACA,qCACA,gCACA,4BACA,sBACA,kBACA,yBACA,qBACA,0BACA,sBACA,oBACA,+BAGIxrB,EAAY,CAChB,CAAElvD,MAAO,eACT,CAAEA,MAAO,WACT,CAAEA,MAAO,WACT,CAAEA,MAAO,WACT,CAAEA,MAAO,UACT,CAAEA,MAAO,uBACT,CAAEA,MAAO,aACT,CAAEA,MAAO,WACT,CAAEA,MAAO,aACT,CAAEA,MAAO,WACT,CAAEA,MAAO,cACT,CAAEA,MAAO,WACT,CAAEA,MAAO,WACT,CAAEA,MAAO,cACT,CAAEA,MAAO,YACT,CAAEA,MAAO,WACT,CAAEA,MAAO,WACT,CAAEA,MAAO,UACT,CAAEA,MAAO,SACT,CAAEA,MAAO,UACT,CAAEA,MAAO,WACT,CAAEA,MAAO,0BACT,CAAEA,MAAO,YACT,CAAEA,MAAO,UACT,CAAEA,MAAO,UACT,CAAEA,MAAO,YACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,WACT,CAAEA,MAAO,cACT,CAAEA,MAAO,YACT,CAAEA,MAAO,YACT,CAAEA,MAAO,UACT,CAAEA,MAAO,4BACT,CAAEA,MAAO,QACT,CAAEA,MAAO,SACT,CAAEA,MAAO,SACT,CAAEA,MAAO,YACT,CAAEA,MAAO,WACT,CAAEA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AAEA,MAAO,cACT,CAAEA,MAAO,WACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,aACT,CAAEA,MAAO,WACT,CAAEA,MAAO,SACT,CAAEA,MAAO,UACT,CAAEA,MAAO,aAGL85B,EAAa8nB,EAAetrD,KAAK0J,IAAK,CAC1CA,QACAtH,MAAOsH,MAGH25B,EAAS+gD,EAAWpkF,KAAK0J,IAAK,CAClCA,QACAtH,MAAOsH,MAGHosC,EAAgB8iB,EAAU54D,KAAKqkF,GAAMA,EAAE36E,QAEvC+d,EAAO,CACX,CAAE/d,MAAO,iBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,oBACT,CAAEA,MAAO,cACT,CAAEA,MAAO,aAGLslE,EAAS,CACb,CAAEtlE,MAAO,QACT,CAAEA,MAAO,aACT,CAAEA,MAAO,YACT,CAAEA,MAAO,WACT,CAAEA,MAAO,UACT,CAAEA,MAAO,aAGLulE,EAAU,CACd,CAAEvlE,MAAO,qBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,OACT,CAAEA,MAAO,OACT,CAAEA,MAAO,mBAGLwqE,EAAS,CACb,2BACA,8BACA,2BACA,gCACA,8BACA,yBACA,oBACA,uBACA,4BACA,yBACA,+BACA,8BACA,+BACA,8BACA,wBACA,8BACA,uBACA,4BACA,iCACA,4BACA,gCACA,sBACA,wBACA,gCACA,yBACA,kCACA,6BACA,+BACA,qCACA,wCACA,6CACA,sBACA,4BACA,2BACA,8BACA,gCACA,0BACA,oCACA,gCACA,4BACA,+BACA,4BACA,wBACA,iCACA,yBACA,8BACA,yBACA,0BACA,wBACA,+BACA,wBACA,6BACA,4BACA,mCACA,wBACA,2BACA,2BACA,4BACA,qBACA,yBACA,qBACA,wBACA,sBACA,0BACA,4BACA,4BACA,6BACA,4BACA,2BACA,qCACA,sBACA,gCACA,yBACA,+BACA,2BACA,0BACA,yBACA,8BACA,8BACA,4BACA,6BACA,+BACA,2BACA,2BACA,0BACA,iCACA,iCACA,iCACA,sCACA,8BACA,4BACA,0BACA,8BACA,4BACA,4BACA,6BACA,6BACA,qDACA,mDACA,+BACA,sCACA,wBACA,wBACA,yBACA,iBACA,8BACA,iCACA,wCACA,+BACA,sCACA,iCACA,gCACA,6BACA,0BACA,+BACA,6BACA,8BACA,qBACA,8BACA,mCACA,sCACA,wBACA,mCACA,8BACA,+BACA,4BACA,uBACA,yCACA,oCACA,qCACA,2BACA,6BACA,uBACA,yCACA,0BACA,8BACA,mCACA,yBACA,+BACA,4BACA,4BACA,8BACA,mCACA,gCACA,kCACA,iCACA,8BACA,+BACA,gCACA,2BACA,6BACA,yBACA,2BACA,yBACA,iDACA,kDACA,+CACA,gDACA,yBACA,8CACA,0BACA,qCACA,mCACA,wBACA,6BACA,6BACA,4BACA,yBACA,6BACA,wB,2GCh1Ba,SAASoQ,IACtB,OAAOhlF,EAAAA,cAACoS,EAAAA,EAAK,CAAC4kC,GAAG,UAAS,oBAC5B,C,meCoCe,SAASiuC,EAAMnlF,GAe1B,IAf2B,MAC7B4rD,EAAK,OACLvnD,EAAM,KACNuD,EAAI,SACJw9E,EAAQ,iBACRC,EAAgB,MAChB5lD,EAAK,WACL3qB,EAAU,QACVjI,EAAO,QACPgQ,EAAO,WACP9H,EAAU,MACV7L,EAAK,SACL09D,EAAQ,WACR0e,EAAU,QACV/hF,GACDvD,EACC,MAAOc,EAAOiX,IAAYjV,EAAAA,EAAAA,UAASuiF,EAAiBl4E,MAC7CmE,EAASC,IAAczO,EAAAA,EAAAA,WAAS,GAEvC,OACE5C,EAAAA,cAAC+gC,EAAAA,EAAK,CAACjgC,UAAU,sBACdqkF,GACCnlF,EAAAA,cAAC0F,EAAAA,EAAK,CAAC4M,MAAM,SACXtS,EAAAA,cAACoS,EAAAA,EAAK,CAACC,MAAO,EAAGvR,UAAU,sBACxBokF,EAAS10E,WAAW20E,EAAiBn4E,KAAKhM,MAE7ChB,EAAAA,cAACyX,EAAa,CACZ4tE,UAAW35B,GAAShkD,EAAO,EAC3B49E,WAAYJ,EAAS10E,WAAW20E,EAAiBn4E,KAAKzI,GACtDlB,QAASA,EACTkiF,eACEL,EAAS10E,WAAW20E,EAAiBn4E,KAAKsoB,kBAMlDt1B,EAAAA,cAACu+C,EA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","sources":["webpack://app/./app/javascript/stories/MainContainer.js","webpack://app/./app/javascript/stories/Breadcrumbs.js","webpack://app/./app/javascript/stories/StartupMembers.js","webpack://app/./app/javascript/stories/StartupHeader.js","webpack://app/./app/javascript/stories/ChatDocumentUpload.js","webpack://app/./app/javascript/stories/OutcomeValidation.js","webpack://app/./app/javascript/stories/TextCreationArea.js","webpack://app/./app/javascript/stories/SVGSliderLoader.js","webpack://app/./app/javascript/stories/RoadmapDetails.js","webpack://app/./app/javascript/stories/RoadmapTimeline.js","webpack://app/./app/javascript/stories/PackageSelector.js","webpack://app/./app/javascript/stories/Modal.js","webpack://app/./app/javascript/stories/TOC.js","webpack://app/./app/javascript/stories/GuideEditor.js","webpack://app/./app/javascript/stories/DocumentUpload.js","webpack://app/./app/javascript/stories/TaskBoardsManager.js","webpack://app/./app/javascript/stories/SubcategoryFeedback.js","webpack://app/./app/javascript/stories/StartupBody.js","webpack://app/./app/javascript/stories/FullFeaturedKanban.js","webpack://app/./app/javascript/stories/Gantt.js","webpack://app/./app/javascript/components/Startups/StartupShow.js","webpack://app/./app/javascript/components/Pages/AIValidationPage.js","webpack://app/./app/javascript/components/Onboarding/About.js","webpack://app/./app/javascript/components/Startups/MeetingConfirmation.js","webpack://app/./app/javascript/components/Lib/TimeBasedProgressBar.js","webpack://app/./app/javascript/stories/EditorContentDisplay.js","webpack://app/./app/javascript/components/Onboarding/validations.js","webpack://app/./app/javascript/components/Startups/ContactMessage.js","webpack://app/./app/javascript/components/Dashbaord/Dashboard.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Messages.js","webpack://app/./app/javascript/components/Profile/UserProfile.js","webpack://app/./app/javascript/components/Lib/TagsInput.js","webpack://app/./app/javascript/components/Startups/ProgramUpdateApproval.js","webpack://app/./app/javascript/components/Startups/DiffDisplay.js","webpack://app/./app/javascript/components/Startups/StartupConfirmation.js","webpack://app/./app/javascript/components/Onboarding/Details.js","webpack://app/./app/javascript/components/Authentication/CreatePasswordForInviteUser.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Forums/ModerationHistory.js","webpack://app/./app/javascript/stories/Logo.js","webpack://app/./app/javascript/components/Lib/environment.js","webpack://app/./app/javascript/components/Profile/UserInfo.js","webpack://app/./app/javascript/components/Authentication/ChangePasswordForm.js","webpack://app/./app/javascript/components/Lib/DropboxOperations.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Forums/ModerationActivity.js","webpack://app/./app/javascript/components/Lib/Notification.js","webpack://app/./app/javascript/stores/useFilterStore.js","webpack://app/./app/javascript/stories/ContainerButton.js","webpack://app/./app/javascript/stories/Layout.js","webpack://app/./app/javascript/stories/SearchBar.js","webpack://app/./app/javascript/stories/Header.js","webpack://app/./app/javascript/stories/HeaderRightTools.js","webpack://app/./app/javascript/stories/NotificationDrawer.js","webpack://app/./app/javascript/components/Lib/HeaderAndSidebar.js","webpack://app/./app/javascript/components/Startups/Meeting.js","webpack://app/./app/javascript/components/Authentication/SignInModal.js","webpack://app/./app/javascript/components/Profile/Pages/Profile.js","webpack://app/./app/javascript/components/Lib/api.js","webpack://app/./app/javascript/components/Forums/Pages/TopicsList.js","webpack://app/./app/javascript/components/Lib/Layout.js","webpack://app/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Forums/Topics.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Forums/ModerationUsers.js","webpack://app/./app/javascript/components/Startups/EditStartup.js","webpack://app/./app/javascript/components/Lib/QueryClientProvider.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Resources.js","webpack://app/./app/javascript/components/Lib/UserContext.js","webpack://app/./app/javascript/components/Authentication/JoinWaitlist.js","webpack://app/./app/javascript/stories/FeatureButton.js","webpack://app/./app/javascript/components/Lib/EmailForwarding.js","webpack://app/./app/javascript/components/Profile/Pages/Settings.js","webpack://app/./app/javascript/components/Pages/UsersProfilePage.js","webpack://app/./app/javascript/components/Forums/Pages/TopicsShow.js","webpack://app/./app/javascript/stores/userStore.js","webpack://app/./app/javascript/components/Startups/Timeline.js","webpack://app/./app/javascript/stories/StartupCreate.js","webpack://app/./app/javascript/components/Startups/CreateStartup.js","webpack://app/./app/javascript/components/Authentication/CorporateSignUpForm.js","webpack://app/./app/javascript/components/Startups/ManageRequestToJoinTeam.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Members.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Calender.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/activities.js","webpack://app/./app/javascript/stores/useLayoutStore.js","webpack://app/./app/javascript/components/Lib/HashLayout.js","webpack://app/./app/javascript/stories/FeatureCard.js","webpack://app/./app/javascript/components/Startups/OpeningRoles.js","webpack://app/./app/javascript/components/Lib/Language.js","webpack://app/./app/javascript/components/Authentication/ProfessorSignUpForm.js","webpack://app/./app/javascript/components/Authentication/LinkedInButton.js","webpack://app/./app/javascript/components/Authentication/UpdatePasswordForm.js","webpack://app/./app/javascript/components/Lib/CustomNavLink.js","webpack://app/./app/javascript/components/Profile/ProfileNavbar.js","webpack://app/./app/javascript/components/Lib/FilesPickerAndUploader.js","webpack://app/./app/javascript/components/Authentication/LoginRegisterForm.js","webpack://app/./app/javascript/components/Onboarding/Onboarding.js","webpack://app/./app/javascript/stories/UserButton.js","webpack://app/./app/javascript/stories/UserHeader.js","webpack://app/./app/javascript/stories/StartupCards.js","webpack://app/./app/javascript/stories/SearchTags.js","webpack://app/./app/javascript/stories/StartupFooter.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Startups.js","webpack://app/./app/javascript/components/Authentication/SignUpModal.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/OwnStartups.js","webpack://app/./app/javascript/stories/SidebarAction.js","webpack://app/./app/javascript/components/Pages/DashboardPage.js","webpack://app/./app/javascript/components/Lib/Markdown.js","webpack://app/./app/javascript/components/Startups/StartupChat.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Forums.js","webpack://app/./app/javascript/components/Lib/profanityCleaner.js","webpack://app/./app/javascript/components/Pages/AuthenticationPage.js","webpack://app/./app/javascript/components/Lib/GoogleDriveOperations.js","webpack://app/./app/javascript/components/Profile/Pages/MyStuff.js","webpack://app/./app/javascript/components/Startups/Stat.js","webpack://app/./app/javascript/components/Pages/OnboardingPage.js","webpack://app/./app/javascript/stories/StartupButton.js","webpack://app/./app/javascript/stories/NavLinks.js","webpack://app/./app/javascript/stories/PitchComponent.js","webpack://app/./app/javascript/stories/MicrosoftSignInButton.js","webpack://app/./app/javascript/stories/Sidebar.js","webpack://app/./app/javascript/components/Lib/SideBar.js","webpack://app/./app/javascript/components/Authentication/GoogleButton.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Workspace.js","webpack://app/./app/javascript/components/Startups/InviteMember.js","webpack://app/./app/javascript/components/Startups/SaveComponent.js","webpack://app/./app/javascript/components/Startups/Funding.js","webpack://app/./app/javascript/components/Startups/EditorJsDiffTester.js","webpack://app/./app/javascript/components/Startups/RoadmapPDFGenerator.js","webpack://app/./app/javascript/components/Pages/StartupPage.js","webpack://app/./app/javascript/components/ sync ^\\.\\/.*$","webpack://app/./app/javascript/channels/consumer.js","webpack://app/./app/javascript/components/Onboarding/data.js","webpack://app/./app/javascript/components/Profile/Pages/Notifications.js","webpack://app/./app/javascript/components/Startups/TextEditor.js","webpack://app/./app/javascript/components/Startups/AiChat.js","webpack://app/./app/javascript/components/Onboarding/Category.js","webpack://app/./app/javascript/components/Dashbaord/DashboardPages/Card.js","webpack://app/./app/javascript/components/Startups/EditorJsDiff.js","webpack://app/./app/javascript/stores/startupStore.js","webpack://app/./app/javascript/components/Pages/ChannelPage.js","webpack://app/./app/javascript/components/Pages/ProfilePage.js","webpack://app/./app/javascript/components/Profile/Profile.js","webpack://app/./app/javascript/components/Lib/FilesDisplay.js"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\n\nconst MainContainerWrapper = styled.div`\n width: 100%;\n // max-width: 1200px;\n margin: 0 auto; \n display: flex;\n flex-direction: column;\n gap: 24px;\n`;\n\nconst MainContainer = ({ children }) => {\n return (\n \n {children} {/* Render all the children passed to MainContainer */}\n \n );\n};\n\nexport default MainContainer;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst BreadcrumbsList = styled.ol`\n display: flex;\n align-items: center;\n list-style: none;\n padding: 0;\n margin: 0;\n`;\n\nconst BreadcrumbItem = styled.li`\n display: inline-flex;\n align-items: center;\n font-size: var(--font-size-body-1);\n\n &.active {\n font-weight: var(--font-weight-h4);\n color: var(--color-background-main);\n white-space: nowrap;\n }\n\n &.active a {\n color: var(--color-button-accent);\n }\n`;\n\nconst BreadcrumbLink = styled.a`\n color: #6c6c6c;\n text-decoration: none;\n transition: color 0.2s ease-in;\n\n &:hover,\n &:focus {\n color: #6c45e7;\n outline: none;\n }\n`;\n\nconst BreadcrumbSeparator = styled.svg`\n margin: 0 8px;\n color: #ccc;\n width: 16px;\n height: 16px;\n`;\n\nconst Breadcrumbs = ({ links }) => {\n return (\n \n {links.map((link, index) => (\n \n {link.active ? (\n {link.name}\n ) : (\n <>\n \n {link.name}\n \n {index < links.length - 1 && (\n \n \n \n )}\n \n )}\n \n ))}\n \n );\n};\n\nexport default Breadcrumbs;\n","import React, { memo, useState, useRef } from \"react\";\nimport styled from \"styled-components\";\nimport ChatComponent from \"../components/Startups/StartupChat\";\nimport useStartupStore from \"../stores/startupStore\";\nimport ManageRequestToJoinTeam from \"../components/Startups/ManageRequestToJoinTeam\";\nimport Meeting from \"../components/Startups/Meeting\";\nimport { InviteMembers } from \"../components/Startups/InviteMember\";\nimport { useTranslation } from \"react-i18next\";\nimport FeatureButton from \"./FeatureButton\";\nimport { ActionIcon, Group, UnstyledButton, Button } from \"@mantine/core\";\nimport { IconMessage, IconX } from \"@tabler/icons-react\";\n\nconst MemoChatComponent = memo(ChatComponent);\n\n// Dashboard Card Container\nconst DashboardCard = styled.div`\n height: 100%;\n border-radius: 8px;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\n// Compact Members List\nconst MembersList = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(32px, auto));\n gap: 6px;\n align-items: center;\n justify-content: start;\n`;\n\n// Smaller Avatar Styles\nconst MemberAvatar = styled.img`\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: #f0f0f0;\n`;\n\nconst InitialAvatar = styled.div`\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: #f0f0f0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n color: #333;\n font-size: 12px;\n`;\n\n// Compact Dropdown Menu with Close Button\nconst DropdownMenu = styled.div`\n position: absolute;\n top: 50px;\n left: 0;\n padding: 12px 16px;\n margin: 0;\n border: 1px solid #ddd;\n border-radius: 4px;\n background-color: white;\n box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 100;\n min-width: 200px;\n`;\n\nconst DropdownHeader = styled.div`\n display: flex;\n justify-content: flex-end;\n align-items: center;\n`;\n\nconst DropdownTitle = styled.span`\n font-weight: 500;\n font-size: 14px;\n`;\n\nconst DropdownContent = styled.ul`\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\n\n// Create a context to manage modal state\nconst ModalContext = React.createContext();\n\nconst ModalProvider = ({ children }) => {\n const [isAnyModalOpen, setIsAnyModalOpen] = useState(false);\n \n const openModal = () => setIsAnyModalOpen(true);\n const closeModal = () => setIsAnyModalOpen(false);\n \n return (\n \n {children}\n \n );\n};\n\n// Custom hook to access modal context\nconst useModalContext = () => React.useContext(ModalContext);\n\nconst StartupMembers = () => {\n const { t } = useTranslation();\n const { isOwner, isMember, members, slug } = useStartupStore((state) => ({\n slug: state.slug,\n isOwner: state.isOwner,\n isMember: state.isMember,\n members: state.members,\n }));\n\n return (\n \n \n \n );\n};\n\nconst StartupMembersContent = ({ isOwner, isMember, members, slug, t }) => {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [openChat, setOpenChat] = useState(false);\n const dropdownRef = useRef(null);\n\n const toggleDropdown = () => setIsDropdownOpen((prev) => !prev);\n const closeDropdown = () => setIsDropdownOpen(false);\n\n // Wrapper component to intercept clicks on modal triggers\n const ModalTrigger = ({ children, onClick }) => {\n const { openModal } = useModalContext();\n \n const handleClick = (e) => {\n openModal();\n if (onClick) onClick(e);\n // Don't close the dropdown automatically\n };\n \n return React.cloneElement(children, { onClick: handleClick });\n };\n\n return (\n \n \n {members.map((member, index) => {\n const initials = `${member.first_name ? member.first_name[0] : \"\"}${\n member.last_name ? member.last_name[0] : \"\"\n }`;\n return (\n \n {member.avatar_url ? (\n \n ) : (\n {initials}\n )}\n \n );\n })}\n {(isMember || isOwner) && members.length < 10 && (\n \n \n \n )}\n \n\n
\n \n {isDropdownOpen && (\n \n \n \n \n \n \n \n \n {!(isMember || isOwner) ? (\n <>\n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n ) : (\n <>\n
  • \n {\n setOpenChat(true);\n closeDropdown(); // Close dropdown when chat opens\n }}\n >\n \n \n \n \n

    \n {t(\"startups_page.members.open_chat\")}\n

    \n
    \n \n
  • \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n )}\n
    \n
    \n )}\n
    \n\n {(isMember || isOwner) && openChat && (\n \n )}\n
    \n );\n};\n\nexport default StartupMembers;","import React, { memo, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport locationIcon from \"./assets/location.svg\";\nimport ideaIcon from \"./assets/idea.svg\";\nimport domainIcon from \"./assets/domain.svg\";\nimport editIcon from \"./assets/edit.svg\";\nimport shareIcon from \"./assets/share.svg\";\nimport FeatureButton from \"./FeatureButton\";\nimport { handleFollowUnfollow } from \"../components/Startups/StartupShow\";\nimport ContainerButton from \"./ContainerButton\";\nimport useStartupStore from \"../stores/startupStore\";\nimport ContactMessage from \"../components/Startups/ContactMessage\";\nimport Breadcrumbs from \"./Breadcrumbs\";\nimport fetchApi from \"../components/Lib/api\";\nimport { useTranslation } from \"react-i18next\";\nimport MenuButton from \"./Menu\";\nimport StartupMembers from \"./StartupMembers\";\nimport useLayoutStore from \"../stores/useLayoutStore\";\nimport { Indicator } from \"@mantine/core\";\nimport { IconPencil } from \"@tabler/icons-react\";\n\nconst MemoContactMessage = memo(ContactMessage);\n\nconst StartupHeaderContainer = styled.div`\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n grid-gap: 20px;\n align-items: flex-start;\n border-radius: 8px;\n\n @media (max-width: 1024px) {\n grid-gap: 10px;\n }\n`;\n\nconst StartupWrapper = styled.div`\n grid-column: 1 / span 6;\n display: flex;\n`;\n\nconst StartupImage = styled.img`\n width: 110px;\n height: 110px;\n border-radius: 6px;\n object-fit: cover;\n margin-right: 16px;\n cursor: pointer;\n border: 1px solid var(--color-container-card-default);\n`;\n\nconst StartupContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 10px;\n margin-left: 8px;\n align-items: flex-start;\n`;\n\nconst StartupTitle = styled.h2`\n font-size: var(--font-size-h3);\n font-weight: var(--font-weight-body-2);\n color: var(--color-background-card);\n line-height: 26px;\n`;\n\nconst StartupDescription = styled.span`\n text-align: left;\n margin-right: 8px;\n color: var(--color-background-main);\n`;\n\nconst ReadMoreButton = styled.button`\n color: var(--color-button-accent);\n font-weight: var(--font-weight-body-3);\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: inline;\n`;\n\nconst StartupInfoHead = styled.div`\n grid-column: 7 / span 3;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: 12px;\n`;\n\nconst InfoItem = styled.div`\n display: flex;\n align-items: center;\n font-size: var(--font-size-body-2);\n color: var(--color-background-main);\n gap: 12px;\n`;\n\nconst InfoItemLeft = styled.div`\n display: flex;\n gap: 8px;\n font-size: var(--font-size-body-4);\n color: var(--color-background-card);\n`;\n\nconst ActionButtons = styled.div`\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n`;\n\nconst TeamButton = styled.div`\n grid-column: 10 / span 3;\n height: 100%;\n`;\n\nconst ActionButton = styled.button`\n background-color: var(--color-container-card-default);\n border: none;\n border-radius: 4px;\n padding: 7px;\n cursor: pointer;\n\n img {\n width: 15px;\n height: 15px;\n }\n`;\n\nconst StartupHeader = () => {\n const { isToggle } = useLayoutStore();\n const { t } = useTranslation();\n\n const { startup, slug, isOwner, role, isMember, isFollowing } =\n useStartupStore((state) => ({\n startup: state.startup,\n role: state.role,\n isFollowing: state.isFollowing,\n startupImage: state.startupImage,\n slug: state.slug,\n isOwner: state.isOwner,\n isMember: state.isMember,\n }));\n\n const [isCollapsed, setIsCollapsed] = useState(true);\n const [follow, setFollow] = useState(isFollowing);\n const fileInputRef = useRef(null);\n const [startupImage, setStartupImage] = useState(null);\n\n const toggleCollapse = () => {\n setIsCollapsed(!isCollapsed);\n };\n\n const truncatedDescription = isCollapsed\n ? startup.description.slice(0, 100) + \"...\"\n : startup.description;\n\n // Handle image click event\n const handleImageClick = () => {\n if (isMember || isOwner) {\n fileInputRef.current.click();\n }\n };\n\n const handleFileChange = async (event) => {\n // Handle file changes here\n const selectedFile = event.target.files[0];\n console.log(selectedFile);\n setStartupImage(URL.createObjectURL(selectedFile));\n\n try {\n const formData = new FormData();\n formData.append(`startup_entity[image]`, selectedFile);\n const response = await fetchApi(\n `/startup_entities/${slug}`,\n \"PATCH\",\n formData,\n true\n );\n\n if (response.ok) {\n console.log(\"Success:\", response.user);\n\n const responseData = await response.json();\n console.log(\"Success:\", responseData);\n } else {\n console.error(\"HTTP error! Failed to submit form\");\n }\n } catch (error) {\n console.error(\"Error:\", error.message);\n }\n };\n\n return (\n <>\n \n \n \n \n }\n size={30}\n onClick={handleImageClick}\n >\n \n \n\n \n {startup.name}\n {startup.description.length > 100 ? (\n
    \n {\" \"}\n {truncatedDescription}\n \n {isCollapsed ? \"Read more\" : \"Read less\"}\n \n
    \n ) : (\n {startup.description}\n )}\n\n \n {(isOwner || role < 1) && (\n \n \n \"Edit\"\n \n \n )}\n {\n navigator.clipboard.writeText(window.location.href);\n alert(\"Link copied to clipboard!\");\n }}\n style={{ cursor: \"pointer\" }}\n >\n \"Share\"\n \n \n
    \n
    \n\n \n \n \n \"Location\"\n {t(\"startups_page.location\")}\n \n {`${startup.city} ${startup.country}`}\n \n \n \n \"Idea\"\n {t(\"startups_page.idea\")}\n \n {startup.stage}\n \n \n \n \"Domain\"\n {t(\"startups_page.domain\")}\n \n {startup.industry}\n \n
    \n \n setFollow(await handleFollowUnfollow(follow, slug))\n }\n />\n \n
    \n
    \n\n \n \n \n
    \n \n );\n};\n\nexport default StartupHeader;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { Loader } from \"@mantine/core\";\nimport useStartupStore from \"../stores/startupStore\";\nimport useUserStore from \"../stores/userStore\";\nimport MarkdownIt from \"markdown-it\";\nimport config from '../components/Lib/environment'\nimport styled from 'styled-components';\n\nconst ChatBubble = styled.div`\n /* Container styles from Tailwind: \"max-w-[70%] px-4 py-2 rounded-xl border border-gray-200 bg-white\" */\n max-width: 70%;\n padding: 0.5rem 1rem; /* py-2 (0.5rem top & bottom), px-4 (1rem left & right) */\n border-radius: 0.75rem; /* rounded-xl */\n border: 1px solid #e5e7eb; /* border-gray-200 */\n background-color: #ffffff; /* bg-white */\n overflow-wrap: break-word;\n\n /* Paragraph styling */\n p {\n margin: 0.5em 0;\n color: #333;\n }\n\n /* Blockquote styling */\n blockquote {\n margin: 0.5em 0;\n padding: 0.5em 1em;\n background-color: #f9f9f9;\n border-left: 4px solid #ccc;\n color: #555;\n font-style: italic;\n }\n\n /* Code block styling */\n pre {\n background: #f5f5f5;\n color: #444;\n padding: 10px;\n border-radius: 5px;\n font-size: 0.8rem;\n overflow-x: auto;\n font-family: 'Courier New', Courier, monospace;\n }\n\n /* Inline code styling */\n code {\n background: #f5f5f5;\n padding: 2px 4px;\n border-radius: 3px;\n font-family: 'Courier New', Courier, monospace;\n color: #444;\n }\n\n /* List styling */\n ul,\n ol {\n margin: 0.5em 0;\n padding-left: 20px;\n color: #333;\n }\n\n li {\n margin-bottom: 5px;\n line-height: 1.5;\n }\n\n /* Table styling */\n table {\n width: 100%;\n border-collapse: collapse;\n margin: 10px 0;\n font-size: 0.9rem;\n color: #333;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n color: #000;\n text-decoration: underline;\n }\n\n th,\n td {\n padding: 8px 12px;\n border: 1px solid #e5e7eb;\n text-align: left;\n }\n\n th {\n background-color: #f1f1f1;\n font-weight: bold;\n }\n\n /* Link styling */\n a {\n color: #007bff;\n text-decoration: underline;\n cursor: pointer;\n\n &:hover {\n color: #0056b3;\n }\n }\n\n /* Image styling */\n img {\n max-width: 100%;\n border-radius: 5px;\n margin: 10px 0;\n display: block;\n }\n\n /* Horizontal rule styling */\n hr {\n border: 0;\n border-top: 1px solid #ddd;\n margin: 1em 0;\n }\n`;\n\n\nconst ChatDocumentUpload = () => {\n const [chats, setChats] = useState([]);\n const [userMessage, setUserMessage] = useState(\"\");\n const [chatLoading, setChatLoading] = useState(false);\n const [isExpanded, setIsExpanded] = useState(true);\n const mdParser = new MarkdownIt();\n const chatMessagesRef = useRef(null);\n const chatInputRef = useRef(null);\n\n // Assuming the user store returns an object with a `user` property.\n const user = useUserStore((state) => state.user);\n const {\n content,\n roadmapId,\n selectedProgram,\n setChats: updateStoreChats,\n } = useStartupStore((state) => ({\n content: state.content,\n selectedProgram: state.selectedProgram,\n roadmapId: state.roadmapId,\n setChats: state.setChats,\n }));\n\n const pageId = selectedProgram.cid;\n const index = selectedProgram.sid;\n\n useEffect(() => {\n if (content[pageId]?.[index]?.chats) {\n setChats(content[pageId][index].chats);\n } else {\n setChats([]);\n }\n }, [pageId, index, content]);\n\n const fetchAIResponseStream = async (userId, projectId, userMessage) => {\n console.log(\n content\n );\n try {\n const response = await fetch(config.chatUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n user_id: \"1\",\n project_id: projectId,\n roadmap_id: roadmapId,\n message: userMessage,\n selected_step_number: pageId + 1,\n temperature: 0.7,\n category_id: content[pageId]?.[index]?.category_id +\"\",\n subcategory_id: content[pageId]?.[index]?.id +\"\",\n stream: true,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`API error: ${response.statusText}`);\n }\n return response;\n } catch (error) {\n console.error(\"Failed to fetch AI response\", error);\n return null;\n }\n };\n\n const handleSendMessage = async () => {\n if (!userMessage.trim()) return;\n\n // Append the user's message and a placeholder for the assistant's reply in one update.\n setChats((prevChats) => {\n const newChats = [\n ...prevChats,\n [{ role: \"user\", content: userMessage }],\n [{ role: \"assistant\", content: \"\" }],\n ];\n updateStoreChats(newChats);\n return newChats;\n });\n setUserMessage(\"\");\n setChatLoading(true);\n\n try {\n const response = await fetchAIResponseStream(\n `user_${user.id}`,\n \"ecommerce-retail-usa-2025\",\n userMessage\n );\n if (!response) {\n throw new Error(\"No response from server\");\n }\n\n // Use the last chat in the state (assistant's placeholder) for streaming updates.\n const reader = response.body?.getReader();\n const decoder = new TextDecoder();\n let fullResponse = \"\";\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n const chunk = decoder.decode(value);\n fullResponse += chunk;\n\n setChats((prevChats) => {\n const newChats = [...prevChats];\n // Always update the last element, which is the assistant's message.\n newChats[newChats.length - 1][0].content = fullResponse;\n updateStoreChats(newChats);\n return newChats;\n });\n }\n\n // Ensure the store has the final chats.\n setChats((prevChats) => {\n updateStoreChats(prevChats);\n return prevChats;\n });\n } catch (error) {\n console.error(\"Streaming error:\", error);\n setChats((prevChats) => [\n ...prevChats,\n [\n {\n role: \"assistant\",\n content: \"Sorry, something went wrong. Please try again.\",\n },\n ],\n ]);\n } finally {\n setChatLoading(false);\n chatInputRef.current.focus();\n if (!isExpanded) {\n setIsExpanded(true);\n }\n }\n };\n\n useEffect(() => {\n if (chatMessagesRef.current) {\n chatMessagesRef.current.scrollTop = chatMessagesRef.current.scrollHeight;\n }\n }, [chats]);\n\n const handleKeyPress = (event) => {\n if (event.key === \"Enter\" && !chatLoading) {\n handleSendMessage();\n }\n };\n\n // useEffect(() => {\n // chatInputRef.current.focus();\n // }, []);\n\n return (\n
    \n \n {/* Header with gradient styling */}\n

    \n Smart AI Chat\n

    \n \n {isExpanded && (\n \n {chats.map((chat, idx) => (\n \n \n \n \n
    \n ))}\n \n )}\n \n
    \n setUserMessage(e.target.value)}\n onKeyPress={handleKeyPress}\n placeholder=\"Ask a question...\"\n className=\"flex-1 px-4 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-400\"\n />\n setIsExpanded(!isExpanded)}\n className=\"p-2 bg-white bg-opacity-20 hover:bg-opacity-30 border border-gray-300 rounded-full transition\"\n >\n {isExpanded ? (\n \n \n \n ) : (\n \n \n \n )}\n \n {chatLoading ? (\n
    \n \n
    \n ) : (\n \n \n \n \n \n \n )}\n
    \n \n \n \n );\n};\n\nexport default ChatDocumentUpload;\n","import React, { useState } from \"react\";\nimport {\n Modal,\n Button,\n Text,\n Title,\n List,\n Group,\n Loader,\n Badge,\n Center,\n ThemeIcon,\n} from \"@mantine/core\";\nimport { IconCheck } from \"@tabler/icons-react\";\nimport useStartupStore from \"../stores/startupStore\";\nimport config from \"../components/Lib/environment\";\nconsole.log(config)\n\n// A helper function to render Editor.js blocks\nconst renderBlock = (block, index) => {\n switch (block.type) {\n case \"header\":\n return (\n \n {block.data.text}\n \n );\n case \"paragraph\":\n return (\n \n {block.data.text}\n \n );\n case \"list\":\n return block.data.style === \"ordered\" ? (\n
      \n {block.data.items.map((item, idx) => (\n
    1. \n {item}\n
    2. \n ))}\n
    \n ) : (\n \n );\n default:\n return (\n \n {block.data.text || JSON.stringify(block)}\n \n );\n }\n};\n\nconst OutcomeValidation = () => {\n // Retrieve necessary fields from your Zustand store\n const {\n project_description,\n location,\n step_name,\n subcategories,\n selectedProgram, // assuming selectedProgram is part of your store\n content,\n startup,\n isMember,\n isOwner,\n } = useStartupStore((state) => ({\n startup: state.startup,\n isMember: state.isOwner,\n isOwner: state.isOwner,\n project_description: state.startup.description,\n location: state.startup.city + \" \" + state.startup.country,\n step_name: state.program.categories[state.selectedProgram.cid].name,\n subcategories: Object.values(state.content[state.selectedProgram.cid]).map(\n (sub) => ({\n name: sub.name,\n outcome: JSON.stringify(sub.response),\n })\n ),\n selectedProgram: state.selectedProgram,\n content: state.content,\n }));\n\n const currentSub = content[selectedProgram.cid]?.[selectedProgram.sid] || {};\n const current_subcategory = currentSub.name;\n const outcome_of_current_subcategory = JSON.stringify(currentSub.response);\n\n const [validationResult, setValidationResult] = useState(null);\n const [streamedData, setStreamedData] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n const [modalOpened, setModalOpened] = useState(false);\n\n const validateOutcome = async () => {\n setLoading(true);\n setError(null);\n setStreamedData(\"\");\n try {\n const payload = {\n project_description,\n location,\n step_name,\n subcategories,\n current_subcategory,\n outcome_of_current_subcategory,\n };\n\n const response = await fetch(\n config.validate_url,\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n }\n );\n\n if (!response.ok) {\n throw new Error(\"Failed to validate outcome\");\n }\n\n // Handle streaming response\n const reader = response.body.getReader();\n const decoder = new TextDecoder();\n let fullResponse = \"\";\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n const chunk = decoder.decode(value);\n fullResponse += chunk;\n // Optionally update the UI with the current stream progress\n setStreamedData(fullResponse);\n }\n\n // Parse the full response JSON\n const data = JSON.parse(fullResponse);\n console.log(data)\n setValidationResult(data);\n setModalOpened(true);\n } catch (err) {\n setError(err.message);\n setModalOpened(true);\n } finally {\n setLoading(false);\n }\n };\n\n if (!(isOwner || isMember)) return <>\n\n return (\n
    \n \n {loading ? : `Validate ${current_subcategory}`}\n \n\n setModalOpened(false)}\n title={\n \n {error ? \"Error\" : `Validation Result - ${current_subcategory}`}\n \n }\n size=\"xl\"\n centered\n overlayOpacity={0.55}\n overlayBlur={3}\n radius=\"md\"\n padding=\"xl\"\n >\n
    \n {error ? (\n \n {error}\n \n ) : validationResult ? (\n <>\n
    \n \n Rating: {validationResult.rating}\n \n
    \n \n Improvements:\n \n \n {validationResult.improvements &&\n validationResult.improvements.blocks ? (\n validationResult.improvements.blocks.map((block, index) =>\n renderBlock(block, index)\n )\n ) : (\n \n \n \n }\n >\n {validationResult.improvements &&\n validationResult.improvements.map(\n (improvement, index) => (\n {improvement}\n )\n )}\n \n )}\n
    \n \n ) : (\n \n {streamedData || \"Streaming response...\"}\n \n )}\n
    \n \n \n );\n};\n\nexport default OutcomeValidation;\n","import React, { useState, useEffect, useRef, useCallback } from \"react\";\nimport debounce from \"lodash.debounce\";\nimport styled from \"styled-components\";\nimport EditorJS from \"@editorjs/editorjs\";\nimport LinkTool from \"@editorjs/link\";\nimport CodeTool from \"@editorjs/code\";\nimport Header from \"@editorjs/header\";\nimport List from \"@editorjs/list\";\nimport Paragraph from \"@editorjs/paragraph\";\nimport Marker from \"@editorjs/marker\";\nimport Table from \"@editorjs/table\";\nimport useStartupStore from \"../stores/startupStore\";\nimport AlignmentTuneTool from \"editorjs-text-alignment-blocktune\";\nimport ChatDocumentUpload from \"./ChatDocumentUpload\";\nimport { AssignMembers } from \"../components/Startups/TextEditor\";\nimport OutcomeValidation from \"./OutcomeValidation\";\n\nconst EditorContainer = styled.div`\n width: 100%;\n background-color: #ffffff;\n padding: 10px 30px;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n /* Editor.js Specific Styling */\n .codex-editor {\n font-family: \"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\n Helvetica, Arial, sans-serif;\n line-height: 1.7;\n color: #101828;\n max-width: 900px;\n margin: 0 auto;\n color: #475467;\n }\n\n .ce-block__content {\n max-width: 100%;\n padding: 6px 0;\n }\n\n .ce-paragraph {\n font-size: 14px;\n line-height: 1.8;\n color: #475467;\n }\n\n .ce-header {\n margin-bottom: 1rem;\n font-weight: 600;\n color: #101828;\n letter-spacing: -0.02em;\n }\n\n .ce-header--h1 {\n font-size: 2.5rem;\n color: #101828;\n }\n\n .ce-header--h2 {\n font-size: 2rem;\n color: #1d2939;\n }\n\n .ce-header--h3 {\n font-size: 1.5rem;\n color: #344054;\n }\n\n /* Toolbar Styling */\n .ce-toolbar {\n background-color: #f9fafb;\n border-radius: 12px;\n padding: 8px;\n border: 1px solid #e4e7ec;\n }\n\n .ce-toolbox {\n background-color: white;\n border-radius: 8px;\n box-shadow: 0 4px 6px -2px rgba(16, 24, 40, 0.05);\n border: 1px solid #e4e7ec;\n }\n`;\n\nconst TextCreationArea = ({ setMessage, loading, setLoading }) => {\n const editorInstance = useRef(null);\n const editorHolderRef = useRef(null);\n\n const {\n content,\n setContent,\n setPrivacy,\n selectedProgram,\n isMember,\n isOwner,\n } = useStartupStore((state) => ({\n content: state.content,\n setContent: state.setContent,\n setPrivacy: state.setPrivacy,\n selectedProgram: state.selectedProgram,\n isMember: state.isMember,\n isOwner: state.isOwner,\n }));\n\n const pageId = selectedProgram.cid;\n const index = selectedProgram.sid;\n\n const debouncedPrivacyUpdate = useCallback(\n debounce((value) => {\n setPrivacy(value);\n }, 250),\n [setPrivacy]\n );\n\n const saveEditorContent = useCallback(\n debounce(async () => {\n if (!editorInstance.current) return;\n try {\n const savedContent = await editorInstance.current.save();\n setContent(savedContent);\n } catch (error) {\n console.error(\"Failed to save editor content:\", error);\n }\n }, 300),\n [pageId, index, setContent]\n );\n\n const getCsrfToken = () => {\n const metaTag = document.querySelector(\"meta[name='csrf-token']\");\n return metaTag ? metaTag.content : \"\";\n };\n\n const initializeEditor = useCallback(() => {\n if (editorInstance.current || !editorHolderRef.current) return;\n const csrfToken = getCsrfToken();\n editorInstance.current = new EditorJS({\n holder: editorHolderRef.current,\n placeholder: \"Start working here...\",\n data: content[pageId]?.[index]?.response || { blocks: [] },\n tools: {\n header: {\n class: Header,\n tunes: [\"anyTuneName\"],\n },\n table: {\n class: Table,\n inlineToolbar: true,\n config: {\n rows: 2,\n cols: 3,\n withHeadings: true,\n },\n },\n Marker: {\n class: Marker,\n shortcut: \"CMD+SHIFT+M\",\n },\n linkTool: {\n class: LinkTool,\n config: {\n endpoint: \"/api/fetch_url\",\n headers: {\n \"X-CSRF-Token\": csrfToken,\n },\n },\n },\n list: {\n class: List,\n },\n paragraph: {\n class: Paragraph,\n tunes: [\"anyTuneName\"],\n config: {\n inlineToolbar: true,\n },\n },\n anyTuneName: {\n class: AlignmentTuneTool,\n config: {\n default: \"left\",\n blocks: {\n header: \"center\",\n list: \"right\",\n },\n },\n },\n code: {\n class: CodeTool,\n },\n },\n readOnly: !(isOwner || isMember),\n onChange: saveEditorContent,\n });\n }, [pageId, index, content, saveEditorContent]);\n\n useEffect(() => {\n initializeEditor();\n return () => {\n saveEditorContent.cancel();\n debouncedPrivacyUpdate.cancel();\n if (editorInstance.current) {\n editorInstance.current.destroy();\n editorInstance.current = null;\n }\n };\n }, [pageId, index]);\n\n return (\n
    \n \n {!loading && (\n <>\n {\" \"}\n \n \n \n )}\n
    \n \n {/* EditorJS area */}\n
    \n
    \n
    \n {/* Persistent Chat appears at the bottom */}\n {(isOwner || isMember) && }\n \n {/* (Other elements like VisibilityOptions remain as before) */}\n
    \n );\n};\n\nexport default React.memo(TextCreationArea);\n","import React, { useState, useEffect } from 'react';\nimport { motion, useAnimation } from 'framer-motion';\nimport { Loader } from '@mantine/core';\n\nimport img1 from './assets/1.svg';\nimport img2 from './assets/2.svg';\nimport img3 from './assets/3.svg';\nimport img4 from './assets/4.svg';\nimport img5 from './assets/5.svg';\nimport img6 from './assets/6.svg';\nimport img7 from './assets/7.svg';\nimport img8 from './assets/8.svg';\nimport img9 from './assets/9.svg';\nimport img10 from './assets/10.svg';\nimport img11 from './assets/11.svg';\nimport img12 from './assets/12.svg';\nimport img13 from './assets/13.svg';\nimport img14 from './assets/14.svg';\nimport img15 from './assets/15.svg';\nimport img16 from './assets/16.svg';\nimport img17 from './assets/17.svg';\nimport img18 from './assets/18.svg';\nimport img19 from './assets/19.svg';\n\nconst svgImages = [\n img1, img2, img3, img4, img5, img6, img7, img8, img9,\n img10, img11, img12, img13, img14, img15, img16, img17, img18, img19\n];\n\nexport default function SVGSliderLoader() {\n const [index, setIndex] = useState(0);\n const controls = useAnimation();\n\n useEffect(() => {\n async function runAnimation() {\n await controls.start({\n // Zoom in then zoom out effect:\n // - Starts smaller & transparent (scale 0.8, opacity 0)\n // - Zooms in to 1.1 scale & full opacity,\n // - Holds, then zooms out back to scale 0.8 & fades out\n scale: [0.8, 1.1, 1.1, 0.8],\n opacity: [0, 1, 1, 0],\n transition: {\n duration: 12,\n times: [0, 0.1, 0.9, 1],\n ease: 'easeInOut'\n }\n });\n setIndex(prev => (prev + 1) % svgImages.length);\n }\n runAnimation();\n }, [index, controls]);\n\n return (\n
    \n \n
    \n

    \n We are building your project, hold on tight...\n

    \n
    \n
    \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport ContainerButton from \"./ContainerButton\";\nimport emptyImage from \"./assets/empty-state.svg\";\nimport TextCreationArea from \"./TextCreationArea\";\nimport useStartupStore from \"../stores/startupStore\";\nimport EditorContentDisplay from \"./EditorContentDisplay\";\nimport ProgramChangesApproval from \"../components/Startups/ProgramUpdateApproval\";\nimport { LoadingOverlay } from \"@mantine/core\";\nimport DiffDisplay from \"../components/Startups/DiffDisplay\";\nimport SVGSliderLoader from \"./SVGSliderLoader\";\n\nconst RoadmapDetailsContainer = styled.div`\n width: 100%;\n background-color: var(--color-container-card-default);\n border: 1px solid #dee8e7;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 10px;\n height: fit-content;\n overflow-x: auto;\n`;\n\nconst RoadmapTabs = styled.div`\n display: inline-flex;\n overflow-x: auto;\n width: 100%;\n\n /* Hide scrollbar by default */\n ::-webkit-scrollbar {\n height: 4px !important;\n width: 4px !important;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: transparent;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: #888;\n border-radius: 2px;\n }\n\n /* Only show scrollbar when hovering */\n ::-webkit-scrollbar-thumb:hover {\n background: #555;\n }\n`;\n\nconst TabButton = styled.button`\n background-color: transparent;\n border: none;\n padding: 8px 44px;\n cursor: pointer;\n color: var(--color-background-card);\n font-weight: var(--font-weight-h4);\n border-bottom: 2px solid var(--color-navigation-icon-dark);\n text-align: center;\n transition: all 0.3s ease;\n white-space: nowrap;\n\n &.active {\n background-color: var(--color-navigation-icon-light);\n color: #fff;\n border-bottom: 2px solid var(--color-background-card);\n }\n`;\n\nconst RoadmapContent = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n\nconst EmptyState = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n\n img {\n margin-bottom: 20px;\n }\n`;\n\nconst RoadmapDetails = ({}) => {\n const [showChanges, setShowChanges] = useState(false);\n const [message, setMessage] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const {\n isOwner,\n isMember,\n role,\n selectedProgram,\n setSelectedProgram,\n editMode,\n setEditMode,\n members,\n program,\n setSubcategory,\n } = useStartupStore((state) => ({\n program: state.program,\n setProgram: state.setProgram,\n isOwner: state.isOwner,\n isMember: state.isMember,\n setSubcategory: state.setSubcategory,\n selectedProgram: state.selectedProgram,\n setSelectedProgram: state.setSelectedProgram,\n editMode: state.editMode,\n setEditMode: state.setEditMode,\n members: state.members,\n }));\n const handleTabClick = (index) => {\n setSelectedProgram({ sid: index });\n };\n\n const headerButtonStyle = {\n paddingRight: \"8px\",\n borderRadius: \"2px\",\n border: \"#007bff\",\n cursor: \"pointer\",\n marginRight: \"4px\",\n fontSize: \"12px\",\n };\n\n return (\n \n {program?.categories?.length ? (\n <>\n \n {program.categories[selectedProgram.cid].sub_categories.map(\n (tab, index) => (\n handleTabClick(index)}\n >\n {tab.name}\n \n )\n )}\n \n\n \n }\n visible={program.loading}\n />\n {editMode ? (\n <>\n {program.categories[selectedProgram.cid].sub_categories[\n selectedProgram.sid\n ].response ||\n program.categories[selectedProgram.cid].sub_categories[\n selectedProgram.sid\n ].diff_proposed_response ? (\n <>\n {showChanges && isMember ? (\n \n ) : (\n \n )}\n {isMember && (\n \n
    \n {!program.categories[selectedProgram.cid]\n .sub_categories[selectedProgram.sid]\n .waiting_for_approval ? (\n setEditMode(true)}\n buttonText={`Edit ${\n program.categories[selectedProgram.cid]\n .sub_categories[selectedProgram.sid].name\n }`}\n />\n ) : (\n <>\n setShowChanges(!showChanges)}\n buttonText={\n showChanges\n ? \"Back\"\n : \"New Changes Submitted\"\n }\n />\n\n {showChanges && isOwner && (\n setShowChanges(false)}\n setSubcategory={setSubcategory}\n />\n )}\n \n )}\n
    \n \n )}\n \n ) : (\n \n \"Empty\n {isMember && (\n setEditMode(true)}\n buttonText={`Create ${\n program.categories[selectedProgram.cid]\n .sub_categories[selectedProgram.sid].name\n }`}\n />\n )}\n \n )}\n \n ) : (\n \n )}\n
    \n \n ) : (\n <>\n {program.loading ? (\n \n ) : (\n \n \"Empty\n \n )}\n \n )}\n
    \n );\n};\n\nexport default RoadmapDetails;\n","import React, { memo } from \"react\";\nimport styled from \"styled-components\";\nimport arrowUpIcon from \"./assets/arrow-up.svg\";\nimport arrowDownIcon from \"./assets/arrow-down.svg\";\nimport Step1 from \"./assets/step-1.png\";\nimport Step2 from \"./assets/step-2.png\";\nimport Step3 from \"./assets/step-3.png\";\nimport HelpIcon from \"./assets/help.svg\";\nimport ContainerButton from \"./ContainerButton\";\nimport useStartupStore from \"../stores/startupStore\";\nimport ContactMessage from \"../components/Startups/ContactMessage\";\n\nconst MemoContactMessage = memo(ContactMessage);\n\nconst RoadmapTimelineContainer = styled.div`\n padding: 20px;\n border: 1px solid #dee8e7;\n border-radius: 4px;\n background-color: var(--color-container-card-default);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 34px;\n text-align: left;\n`;\n\nconst RoadmapHeader = styled.div`\n align-self: flex-start;\n`;\n\nconst HeaderTitle = styled.h3`\n font-weight: var(--font-weight-h4);\n color: var(--color-background-card);\n`;\n\nconst HeaderText = styled.p`\n color: #68706b;\n margin-top: 8px;\n`;\n\nconst RoadmapSteps = styled.div`\n display: grid;\n grid-template-columns: 1fr 0.1fr 1fr 0.1fr 1fr;\n gap: 4px;\n margin: 20px 40px;\n`;\n\nconst Step = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n & > div {\n align-self: flex-start;\n margin-bottom: 10px;\n }\n`;\n\nconst StepIcon = styled.img``;\n\nconst StepTitle = styled.h3`\n margin-top: 10px;\n font-size: var(--font-size-body-1);\n font-weight: var(--font-weight-h4);\n color: var(--color-background-card);\n`;\n\nconst StepDescription = styled.p`\n color: var(--color-background-main);\n`;\n\nconst StepArrow = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 60px;\n`;\n\nconst RoadmapFooter = styled.div`\n text-align: center;\n margin: 4px auto;\n width: 40%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n`;\n\nconst HelpSection = styled.div`\n margin-top: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n`;\n\nconst HelpLink = styled.a`\n font-size: var(--font-size-body-1);\n color: var(--color-background-main);\n cursor: pointer;\n`;\n\nconst RoadmapTimeline = ({ action }) => {\n const { isOwner, isMember, role, slug } = useStartupStore((state) => ({\n isMember: state.isMember,\n isOwner: state.isOwner,\n slug: state.slug,\n role: state.role,\n }));\n\n return (\n \n \n Roadmap Overview\n \n Track the progress of your project from setting up the timeline to\n achieving growth milestones.\n \n \n\n {isOwner ? (\n <>\n \n \n
    \n Step 1\n Set roadmap timeline\n
    \n \n
    \n\n \n \"Arrow\n \n\n \n
    \n Step 2\n Complete with members\n
    \n \n
    \n\n \n \"Arrow\n \n\n \n
    \n Step 3\n Start dream growth\n
    \n \n
    \n
    \n\n \n Set Roadmap Completion Timeline\n \n Roadmap tasks required to be covered within the mentioned\n timeline, viewers and start-up visitors can see the timeline and\n act accordingly.\n \n \n \n \"Help\"\n Need Help\n \n \n \n ) : (\n \n Roadmap Unavailable\n \n The project roadmap is not yet available. Please check back later or\n contact the project owners for more information.\n \n \n \n \"Help\"\n Need Help\n \n \n )}\n
    \n );\n};\n\nexport default RoadmapTimeline;\n","import React, { useState } from \"react\";\nimport Calendar from \"react-calendar\";\nimport styled from \"styled-components\";\nimport arrowDownIcon from \"./assets/arrow-down.svg\";\nimport ContainerButton from \"./ContainerButton\";\nimport useStartupStore from \"../stores/startupStore\";\nimport { Loader } from \"@mantine/core\";\nimport TimeBasedProgressBar from \"../components/Lib/TimeBasedProgressBar\";\n\nconst PackageSelectorContainer = styled.div`\n background-color: var(--color-container-card-default);\n padding: 40px 20px;\n border: 1px solid #dee8e7;\n border-radius: 10px;\n text-align: left;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 30px;\n`;\n\nconst Title = styled.h3`\n font-weight: var(--font-weight-h4);\n color: var(--color-background-card);\n margin-bottom: 8px;\n`;\n\nconst Description = styled.p`\n color: var(--color-background-main);\n`;\n\nconst StepArrow = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst Packages = styled.div`\n display: flex;\n justify-content: space-around;\n gap: 24px;\n`;\n\nconst PackageBox = styled.div`\n width: 30%;\n padding: 20px;\n border-radius: 12px;\n cursor: pointer;\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n background-color: ${({ bgcolor }) => bgcolor};\n text-align: left;\n color: ${({ color }) => color};\n\n &:hover {\n transform: translateY(-5px);\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n }\n\n &.active {\n border: 2px solid var(--color-button-accent);\n }\n`;\n\nconst PackageName = styled.h4`\n font-size: 16px;\n font-weight: 600;\n color: #333;\n margin-bottom: 5px;\n\n &.active {\n color: var(--color-button-accent);\n }\n`;\n\nconst PackageInfo = styled.p`\n font-size: 12px;\n color: #777;\n`;\n\nconst PackageCalendar = styled.div`\n display: flex;\n justify-content: center;\n gap: 24px;\n`;\n\nconst PackageSelector = ({ useRoadmapStore }) => {\n const [selectedPackage, setSelectedPackage] = useState(null);\n\n const { entity, setProgram, slug } = useStartupStore((state) => ({\n program: state.program,\n setProgram: state.setProgram,\n slug: state.slug,\n entity: state.entity,\n }));\n\n const {\n date,\n setDate,\n endDate,\n setEndDate,\n setDuration,\n handleUpdate,\n loading,\n } = useRoadmapStore();\n\n console.log(new Date(date))\n\n const handlePackageClick = (pkg, d) => {\n setSelectedPackage(pkg);\n setDuration(d);\n };\n\n return (\n \n
    \n \n {entity === \"Startup\"\n ? \"Select a Package & set the timeline\"\n : \"Set the timeline\"}\n \n \n {entity === \"Startup\"\n ? \"Choose a plan and set the start and end date of the whole roadmap.\"\n : \"Start and end date of the whole roadmap.\"}\n \n
    \n\n {entity === \"Startup\" && (\n \n handlePackageClick(\"starter\", 30)}\n bgcolor=\"#FFF9BA\"\n color=\"#794E0B\"\n >\n \n Starter\n \n \n Suitable for quick projects and short-term goals. Package\n duration: 30 days.\n \n \n\n handlePackageClick(\"growth\", 60)}\n bgcolor=\"#E9FBD3\"\n color=\"#44661A\"\n >\n \n Growth\n \n \n Ideal for growing businesses and extended projects. Package\n duration: 60 days.\n \n \n\n handlePackageClick(\"pro\", 100)}\n bgcolor=\"#E2DBFF\"\n color=\"#4D37A4\"\n >\n \n Pro\n \n \n Best for long-term projects with ongoing goals. Package duration:\n 100 days.\n \n \n \n )}\n \n \n \n \"Arrow\n \n !date}\n minDate={date ? new Date(new Date(date).setDate(new Date(date).getDate() + 6)) : null}\n />\n \n\n
    \n {!loading ? (\n handleUpdate(slug, setProgram)}\n />\n ) : (\n \n )}\n
    \n
    \n );\n};\n\nexport default PackageSelector;\n","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\n\n// Styled Components\nconst ModalOverlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.5);\n display: ${({ open }) => (open ? \"block\" : \"none\")};\n z-index: 100;\n`;\n\nconst ModalContainer = styled.div`\n position: fixed;\n top: 5%;\n left: 50%;\n transform: translate(-50%, -5%);\n width: ${({ width }) => width || \"fit-content\"};\n height: ${({ height }) => height || \"fit-content\"};\n background-color: var(--color-background-light);\n border-radius: 4px;\n z-index: 101;\n display: ${({ open }) => (open ? \"flex\" : \"none\")};\n flex-direction: column;\n\n @media (min-width: 1400px) {\n max-width: ${({ maxWidth }) => maxWidth || \"unset\"};\n }\n`;\n\n\nconst ModalContent = styled.div`\n flex-grow: 1;\n overflow-y: auto;\n`;\n\nconst ModalFooter = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 16px;\n border-top: 1px solid #ccc;\n`;\n\n// Modal Component\nconst Modal = ({\n title,\n children,\n width,\n height,\n showmodal,\n setshowmodal,\n showFoter = true,\n maxWidth\n}) => {\n return (\n <>\n {showmodal && (\n <>\n setshowmodal(false)} />\n \n {children}\n {showFoter && (\n \n \n \n )}\n \n \n )}\n \n );\n};\n\nexport default Modal;\n","import React, { useState, useCallback } from \"react\";\nimport {\n IconTemplate,\n IconChevronDown,\n IconChevronRight,\n IconList,\n IconPencil,\n IconTrash,\n IconX,\n IconUsers,\n IconUser,\n IconUsersGroup,\n} from \"@tabler/icons-react\";\nimport {\n Box,\n Group,\n Text,\n Paper,\n useMantineTheme,\n Title,\n ActionIcon,\n Drawer,\n TextInput,\n Button,\n Select,\n Tooltip,\n Menu,\n Popover,\n} from \"@mantine/core\";\nimport moment from \"moment\";\nimport useStartupStore from \"../stores/startupStore\";\nimport { DateInput } from \"@mantine/dates\";\nimport fetchApi from \"../components/Lib/api\";\nimport RoadmapPDFGenerator from \"../components/Startups/RoadmapPDFGenerator\";\nimport { IconCalendar } from \"@tabler/icons-react\";\n\nexport default function TableOfContentsFloating() {\n const [active, setActive] = useState(null);\n const [expandedSection, setExpandedSection] = useState(null);\n const [isEditMode, setIsEditMode] = useState(false);\n const [drawerOpened, setDrawerOpened] = useState(false);\n const [selectedCategory, setSelectedCategory] = useState(null);\n\n // Category state\n const [categoryName, setCategoryName] = useState(\"\");\n const [subcategoryNames, setSubcategoryNames] = useState([]);\n const [newSubcategoryNames, setNewSubcategoryNames] = useState([]);\n const [subcategoriesToDelete, setSubcategoriesToDelete] = useState([]);\n\n // Date state\n const [newStartDate, setNewStartDate] = useState(null);\n const [newEndDate, setNewEndDate] = useState(null);\n\n const { setSelectedProgram, program, setCategory, isOwner, slug, isMember } =\n useStartupStore((state) => ({\n program: state.program,\n setCategory: state.setCategory,\n setSelectedProgram: state.setSelectedProgram,\n isOwner: state.isOwner,\n isMember: state.isMember,\n slug: state.slug,\n }));\n\n const theme = useMantineTheme();\n\n // Handlers for category management\n const handleAddNewField = () => {\n setNewSubcategoryNames((prev) => [\n ...prev,\n { name: \"\", privacy: \"Everyone\", start_date: null, end_date: null },\n ]);\n };\n\n const handleRemoveNewField = (indexToRemove) => {\n setNewSubcategoryNames((prev) =>\n prev.filter((_, index) => index !== indexToRemove)\n );\n };\n\n const handleCategoryNameChange = (event) => {\n setCategoryName(event.target.value);\n };\n\n const handleSubcategoryNameChange = (index, event, isNew = false) => {\n const handler = isNew ? setNewSubcategoryNames : setSubcategoryNames;\n handler((prev) => {\n const newSubcategories = [...prev];\n newSubcategories[index] = {\n ...newSubcategories[index],\n name: event.target.value,\n };\n return newSubcategories;\n });\n };\n\n const handleSubcategoryPrivacyChange = (index, value, isNew = false) => {\n const handler = isNew ? setNewSubcategoryNames : setSubcategoryNames;\n handler((prev) => {\n const newSubcategories = [...prev];\n newSubcategories[index] = {\n ...newSubcategories[index],\n privacy: value,\n };\n return newSubcategories;\n });\n };\n\n const handleSubcategoryDateChange = (index, type, date, isNew = false) => {\n const handler = isNew ? setNewSubcategoryNames : setSubcategoryNames;\n handler((prev) => {\n const newSubcategories = [...prev];\n newSubcategories[index] = {\n ...newSubcategories[index],\n [type]: date,\n };\n return newSubcategories;\n });\n };\n\n const handleSubcategoryDelete = useCallback(\n (index) => {\n setSubcategoriesToDelete((prev) => [...prev, subcategoryNames[index].id]);\n setSubcategoryNames((prev) => prev.filter((_, idx) => idx !== index));\n },\n [subcategoryNames]\n );\n\n const handleUpdateDates = async () => {\n if (!selectedCategory) return;\n\n try {\n const response = await fetchApi(\n `/categories/update_dates/${selectedCategory.id}`,\n \"PATCH\",\n { category: { start_date: newStartDate, end_date: newEndDate } }\n );\n if (response.ok) {\n const res = await response.json();\n setDrawerOpened(false);\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during date change:\", error);\n }\n };\n\n const handleUpdate = async () => {\n if (!selectedCategory) return;\n\n handleUpdateDates()\n\n const updatedData = {\n category: {\n name: categoryName,\n start_date: newStartDate,\n end_date: newEndDate,\n sub_categories_attributes: subcategoryNames.map(\n ({ is_active, is_editable, ...rest }) => ({\n ...rest,\n })\n ),\n new_sub_categories_attributes: newSubcategoryNames\n .filter((sub) => sub.name.trim() !== \"\")\n .map(({ name, privacy, start_date, end_date }) => ({\n name,\n privacy,\n start_date,\n end_date,\n })),\n deleted_sub_category_ids: subcategoriesToDelete,\n },\n };\n\n try {\n const response = await fetchApi(\n `/categories/update_names/${selectedCategory.id}`,\n \"PATCH\",\n updatedData\n );\n\n if (response.ok) {\n const res = await response.json();\n setCategory(res.category);\n setNewSubcategoryNames([]);\n setDrawerOpened(false);\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during update:\", error);\n }\n };\n\n // Styles\n const styles = {\n root: {\n position: \"relative\",\n height: \"fit-content\",\n },\n container: {\n padding: theme.spacing.xl,\n backgroundColor: theme.white,\n borderRadius: theme.radius.lg,\n border: \"1px solid #dee8e7\",\n marginBottom: \"8px\",\n minWidth: \"260px\",\n maxWidth: \"300px\",\n },\n linkContainer: {\n position: \"relative\",\n paddingLeft: \"2px\",\n },\n link: {\n display: \"flex\",\n flexDirection: \"column\",\n textDecoration: \"none\",\n color: theme.colors.gray[7],\n fontSize: theme.fontSizes.md,\n minHeight: \"48px\",\n borderTopRightRadius: theme.radius.md,\n borderBottomRightRadius: theme.radius.md,\n borderLeft: `2px solid ${theme.colors.gray[3]}`,\n transition: \"all 200ms ease\",\n marginBottom: \"8px\",\n padding: theme.spacing.xs,\n },\n linkContent: {\n display: \"flex\",\n alignItems: \"center\",\n fontWeight: 600,\n },\n linkDate: {\n fontSize: theme.fontSizes.sm,\n color: theme.colors.gray[6],\n marginTop: \"2px\",\n marginLeft: \"28px\",\n },\n linkActive: {\n fontWeight: 500,\n color: theme.colors.blue[6],\n backgroundColor: theme.fn.rgba(theme.colors.blue[0], 0.5),\n },\n subItem: {\n paddingLeft: \"28px\",\n marginTop: \"4px\",\n },\n header: {\n marginBottom: theme.spacing.xl,\n borderBottom: `2px solid ${theme.colors.gray[2]}`,\n paddingBottom: theme.spacing.md,\n },\n icon: {\n marginRight: theme.spacing.sm,\n flexShrink: 0,\n color: theme.colors.gray[6],\n },\n activeIcon: {\n color: theme.colors.blue[6],\n },\n chevron: {\n marginLeft: \"auto\",\n flexShrink: 0,\n marginRight: theme.spacing.xs,\n },\n subItemsContainer: {\n marginTop: \"4px\",\n },\n editButton: {\n marginLeft: \"auto\",\n },\n };\n\n const handleEditCategory = (category) => {\n setSelectedCategory(category);\n setCategoryName(category.name);\n setSubcategoryNames(\n category.sub_categories.map((s) => ({\n name: s.name,\n id: s.id,\n is_active: s.is_active,\n is_editable: s.is_editable,\n privacy: s.privacy || \"Everyone\",\n start_date: s.start_day ? new Date(s.start_day) : null,\n end_date: s.end_day ? new Date(s.end_day) : null,\n }))\n );\n setNewStartDate(category.start_date ? new Date(category.start_date) : null);\n setNewEndDate(category.end_date ? new Date(category.end_date) : null);\n setNewSubcategoryNames([]);\n setSubcategoriesToDelete([]);\n setDrawerOpened(true);\n };\n\n const renderItem = (item, index, isSubItem = false, parentIndex = null) => {\n const Icon = IconTemplate;\n const isExpanded = expandedSection === index;\n const isParentActive = !isSubItem && isExpanded;\n const isItemActive = active === index && !isSubItem;\n\n const handleClick = (event) => {\n event.preventDefault();\n if (isEditMode) {\n handleEditCategory(item);\n return;\n }\n\n if (!isSubItem && item?.sub_categories?.length > 0) {\n setExpandedSection(isExpanded ? null : index);\n }\n\n // For main items (parents)\n if (!isSubItem) {\n setSelectedProgram({\n cid: index,\n sid: 0,\n switch: true,\n });\n } else {\n // For subitems (children)\n setSelectedProgram({\n cid: parentIndex, // Keep parent's index\n sid: index, // Use subitem's index\n switch: true,\n });\n }\n setActive(index);\n };\n\n return (\n \n ({\n ...styles.link,\n ...(isSubItem ? styles.subItem : {}),\n ...(isParentActive || isItemActive ? styles.linkActive : {}),\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.fn.rgba(theme.colors.dark[5], 0.7)\n : theme.fn.rgba(theme.colors.gray[0], 0.7),\n transform: \"translateX(4px)\",\n },\n })}\n >\n
    \n \n {item.name}\n {!isSubItem &&\n item.sub_categories?.length > 0 &&\n (isEditMode ? (\n \n ) : isExpanded ? (\n \n ) : (\n \n ))}\n
    \n {item.start_date && (\n \n Deadline is {moment(new Date(item.end_date)).format(\"MMM Do, YYYY\")}\n \n )}\n
    \n {isExpanded && item.sub_categories && (\n
    \n {item.sub_categories.map((subItem, subIndex) =>\n renderItem(subItem, subIndex, true, index)\n )}\n
    \n )}\n \n );\n };\n\n const getPrivacyColor = (privacy) => {\n switch(privacy) {\n case \"Everyone\": return \"blue\";\n case \"Only me\": return \"green\";\n case \"Members\": return \"violet\";\n default: return \"gray\";\n }\n };\n\n return (\n \n
    \n \n \n Project Roadmap\n {(isOwner || isMember) && (\n setIsEditMode(!isEditMode)}\n style={styles.editButton}\n variant=\"subtle\"\n >\n {isEditMode ? : }\n \n )}\n \n {program?.categories?.map((item, index) => renderItem(item, index))}\n
    \n\n {isMember && }\n\n setDrawerOpened(false)}\n title=\"Edit Category\"\n position=\"right\"\n size=\"xl\"\n padding=\"xl\"\n styles={{\n title: {\n fontSize: \"1.5rem\",\n fontWeight: 600,\n },\n }}\n >\n \n \n\n \n \n\n \n\n \n Subcategories\n \n {subcategoryNames.map((subcategory, idx) => (\n \n handleSubcategoryNameChange(idx, event)}\n style={{ flex: 1 }}\n size=\"md\"\n />\n \n \n \n {subcategory.privacy === \"Everyone\" && }\n {subcategory.privacy === \"Only me\" && }\n {subcategory.privacy === \"Members\" && }\n \n \n \n Privacy Settings\n } \n onClick={() => handleSubcategoryPrivacyChange(idx, \"Everyone\")}\n >\n Everyone\n \n } \n onClick={() => handleSubcategoryPrivacyChange(idx, \"Only me\")}\n >\n Only Me\n \n } \n onClick={() => handleSubcategoryPrivacyChange(idx, \"Members\")}\n >\n Members\n \n \n \n\n \n \n \n \n \n Start Date\n handleSubcategoryDateChange(idx, \"start_date\", date)}\n minDate={newStartDate}\n maxDate={newEndDate}\n size=\"sm\"\n mb=\"sm\"\n />\n End Date\n handleSubcategoryDateChange(idx, \"end_date\", date)}\n minDate={subcategory.start_date || newStartDate}\n maxDate={newEndDate}\n size=\"sm\"\n />\n \n \n\n handleSubcategoryDelete(idx)}\n color=\"red\"\n variant=\"light\"\n >\n \n \n \n))}\n\n{newSubcategoryNames.map((newSubcategory, idx) => (\n \n handleSubcategoryNameChange(idx, event, true)}\n style={{ flex: 1 }}\n size=\"md\"\n />\n \n \n \n {newSubcategory.privacy === \"Everyone\" && }\n {newSubcategory.privacy === \"Only me\" && }\n {newSubcategory.privacy === \"Members\" && }\n \n \n \n Privacy Settings\n } \n onClick={() => handleSubcategoryPrivacyChange(idx, \"Everyone\", true)}\n >\n Everyone\n \n } \n onClick={() => handleSubcategoryPrivacyChange(idx, \"Only me\", true)}\n >\n Only Me\n \n } \n onClick={() => handleSubcategoryPrivacyChange(idx, \"Members\", true)}\n >\n Members\n \n \n \n\n \n \n \n \n \n Start Date\n handleSubcategoryDateChange(idx, \"start_date\", date, true)}\n minDate={newStartDate}\n maxDate={newEndDate}\n size=\"sm\"\n mb=\"sm\"\n />\n End Date\n handleSubcategoryDateChange(idx, \"end_date\", date, true)}\n minDate={newSubcategory.start_date || newStartDate}\n maxDate={newEndDate}\n size=\"sm\"\n />\n \n \n\n handleRemoveNewField(idx)}\n color=\"red\"\n variant=\"light\"\n >\n \n \n \n))}\n\n \n\n \n \n \n
    \n );\n}\n","import React, { useEffect, useRef, useCallback, useState } from \"react\";\nimport EditorJS from \"@editorjs/editorjs\";\nimport Header from \"@editorjs/header\";\nimport List from \"@editorjs/list\";\nimport Paragraph from \"@editorjs/paragraph\";\nimport Marker from \"@editorjs/marker\";\nimport LinkTool from \"@editorjs/link\";\nimport CodeTool from \"@editorjs/code\";\nimport AlignmentTuneTool from \"editorjs-text-alignment-blocktune\";\nimport debounce from \"lodash.debounce\";\nimport styled from \"styled-components\";\nimport useStartupStore from \"../stores/startupStore\";\nimport { ActionIcon } from \"@mantine/core\";\nimport { IconCheck, IconX, IconPencil } from \"@tabler/icons-react\";\nimport fetchApi from \"../components/Lib/api\";\nimport { useLayoutEffect } from \"react\";\n\nconst ActionButtons = styled.div`\n display: flex;\n gap: 0.5rem;\n`;\n\nconst ContentContainer = styled.div`\n transition: width 300ms ease, opacity 300ms ease;\n width: ${(props) => (props.collapsed ? \"3rem\" : \"100%\")};\n opacity: ${(props) => (props.collapsed ? \"0\" : \"1\")};\n`;\n\nconst EditorWrapper = styled.div`\n background: rgba(0, 0, 0, 0.2);\n border-radius: 8px;\n padding: 1.5rem;\n min-height: 300px;\n transition: all 200ms ease;\n ${(props) =>\n props.isEditing &&\n `\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5);\n `}\n\n .ce-block__content {\n max-width: 100%;\n margin: 0;\n }\n\n .ce-toolbar__content {\n max-width: 100%;\n margin: 0;\n }\n\n .ce-block:last-child {\n margin-bottom: 0 !important;\n }\n\n .codex-editor__redactor {\n padding-bottom: 40px !important;\n }\n\n .ce-paragraph {\n color: var(--color-text-light);\n font-size: 1rem;\n line-height: 1.5;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n color: var(--color-text-light);\n margin-top: 1.5rem;\n margin-bottom: 1rem;\n }\n\n a {\n color: var(--color-primary);\n text-decoration: none;\n &:hover {\n text-decoration: underline;\n }\n }\n\n code {\n background: rgba(0, 0, 0, 0.3);\n padding: 0.2em 0.4em;\n border-radius: 3px;\n font-size: 0.9em;\n }\n`;\n\nconst ErrorMessage = styled.div`\n background: rgba(220, 38, 38, 0.1);\n border: 1px solid rgba(220, 38, 38, 0.2);\n color: #ef4444;\n padding: 0.75rem;\n border-radius: 6px;\n margin-bottom: 1rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n`;\n\nconst CollapseButton = styled.button`\n background: none;\n border: none;\n color: var(--color-text-light);\n // opacity: 0.6;\n cursor: pointer;\n padding: 0.5rem;\n border-radius: 4px;\n transition: opacity 200ms ease;\n z-index: 1;\n\n &:hover {\n opacity: 1;\n }\n`;\n\nconst GuideEditor = ({ editorRef }) => {\n const [editMode, setEditMode] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n const [saveError, setSaveError] = useState(null);\n // Controls the \"See more/See less\" toggle in read-only mode\n const [isGuideCollapsed, setIsGuideCollapsed] = useState(true);\n const localEditorInstance = useRef(null);\n const editorHolderRef = useRef(null);\n\n const { content, setContent, selectedProgram, isOwner } =\n useStartupStore((state) => ({\n content: state.content,\n setContent: state.setContent,\n selectedProgram: state.selectedProgram,\n isOwner: state.isOwner,\n }));\n\n const pageId = selectedProgram?.cid;\n const index = selectedProgram?.sid;\n\n const currentPageId = useRef(pageId);\n const currentIndex = useRef(index);\n\n useEffect(() => {\n currentPageId.current = pageId;\n currentIndex.current = index;\n }, [pageId, index]);\n\n const getCsrfToken = () => {\n const metaTag = document.querySelector(\"meta[name='csrf-token']\");\n return metaTag ? metaTag.content : \"\";\n };\n\n const saveGuideContent = useCallback(\n debounce(async () => {\n if (localEditorInstance.current) {\n const savedContent = await localEditorInstance.current.save();\n setContent(\n currentPageId.current,\n currentIndex.current,\n false,\n savedContent\n );\n }\n }, 1000),\n [setContent]\n );\n\n const initializeGuideEditor = () => {\n if (localEditorInstance.current || !editorHolderRef.current) return;\n const csrfToken = getCsrfToken();\n localEditorInstance.current = new EditorJS({\n holder: editorHolderRef.current,\n placeholder: \"Start writing your guide here...\",\n data: content[pageId]?.[index]?.guide || { blocks: [] },\n readOnly: !editMode,\n tools: {\n header: {\n class: Header,\n tunes: [\"alignment\"],\n config: { levels: [2, 3, 4], defaultLevel: 2 },\n },\n marker: { class: Marker, shortcut: \"CMD+SHIFT+M\" },\n linkTool: {\n class: LinkTool,\n config: {\n endpoint: \"/api/fetch_url\",\n headers: { \"X-CSRF-Token\": csrfToken },\n },\n },\n list: { class: List, tunes: [\"alignment\"] },\n paragraph: { class: Paragraph, tunes: [\"alignment\"] },\n alignment: {\n class: AlignmentTuneTool,\n config: {\n default: \"left\",\n blocks: { header: \"left\", paragraph: \"left\", list: \"left\" },\n },\n },\n code: CodeTool,\n },\n onChange: saveGuideContent,\n onReady: () => {\n setTimeout(() => {\n const firstBlock = editorHolderRef.current?.querySelector(\n \".ce-paragraph, .ce-header\"\n );\n if (firstBlock) {\n firstBlock.focus();\n }\n }, 100);\n },\n });\n if (editorRef) {\n editorRef.current = localEditorInstance.current;\n }\n };\n\n const destroyPreviousEditor = async () => {\n if (localEditorInstance.current) {\n await localEditorInstance.current.destroy();\n localEditorInstance.current = null;\n }\n };\n \n\n const handleUpdate = async () => {\n setIsSaving(true);\n setSaveError(null);\n try {\n const savedData = await localEditorInstance.current.save();\n const guideContent = JSON.stringify(savedData);\n console.log(savedData);\n const response = await fetchApi(\n `/sub_categories/${content[pageId]?.[index]?.id}/update_guide`,\n \"PATCH\",\n { sub_category: { guide: guideContent } }\n );\n if (response.ok) {\n const updatedData = await response.json();\n console.log(updatedData);\n setEditMode(false);\n setContent(null, savedData);\n } else {\n const error = await response.json();\n setSaveError(error.message || \"Failed to save changes\");\n }\n } catch (error) {\n setSaveError(\"An unexpected error occurred while saving\");\n console.error(\"Error during guide update:\", error);\n } finally {\n setIsSaving(false);\n }\n };\n\n useLayoutEffect(() => {\n const handleContentChange = async () => {\n await destroyPreviousEditor();\n setTimeout(() => {\n if (editorHolderRef.current) {\n initializeGuideEditor();\n }\n }, 50); // 50ms delay, adjust if needed\n };\n handleContentChange();\n }, [pageId, index, editMode]);\n\n return (\n \n {saveError && (\n \n \n {saveError}\n \n )}\n \n {isOwner && (\n \n

    Guide

    \n {editMode ? (\n
    \n setEditMode(false)} variant=\"subtle\">\n \n \n \n \n \n
    \n ) : (\n setEditMode(true)}\n >\n \n \n )}\n
    \n )}\n {!editMode ? (\n \n
    \n setIsGuideCollapsed(!isGuideCollapsed)}\n style={{\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n textAlign: \"center\",\n background: \"rgba(255,255,255,1)\",\n }}\n >\n {isGuideCollapsed ? \"See more\" : \"See less\"}\n \n
    \n ) : (\n
    \n )}\n \n \n );\n};\n\nexport default GuideEditor;\n","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport ContainerButton from \"./ContainerButton\";\nimport { Loader } from \"@mantine/core\";\nimport GoogleDrivePickerAndUploader from \"../components/Lib/FilesPickerAndUploader\";\nimport useStartupStore from \"../stores/startupStore\";\n\n// Styled components\nconst AttachedDocuments = styled.div``;\n\nconst ButtonContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 10px;\n margin-bottom: 24px;\n`;\n\nconst DocumentUpload = () => {\n const [loading, setLoading] = useState(false);\n const { submitPendingChanges, isMember, isOwner } = useStartupStore((state) => ({\n submitPendingChanges: state.submitPendingChanges,\n isMember: state.isMember,\n isOwner: state.isOwner,\n }));\n\n return (\n \n {(isOwner || isMember) && (\n \n {loading ? (\n \n ) : (\n {\n setLoading(true);\n const result = await submitPendingChanges();\n if (result.success) {\n // setMessage(\"Changes saved successfully\");\n setTimeout(() => {\n // setMessage(\"\");\n }, 1000);\n // Optionally, close the modal: close();\n } else {\n // setMessage(`Error saving changes: ${result.error}`);\n }\n setLoading(false);\n }}\n buttonText=\"Save & Complete\"\n />\n )}\n \n )}\n \n \n );\n};\n\nexport default DocumentUpload;\n","import React, { useState, memo, useRef, useEffect } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {\n Drawer,\n TextInput,\n Textarea,\n Button,\n Modal,\n Select,\n MultiSelect,\n FileInput,\n Group,\n Box,\n ActionIcon,\n Grid,\n List,\n Text,\n Badge,\n Title,\n} from \"@mantine/core\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport {\n IconArrowRight,\n IconArrowUp,\n IconClockPlay,\n IconClockStop,\n IconGripVertical,\n IconTrash,\n} from \"@tabler/icons-react\";\nimport fetchApi from \"../components/Lib/api\";\nimport useStartupStore from \"../stores/startupStore\";\nimport { IconArrowDown } from \"@tabler/icons-react\";\n\n/* ====================\n GLOBAL STYLES & HELPERS\n==================== */\n\nconst priorityStyles = {\n Low: {\n backgroundColor: \"#d4edda\",\n color: \"#155724\",\n padding: \"4px 8px\",\n borderRadius: \"4px\",\n display: \"inline-block\",\n fontSize: \"12px\",\n marginTop: \"4px\",\n },\n Medium: {\n backgroundColor: \"#fff3cd\",\n color: \"#856404\",\n padding: \"4px 8px\",\n borderRadius: \"4px\",\n display: \"inline-block\",\n fontSize: \"12px\",\n marginTop: \"4px\",\n },\n High: {\n backgroundColor: \"#f8d7da\",\n color: \"#721c24\",\n padding: \"4px 8px\",\n borderRadius: \"4px\",\n display: \"inline-block\",\n fontSize: \"12px\",\n marginTop: \"4px\",\n },\n};\n\nconst tagStyle = (color) => ({\n backgroundColor: color,\n color: \"#fff\",\n padding: \"2px 6px\",\n borderRadius: \"4px\",\n fontSize: \"10px\",\n marginRight: \"4px\",\n marginTop: \"2px\",\n});\n\n/* ====================\n TABLE VIEW COMPONENT\n==================== */\nconst TableView = ({\n columns,\n columnOrder,\n onTaskClick,\n onAddTask,\n boardTitle,\n boardDescription,\n}) => {\n const tableContainerStyle = {};\n\n const headerStyle = {\n paddingBottom: \"8px\",\n };\n\n const tableStyle = {\n width: \"100%\",\n borderCollapse: \"collapse\",\n };\n\n const thStyle = {\n borderBottom: \"2px solid #ddd\",\n padding: \"12px\",\n textAlign: \"left\",\n backgroundColor: \"#f9f9f9\",\n };\n\n const tdStyle = {\n borderBottom: \"1px solid #eee\",\n padding: \"12px\",\n };\n\n // Flatten tasks from all columns and include extra date fields.\n const tasks = [];\n columnOrder.forEach((colId) => {\n const column = columns[colId];\n column.tasks.forEach((task, idx) => {\n tasks.push({\n ...task,\n columnId: colId,\n index: idx,\n columnName: column.name,\n columnColor: column.color,\n });\n });\n });\n\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {tasks.map((task) => (\n onTaskClick(task.columnId, task.index, task)}\n >\n \n \n \n \n \n \n \n \n \n \n ))}\n {/* Last row allows user to add a new task */}\n \n \n \n \n
    TitleDescriptionStart DateEnd DatePriorityColumnFilesAssigneesTags
    {task.title}{task.description}{task.start_date || \"-\"}{task.end_date || \"-\"}\n \n {task.priority}\n \n \n \n {task.columnName}\n \n {task.files && task.files.length > 0\n ? task.files.join(\", \")\n : \"-\"}\n \n \n {task.assignees &&\n task.assignees.map((assignee) => (\n \n {assignee.first_name} {assignee.last_name}\n \n ))}\n \n \n {task.tags &&\n task.tags.map((tag, idx) => (\n \n {tag.name}\n \n ))}\n
    \n + Add New Task\n
    \n
    \n );\n};\n\n/* ====================\n TASK MODAL COMPONENT\n==================== */\nconst TaskModal = memo(function TaskDrawer({\n taskData,\n onChange,\n onSave,\n onDelete,\n onClose,\n onFileChange,\n colors,\n users,\n columns,\n}) {\n const tagInputRef = useRef(null);\n const stopKey = (e) => e.stopPropagation();\n\n return (\n \n \n onChange({ field: \"title\", value: e.target.value })}\n autoFocus\n onKeyDown={stopKey}\n mb=\"md\"\n size=\"lg\"\n styles={{\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n },\n }}\n />\n\n \n onChange({ field: \"description\", value: e.target.value })\n }\n onKeyDown={stopKey}\n minRows={5}\n mb=\"md\"\n size=\"lg\"\n styles={{\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n },\n }}\n />\n\n \n \n \n onChange({ field: \"start_date\", value: e.target.value })\n }\n onKeyDown={stopKey}\n size=\"lg\"\n styles={{\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n },\n label: {\n fontSize: \"1rem\",\n marginBottom: \"0.5rem\",\n },\n }}\n />\n \n \n \n onChange({ field: \"end_date\", value: e.target.value })\n }\n onKeyDown={stopKey}\n size=\"lg\"\n styles={{\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n },\n label: {\n fontSize: \"1rem\",\n marginBottom: \"0.5rem\",\n },\n }}\n />\n \n \n\n onChange({ field: \"priority\", value })}\n onKeyDown={stopKey}\n placeholder=\"Select Priority\"\n mb=\"md\"\n size=\"lg\"\n styles={{\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n },\n }}\n />\n\n ({\n value: colId,\n label: columns[colId].name,\n }))}\n value={taskData.columnId || \"\"}\n onChange={(value) => onChange({ field: \"columnId\", value })}\n onKeyDown={stopKey}\n placeholder=\"Select Column\"\n mb=\"md\"\n size=\"lg\"\n styles={{\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n },\n }}\n />\n\n {\n const fileArray = files || [];\n onFileChange({ target: { files: fileArray } });\n }}\n onKeyDown={stopKey}\n mb=\"md\"\n size=\"lg\"\n styles={{\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n },\n }}\n />\n\n {taskData.task.files && taskData.task.files.length > 0 && (\n \n \n Files:\n \n \n {taskData.task.files.map((file, idx) => (\n {file.name ? file.name : file}\n ))}\n \n \n )}\n\n ({\n value: user.id,\n label: user.first_name + \" \" + user.last_name,\n }))}\n value={(taskData.task.assignees || []).map((a) => a.id)}\n onChange={(selectedIds) => {\n const selected = users.filter((u) => selectedIds.includes(u.id));\n onChange({ field: \"assignees\", value: selected });\n }}\n onKeyDown={stopKey}\n placeholder=\"Select Assignees\"\n mb=\"md\"\n size=\"lg\"\n styles={{\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n },\n label: {\n fontSize: \"1rem\",\n marginBottom: \"0.5rem\",\n },\n }}\n />\n\n {\n if (e.key === \"Enter\" && e.target.value.trim()) {\n const newTag = {\n name: e.target.value.trim(),\n color: colors[Math.floor(Math.random() * colors.length)],\n };\n onChange({\n field: \"tags\",\n value: [...taskData.task.tags, newTag],\n });\n e.target.value = \"\";\n e.preventDefault();\n if (tagInputRef.current) tagInputRef.current.focus();\n } else {\n stopKey(e);\n }\n }}\n mb=\"md\"\n size=\"lg\"\n styles={{\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n },\n }}\n />\n\n \n {taskData.task.tags.map((tag, idx) => (\n {\n const newTags = taskData.task.tags.filter((_, i) => i !== idx);\n onChange({ field: \"tags\", value: newTags });\n }}\n title=\"Click to remove tag\"\n >\n {tag.name}\n \n ))}\n \n\n \n \n {taskData.mode === \"edit\" && (\n \n )}\n \n \n \n \n );\n});\n\n/* ====================\n BOARD MODAL COMPONENT\n==================== */\nconst BoardModal = memo(function BoardModal({\n opened,\n boardTitle,\n boardDescription,\n onChange,\n onSave,\n}) {\n return (\n \n \n \n onChange({ field: \"boardTitle\", value: e.target.value })\n }\n autoFocus\n size=\"lg\"\n mb=\"lg\"\n styles={{\n label: {\n fontSize: \"1.1rem\",\n marginBottom: \"0.5rem\",\n fontWeight: 500,\n },\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n minHeight: \"3.5rem\",\n },\n }}\n />\n\n \n onChange({ field: \"boardDescription\", value: e.target.value })\n }\n minRows={5}\n size=\"lg\"\n mb=\"xl\"\n styles={{\n label: {\n fontSize: \"1.1rem\",\n marginBottom: \"0.5rem\",\n fontWeight: 500,\n },\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n minHeight: \"150px\",\n },\n }}\n />\n\n \n Save\n \n \n \n );\n});\n\nconst ColumnModal = memo(function ColumnModal({\n opened,\n columnName,\n onChange,\n onSave,\n onClose,\n}) {\n return (\n \n \n onChange(e.target.value)}\n autoFocus\n size=\"lg\"\n mb=\"xl\"\n styles={{\n label: {\n fontSize: \"1.1rem\",\n marginBottom: \"0.5rem\",\n fontWeight: 500,\n },\n input: {\n fontSize: \"1.1rem\",\n padding: \"1rem\",\n minHeight: \"3.5rem\",\n },\n }}\n />\n \n Save\n \n \n \n );\n});\n\n/* ====================\n EDITABLE COLUMN HEADER COMPONENT\n==================== */\nconst EditableColumnHeader = memo(function EditableColumnHeader({\n colId,\n column,\n colors,\n onNameChange,\n onColorChange,\n onDelete,\n dragHandleProps,\n}) {\n return (\n \n onNameChange(colId, e.target.value)}\n onKeyDown={(e) => e.stopPropagation()}\n placeholder=\"Column name\"\n />\n\n
    \n onColorChange(colId, value)}\n data={colors.map((color) => ({\n value: color,\n label: (\n \n ),\n }))}\n onKeyDown={(e) => e.stopPropagation()}\n />\n \n \n \n onDelete(colId)}>\n \n \n
    \n
    \n );\n});\n\n/* ====================\n KANBAN COMPONENT (MAIN VIEW)\n==================== */\nconst KanbanComponent = ({\n initialData,\n subCategoryId,\n config = {},\n onBoardDeleted,\n}) => {\n // Initialize board state from passed-in initialData\n const [columns, setColumns] = useState(initialData.columns);\n const [columnOrder, setColumnOrder] = useState(initialData.columnOrder);\n const [editColumns, setEditColumns] = useState(false);\n const [taskModal, setTaskModal] = useState(null);\n const [showBoardModal, setShowBoardModal] = useState(\n false\n );\n const [boardTitle, setBoardTitle] = useState(initialData.boardTitle || \"\");\n const [boardDescription, setBoardDescription] = useState(\n initialData.boardDescription || \"\"\n );\n // viewMode: 'kanban' or 'table'\n const [viewMode, setViewMode] = useState(\"table\");\n\n const [showColumnModal, setShowColumnModal] = useState(false);\n const [newColumnName, setNewColumnName] = useState(\"\");\n\n const { users } = useStartupStore((state) => ({\n users: state.members,\n }));\n\n const colors = [\"#FF6B6B\", \"#4ECDC4\", \"#FFE66D\", \"#45B7D5\", \"#9B59B6\"];\n\n\n // --------------------------\n // Update Board Data on Backend\n // --------------------------\n const updateData = async (newColumns, newColumnOrder) => {\n const boardId = initialData.id; // assume board has an id\n try {\n // Construct payload in snake_case to match Rails strong parameters.\n const payload = {\n task_board: {\n board_title: boardTitle,\n board_description: boardDescription,\n columns_attributes: newColumnOrder.map((colId, index) => {\n const col = newColumns[colId];\n return {\n id: col.id, // if this is undefined, Rails will create a new record\n name: col.name,\n color: col.color,\n position: index,\n tasks_attributes: col.tasks.map((task) => ({\n id: task.id,\n title: task.title,\n description: task.description,\n start_date: task.start_date,\n end_date: task.end_date,\n priority: task.priority,\n // **Include the updated column_id**\n column_id: col.id,\n user_ids: task.assignees\n ? task.assignees.map((assignee) => assignee.id)\n : [],\n tags_attributes: task.tags\n ? task.tags.map((tag) => ({\n id: tag.id,\n name: tag.name,\n color: tag.color,\n }))\n : [],\n })),\n };\n }),\n },\n };\n\n const response = await fetchApi(\n `/sub_categories/${subCategoryId}/task_boards/${boardId}`,\n \"PUT\",\n payload\n );\n\n if (!response.ok) {\n console.error(\"Failed to update board data\");\n return;\n }\n\n const updatedBoardData = await response.json();\n\n // Assume your Rails backend now returns columns as an object keyed by column IDs,\n // and a separate columnOrder array.\n const transformedData = {\n id: updatedBoardData.id,\n boardTitle: updatedBoardData.board_title,\n boardDescription: updatedBoardData.board_description,\n columns: updatedBoardData.columns, // object keyed by column id\n columnOrder: updatedBoardData.columnOrder, // array of column ids\n };\n\n // Update the component's state with the transformed data.\n setColumns(transformedData.columns);\n setColumnOrder(transformedData.columnOrder);\n } catch (error) {\n console.error(\"Error updating board data:\", error);\n }\n };\n\n // --------------------------\n // TASK HANDLERS\n // --------------------------\n const handleGlobalAddTask = () => {\n setTaskModal({\n mode: \"add\",\n columnId: \"\", // user must select column in modal\n task: {\n title: \"\",\n description: \"\",\n assignees: [],\n priority: \"Medium\",\n files: [],\n tags: [],\n start_date: \"\",\n end_date: \"\",\n },\n });\n };\n\n const handleTaskClick = (columnId, index, task) => {\n setTaskModal({\n mode: \"edit\",\n columnId,\n index,\n task: { ...task, files: task.files || [], tags: task.tags || [], assignees: task.assignees || [] },\n });\n };\n\n const onTaskModalChange = ({ field, value }) => {\n if (field === \"columnId\") {\n setTaskModal((prev) => ({ ...prev, columnId: value }));\n } else {\n setTaskModal((prev) => ({\n ...prev,\n task: { ...prev.task, [field]: value },\n }));\n }\n };\n\n const saveNewTask = () => {\n const { columnId, task } = taskModal;\n if (!columnId) return alert(\"Please select a column for the task.\");\n // Ensure the new task has an \"assignees\" array (even if empty)\n const newTask = { ...task, assignees: task.assignees || [] };\n const newColumns = {\n ...columns,\n [columnId]: {\n ...columns[columnId],\n tasks: [...columns[columnId].tasks, newTask],\n },\n };\n setColumns(newColumns);\n updateData(newColumns, columnOrder);\n setTaskModal(null);\n };\n \n const saveEditedTask = () => {\n const { columnId, index, task } = taskModal;\n // Ensure the edited task always has an \"assignees\" property\n const updatedTask = { ...task, assignees: task.assignees || [] };\n const newTaskList = Array.from(columns[columnId].tasks);\n newTaskList[index] = updatedTask;\n const newColumns = {\n ...columns,\n [columnId]: { ...columns[columnId], tasks: newTaskList },\n };\n setColumns(newColumns);\n updateData(newColumns, columnOrder);\n setTaskModal(null);\n };\n \n\n const deleteTask = async () => {\n const { columnId, index, task } = taskModal;\n\n // If the task hasn't been saved to the backend yet, simply update state.\n if (!task.id) {\n const newTaskList = Array.from(columns[columnId].tasks);\n newTaskList.splice(index, 1);\n const newColumns = {\n ...columns,\n [columnId]: { ...columns[columnId], tasks: newTaskList },\n };\n setColumns(newColumns);\n setTaskModal(null);\n return;\n }\n\n try {\n const response = await fetchApi(\n `/sub_categories/${subCategoryId}/task_boards/${initialData.id}/columns/${columnId}/tasks/${task.id}`,\n \"DELETE\"\n );\n if (!response.ok) {\n console.error(\"Failed to delete task\");\n return;\n }\n // On success, remove the task from local state.\n const newTaskList = Array.from(columns[columnId].tasks);\n newTaskList.splice(index, 1);\n const newColumns = {\n ...columns,\n [columnId]: { ...columns[columnId], tasks: newTaskList },\n };\n setColumns(newColumns);\n setTaskModal(null);\n } catch (error) {\n console.error(\"Error deleting task:\", error);\n }\n };\n\n const handleFileChange = (e) => {\n const files = Array.from(e.target.files).map((file) => file.name);\n setTaskModal((prev) => ({\n ...prev,\n task: { ...prev.task, files: [...(prev.task.files || []), ...files] },\n }));\n };\n\n // --------------------------\n // COLUMN HANDLERS\n // --------------------------\n const handleDeleteColumn = (columnId) => {\n const newColumns = { ...columns };\n delete newColumns[columnId];\n const newColumnOrder = columnOrder.filter((id) => id !== columnId);\n setColumns(newColumns);\n setColumnOrder(newColumnOrder);\n updateData(newColumns, newColumnOrder);\n };\n\n const handleColumnNameChange = (columnId, newName) => {\n const newColumns = {\n ...columns,\n [columnId]: { ...columns[columnId], name: newName },\n };\n setColumns(newColumns);\n updateData(newColumns, columnOrder);\n };\n\n const handleColumnColorChange = (columnId, color) => {\n const newColumns = {\n ...columns,\n [columnId]: { ...columns[columnId], color },\n };\n setColumns(newColumns);\n updateData(newColumns, columnOrder);\n };\n\n const handleAddColumn = () => {\n setNewColumnName(\"\");\n setShowColumnModal(true);\n };\n\n const saveNewColumn = () => {\n if (!newColumnName.trim()) {\n return alert(\"Column name cannot be empty\");\n }\n const newColumnId = `column-${Date.now()}`;\n const newColumns = {\n ...columns,\n [newColumnId]: {\n name: newColumnName.trim(),\n color: colors[0],\n tasks: [],\n },\n };\n const newColumnOrder = [...columnOrder, newColumnId];\n setColumns(newColumns);\n setColumnOrder(newColumnOrder);\n updateData(newColumns, newColumnOrder);\n setShowColumnModal(false);\n };\n\n const moveTask = async (taskId, newColumnId) => {\n try {\n const response = await fetchApi(\n `/sub_categories/${subCategoryId}/task_boards/${initialData.id}/columns/${newColumnId}/tasks/${taskId}/move`,\n \"POST\"\n );\n if (!response.ok) {\n console.error(\"Failed to move task\");\n return;\n }\n // Optionally, update local state based on the response if needed\n // const result = await response.json();\n } catch (error) {\n console.error(\"Error moving task:\", error);\n }\n };\n\n // --------------------------\n // DRAG AND DROP HANDLER\n // --------------------------\n const handleDragEnd = (result) => {\n const { destination, source, draggableId, type } = result;\n if (!destination) return;\n\n if (type === \"COLUMN\" && editColumns) {\n const newColumnOrder = Array.from(columnOrder);\n newColumnOrder.splice(source.index, 1);\n newColumnOrder.splice(destination.index, 0, draggableId);\n setColumnOrder(newColumnOrder);\n updateData(columns, newColumnOrder);\n return;\n }\n\n const startCol = source.droppableId;\n const finishCol = destination.droppableId;\n if (startCol === finishCol) {\n const newTaskList = Array.from(columns[startCol].tasks);\n const [removed] = newTaskList.splice(source.index, 1);\n newTaskList.splice(destination.index, 0, removed);\n const newColumns = {\n ...columns,\n [startCol]: { ...columns[startCol], tasks: newTaskList },\n };\n setColumns(newColumns);\n updateData(newColumns, columnOrder);\n } else {\n const startTasks = Array.from(columns[startCol].tasks);\n const [removed] = startTasks.splice(source.index, 1);\n const finishTasks = Array.from(columns[finishCol].tasks);\n finishTasks.splice(destination.index, 0, removed);\n const newColumns = {\n ...columns,\n [startCol]: { ...columns[startCol], tasks: startTasks },\n [finishCol]: { ...columns[finishCol], tasks: finishTasks },\n };\n setColumns(newColumns);\n updateData(newColumns, columnOrder);\n\n moveTask(removed.id, finishCol);\n }\n };\n\n const deleteBoard = async () => {\n if (!window.confirm(\"Are you sure you want to delete this board?\")) return;\n try {\n const response = await fetchApi(\n `/sub_categories/${subCategoryId}/task_boards/${initialData.id}`,\n \"DELETE\"\n );\n if (!response.ok) {\n console.error(\"Failed to delete board\");\n return;\n }\n console.log(\"Board deleted successfully\");\n // If provided, call the parent's callback to update the board list or redirect.\n if (onBoardDeleted) {\n onBoardDeleted(initialData.id);\n }\n } catch (error) {\n console.error(\"Error deleting board:\", error);\n }\n };\n\n // --------------------------\n // BOARD MODAL HANDLERS\n // --------------------------\n const onBoardModalChange = ({ field, value }) => {\n if (field === \"boardTitle\") {\n setBoardTitle(value);\n } else {\n setBoardDescription(value);\n }\n };\n\n // When saving board changes, we update the backend with the new title/description.\n const saveBoard = () => {\n updateData(columns, columnOrder); // update board title/description along with current columns\n setShowBoardModal(false);\n };\n\n // --------------------------\n // RENDERING\n // --------------------------\n const containerStyle = {};\n\n const headerButtonStyle = {\n padding: \"4px 6px\",\n borderRadius: \"2px\",\n border: \"#007bff\",\n cursor: \"pointer\",\n marginRight: \"4px\",\n fontSize: \"12px\",\n };\n\n const columnsContainerStyle = {\n display: \"flex\",\n gap: \"12px\",\n flexWrap: \"wrap\",\n marginTop: \"4px\",\n };\n\n const columnStyle = (color) => ({\n padding: \"12px\",\n borderRadius: \"8px\",\n width: \"30%\",\n overflowX: \"scroll\",\n borderTop: `4px solid ${color}`,\n display: \"flex\",\n flexDirection: \"column\",\n overflow: \"hidden\",\n });\n\n const taskStyle = {\n padding: \"12px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"6px\",\n marginBottom: \"8px\",\n borderRadius: \"4px\",\n boxShadow: \"0 3px 3px rgba(0,0,0,0.1)\",\n cursor: \"pointer\",\n fontSize: \"14px\",\n };\n\n const boardHeaderStyle = {\n marginBottom: \"8px\",\n };\n\n return (\n
    \n {showBoardModal && (\n \n )}\n\n {showColumnModal && (\n setShowColumnModal(false)}\n />\n )}\n\n {taskModal && (\n setTaskModal(null)}\n onFileChange={handleFileChange}\n colors={colors}\n users={users}\n columns={columns}\n />\n )}\n\n {(boardTitle || boardDescription) && (\n
    \n {boardTitle &&

    {boardTitle}

    }\n {boardDescription && (\n

    {boardDescription}

    \n )}\n
    \n )}\n\n \n \n setEditColumns(!editColumns)}\n style={headerButtonStyle}\n >\n {editColumns ? \"Done Editing\" : \"Edit Columns\"}\n \n \n setViewMode(viewMode === \"kanban\" ? \"table\" : \"kanban\")\n }\n style={headerButtonStyle}\n >\n {viewMode === \"kanban\"\n ? \"Switch to Table View\"\n : \"Switch to Board View\"}\n \n setShowBoardModal(true)}\n style={headerButtonStyle}\n >\n Edit Board\n \n \n \n
    \n\n {viewMode === \"kanban\" ? (\n \n \n {(provided) => (\n \n {columnOrder.map((colId, index) => {\n const column = columns[colId];\n return (\n \n {(provided) => (\n \n {editColumns ? (\n \n ) : (\n \n {column.name}\n \n )}\n \n {(provided) => (\n \n {column.tasks.map((task, idx) => (\n \n {(provided) => (\n \n handleTaskClick(colId, idx, task)\n }\n >\n \n {task.title}\n \n \n {task.description.slice(0, 150)}\n

    \n {(task.start_date || task.end_date) && (\n
    \n {task.start_date && (\n
    \n \n \n Start: {task.start_date}\n \n
    \n )}\n {task.end_date && (\n
    \n \n \n End: {task.end_date}\n \n
    \n )}\n
    \n )}\n {task.priority && (\n \n {task.priority.toLowerCase() ===\n \"high\" ? (\n \n ) : task.priority.toLowerCase() ===\n \"medium\" ? (\n \n ) : (\n \n )}\n {task.priority}\n \n )}\n {task.tags?.length > 0 && (\n
    \n {task.tags.map((tag, i) => (\n \n {tag.name}\n \n ))}\n
    \n )}\n \n {task.assignees &&\n task.assignees.map((assignee) => (\n \n {assignee.first_name}{\" \"}\n {assignee.last_name}\n \n ))}\n \n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n
    \n \n )}\n \n );\n })}\n {provided.placeholder}\n \n )}\n \n
    \n ) : (\n \n )}\n \n );\n};\n\n/* ====================\n HELPER: Default Board Data\n==================== */\nconst getDefaultBoardData = () => {\n const columnsAttributes = [\n { name: \"To Do\", color: \"#FF6B6B\", position: 0, tasks_attributes: [] },\n {\n name: \"In Progress\",\n color: \"#4ECDC4\",\n position: 1,\n tasks_attributes: [],\n },\n { name: \"Done\", color: \"#FFE66D\", position: 2, tasks_attributes: [] },\n ];\n return {\n board_title: \"Task Board Title\",\n board_description:\n \"Provide a full description covering on how the tasks are to be handle.\",\n columns_attributes: columnsAttributes,\n };\n};\n\n/* ====================\n TASK BOARDS MANAGER\n==================== */\n// This parent component lets users create new boards via the button.\nconst TaskBoardsManager = ({ subCategoryId, toggle, name }) => {\n const [boards, setBoards] = useState([]);\n const [loading, setLoading] = useState(true);\n\n // Fetch boards from the API whenever subCategoryId changes.\n useEffect(() => {\n if (subCategoryId) {\n fetchApi(`/sub_categories/${subCategoryId}/task_boards`, \"GET\")\n .then(async (response) => {\n if (!response.ok) {\n throw new Error(\"Error fetching task boards\");\n }\n const data = await response.json();\n console.log(data)\n if (data.length === 0) {\n // handleCreateNewBoard();\n } else {\n setBoards(data);\n }\n setLoading(false);\n })\n .catch((error) => {\n console.error(\"Error fetching boards:\", error);\n setLoading(false);\n });\n }\n }, [subCategoryId]);\n\n // Handle creating a new board by POSTing to the backend.\n const handleCreateNewBoard = () => {\n const newBoardData = getDefaultBoardData();\n // Rails expects the board data under a `task_board` key.\n fetchApi(`/sub_categories/${subCategoryId}/task_boards`, \"POST\", {\n task_board: newBoardData,\n })\n .then(async (response) => {\n if (!response.ok) {\n throw new Error(\"Error creating board\");\n }\n const data = await response.json();\n setBoards([...boards, data]);\n })\n .catch((error) => console.error(\"Error creating board:\", error));\n };\n\n const handleBoardDeleted = (deletedBoardId) => {\n setBoards(boards.filter((board) => board.id !== deletedBoardId));\n };\n\n if (loading) {\n return
    Loading boards...
    ;\n }\n\n const headerButtonStyle = {\n paddingRight: \"8px\",\n borderRadius: \"2px\",\n border: \"#007bff\",\n cursor: \"pointer\",\n marginRight: \"4px\",\n fontSize: \"12px\",\n };\n\n return (\n\n
    \n {name} Task board\n\n
    \n \n \n
    \n {boards.map((board) => (\n \n \n \n ))}\n
    \n );\n};\n\nexport default TaskBoardsManager;\n","import React, { useState, useEffect } from 'react';\nimport {\n Box,\n Text,\n Title,\n Textarea,\n Button,\n Avatar,\n Group,\n Drawer,\n Paper,\n Loader,\n Center,\n} from '@mantine/core';\nimport fetchApi from '../components/Lib/api';\nimport ContainerButton from './ContainerButton';\n\n// Component: SubcategoryFeedback\nconst SubcategoryFeedback = ({ subCategoryId, subCategoryName }) => {\n const [feedbacks, setFeedbacks] = useState([]);\n const [loading, setLoading] = useState(false);\n const [newFeedback, setNewFeedback] = useState('');\n const [drawerOpened, setDrawerOpened] = useState(false);\n const [drawerFeedback, setDrawerFeedback] = useState('');\n\n // Fetch feedback for the subcategory on mount or when subCategoryId changes\n useEffect(() => {\n if (!subCategoryId) return;\n setLoading(true);\n fetchApi(`/sub_categories/${subCategoryId}/feedbacks`, 'GET')\n .then(async (response) => {\n if (!response.ok) throw new Error('Error fetching feedback');\n const data = await response.json();\n setFeedbacks(data);\n setLoading(false);\n })\n .catch((error) => {\n console.error('Error fetching feedback:', error);\n setLoading(false);\n });\n }, [subCategoryId]);\n\n // Function to submit feedback (used for both inline and drawer submission)\n const submitFeedback = async (feedbackText, onSuccess) => {\n if (!feedbackText.trim()) return;\n try {\n const response = await fetchApi(\n `/sub_categories/${subCategoryId}/feedbacks`,\n 'POST',\n {\n feedback: {\n // We assume the backend will associate the feedback with the current user\n // so we don't need to send name/email if that is handled server-side.\n message: feedbackText,\n rating: 0,\n },\n }\n );\n if (!response.ok) throw new Error('Error submitting feedback');\n const newEntry = await response.json();\n // Prepend the new feedback to the list so it appears first.\n setFeedbacks((prev) => [newEntry, ...prev]);\n if (onSuccess) onSuccess();\n } catch (error) {\n console.error('Error submitting feedback:', error);\n }\n };\n\n // Render first two feedback items\n const renderInlineFeedbacks = () => {\n if (feedbacks.length === 0) {\n return (\n \n No feedback yet. Be the first to submit your feedback for {subCategoryName}.\n \n );\n }\n return feedbacks.slice(0, 2).map((fb) => (\n \n \n {fb.user\n ? `${fb.user.first_name.charAt(0)}${fb.user.last_name.charAt(0)}`\n : 'A'}\n \n \n \n {fb.user ? `${fb.user.first_name} ${fb.user.last_name}` : 'Anonymous'}\n \n \n {fb.message}\n \n \n \n ));\n };\n\n return (\n \n \n Feedback for {subCategoryName}\n \n\n {loading ? (\n
    \n \n
    \n ) : (\n <>\n {/* Inline Feedback Display */}\n {renderInlineFeedbacks()}\n\n {/* Show \"View more\" if more than 2 feedback items exist */}\n {feedbacks.length > 2 && (\n setDrawerOpened(true)}\n compact\n mb=\"md\"\n >\n View more feedback\n \n )}\n \n )}\n\n {/* Inline Textarea for feedback submission */}\n setNewFeedback(e.currentTarget.value)}\n autosize\n minRows={2}\n mb=\"md\"\n />\n submitFeedback(newFeedback, () => setNewFeedback(''))} />\n\n {/* Drawer for viewing all feedback and submitting additional feedback */}\n setDrawerOpened(false)}\n title={`All Feedback for ${subCategoryName}`}\n position=\"right\"\n size=\"xl\"\n >\n \n {feedbacks.length === 0 ? (\n No feedback yet.\n ) : (\n feedbacks.map((fb) => (\n \n \n {fb.user\n ? `${fb.user.first_name.charAt(0)}${fb.user.last_name.charAt(0)}`\n : 'A'}\n \n \n \n {fb.user ? `${fb.user.first_name} ${fb.user.last_name}` : 'Anonymous'}\n \n \n {fb.message}\n \n \n \n ))\n )}\n\n setDrawerFeedback(e.currentTarget.value)}\n autosize\n minRows={3}\n my=\"md\"\n />\n submitFeedback(drawerFeedback, () => setDrawerFeedback(''))} buttonText=\"Post Feedback\" />\n \n \n
    \n );\n};\n\nexport default SubcategoryFeedback;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport RoadmapDetails from \"./RoadmapDetails\";\nimport RoadmapTimeline from \"./RoadmapTimeline\";\nimport PackageSelector from \"./PackageSelector\";\nimport { create } from \"zustand\";\nimport useStartupStore from \"../stores/startupStore\";\nimport OpeningRoles from \"../components/Startups/OpeningRoles\";\nimport Modal from \"./Modal\";\nimport fetchApi from \"../components/Lib/api\";\nimport TableOfContentsFloating from \"./TOC\";\nimport GuideEditor from \"./GuideEditor\";\nimport DocumentUpload from \"./DocumentUpload\";\nimport FeatureButton from \"./FeatureButton\";\nimport TaskBoardsManager from \"./TaskBoardsManager\";\nimport SubcategoryFeedback from \"./SubcategoryFeedback\";\n\nexport const useRoadmapStore = create((set, get) => ({\n date: null,\n setDate: (newDate) => set({ date: newDate }),\n endDate: null,\n setEndDate: (newEndDate) => set({ endDate: newEndDate }),\n duration: \"0\",\n setDuration: (newDuration) => set({ duration: newDuration }),\n opened: false,\n setOpened: (isOpened) => set({ opened: isOpened }),\n loading: false,\n setLoading: (isLoading) => set({ loading: isLoading }),\n\n handleUpdate: async (slug, setProgram) => {\n const { date, duration, setOpened, setLoading, endDate } = get();\n setOpened(true);\n setLoading(true);\n console.log(setProgram);\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/update_roadmap_duration`,\n \"PATCH\",\n { roadmap_duration: duration, start_date: date, end_date: endDate }\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setProgram({ ...res.program });\n console.log(res.program);\n } else {\n const { error } = await response.json();\n console.error(error);\n }\n } catch (error) {\n console.error(\"Error during role update:\", error);\n } finally {\n setOpened(false);\n setLoading(false);\n }\n },\n}));\n\nconst StartupBodyContainer = styled.div`\n display: grid;\n grid-template-columns: repeat(14, 1fr);\n gap: 20px;\n min-height: 150vh;\n`;\n\nconst LeftColumn = styled.div`\n border-radius: 8px;\n grid-column: ${({ showTask }) => (showTask ? \"1 / span 14\" : \"1 / span 11\")};\n display: flex;\n flex-direction: column;\n gap: 60px;\n\n @media (max-width: 1024px) {\n grid-column: 1 / span 12;\n }\n`;\n\nconst RightColumn = styled.div`\n border-radius: 8px;\n grid-column: 12 / span 3;\n display: flex;\n flex-direction: column;\n gap: 20px;\n\n @media (max-width: 1024px) {\n grid-column: 1 / span 12;\n }\n`;\n\nconst StartupBody = () => {\n const guideEditorRef = useRef(null);\n const [showTask, setShowTask] = useState(false);\n\n const { selectedProgram, program, isMember, isOwner } = useStartupStore(\n (state) => ({\n program: state.program,\n selectedProgram: state.selectedProgram,\n isMember: state.isMember,\n })\n );\n\n return (\n \n \n
    \n \n {program && program.categories.length && showTask ? (\n \n ) : (\n \n )}\n
    \n
    \n {!showTask && (\n \n {isOwner || isMember ? (\n \n ) : (\n \n )}\n {program && program.categories.length && (\n \n )}\n {isMember && (\n <>\n setShowTask(!showTask)}\n />\n \n )}\n \n \n )}\n
    \n );\n};\n\nconst RoadmapCompletionDuration = ({ slug }) => {\n const { opened, setOpened } = useRoadmapStore();\n\n console.log(opened);\n\n // const dateDiff = program?.last_target_update\n // ? moment().diff(moment(program?.last_target_update), \"days\")\n // : 7;\n\n return (\n <>\n setOpened(true)} />\n \n \n \n \n );\n};\n\nexport default StartupBody;\n","import * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { extend } from \"@syncfusion/ej2-base\";\nimport {\n KanbanComponent,\n ColumnsDirective,\n ColumnDirective,\n} from \"@syncfusion/ej2-react-kanban\";\nimport useStartupStore from \"../stores/startupStore\";\nimport fetchApi from \"../components/Lib/api\";\n\n// Helper function to generate tags from subcategory name (if real tags not available)\nconst generateTags = (subName) => {\n if (!subName) return \"\";\n const words = subName.split(\" \");\n if (words.length > 1) {\n return words.slice(0, 2).join(\", \");\n }\n return subName;\n};\n\n// Transform the program data into a flat array of Kanban cards (one per subcategory)\nconst transformProgramData = (program) => {\n let cards = [];\n console.log(\"Program data received:\", program); // Debug log\n\n if (!program || !program.categories || program.categories.length === 0) {\n console.log(\"No valid program data found\"); // Debug log\n return cards;\n }\n\n program.categories.forEach((category, catIndex) => {\n // Support both subcategories and sub_categories property names\n const subCategories =\n category.subcategories || category.sub_categories || [];\n\n if (subCategories.length === 0) {\n console.log(`No subcategories found for category: ${category.name}`); // Debug log\n }\n\n subCategories.forEach((sub, subIndex) => {\n // Map status values to valid column keyFields\n // If status is missing or invalid, default to \"Open\"\n let mappedStatus = \"Open\"; // Default\n if (sub.status) {\n const status = sub.status.toLowerCase();\n if (status.includes(\"progress\") || status === \"in progress\") {\n mappedStatus = \"InProgress\";\n } else if (status.includes(\"review\")) {\n mappedStatus = \"Review\";\n } else if (\n status.includes(\"done\") ||\n status.includes(\"close\") ||\n status === \"closed\"\n ) {\n mappedStatus = \"Close\";\n } else if (\n status.includes(\"open\") ||\n status === \"todo\" ||\n status === \"to do\"\n ) {\n mappedStatus = \"Open\";\n }\n }\n\n // Handle assignees - ensure it's always an array of valid user objects\n let assignees = [];\n if (sub.assignees && Array.isArray(sub.assignees)) {\n assignees = sub.assignees;\n } else if (sub.assigned_users && Array.isArray(sub.assigned_users)) {\n assignees = sub.assigned_users;\n }\n\n // Create a unique ID if not present\n const cardId = sub.id || `sub-${catIndex}-${subIndex}`;\n\n // Create the card with all required properties\n cards.push({\n Id: cardId,\n Title: sub.name || `Untitled Task ${cardId}`,\n Status: mappedStatus,\n Summary:\n Array.isArray(sub.guide?.blocks) && sub.guide.blocks.length > 0\n ? sub.guide.blocks[0]?.data?.text\n : sub.description || \"\",\n\n Assignee: assignees,\n Category: category.name || \"Uncategorized\",\n Tags: sub.tags || generateTags(sub.name),\n Priority: \"Normal\",\n Color: \"#673AB8\",\n });\n });\n });\n\n console.log(\"Transformed cards:\", cards); // Debug log\n return cards;\n};\n\nconst KanbanBoard = () => {\n const [kanbanData, setKanbanData] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n\n // Get program from store\n const { program } = useStartupStore((state) => ({\n program: state.program,\n }));\n\n // Transform program data when it changes\n useEffect(() => {\n if (program) {\n const cards = transformProgramData(program);\n setKanbanData(cards);\n setIsLoading(false);\n }\n }, [program]);\n\n if (isLoading) {\n return
    Loading Kanban board...
    ;\n }\n\n if (kanbanData.length === 0) {\n return (\n
    \n No tasks found. Make sure your program has categories with\n subcategories.\n
    \n );\n }\n\n // Status color mapping\n const statusColors = {\n Open: \"#02897B\",\n InProgress: \"#673AB8\",\n Review: \"#1F88E5\",\n Close: \"#E64A19\",\n };\n\n // Card rendering function to apply styling\n const cardRendered = (args) => {\n if (!args.data || !args.element) return;\n\n const status = args.data.Status || \"Open\";\n const color = statusColors[status] || \"#ccc\";\n args.element.style.borderLeft = \"5px solid \" + color;\n };\n\n // Column header template\n const columnTemplate = (props) => {\n return (\n
    \n
    \n
    {props.headerText}
    \n
    \n );\n };\n\n const truncateText = (text, maxLength = 75) => {\n if (!text || text.length <= maxLength) return text;\n return text.substring(0, maxLength) + \"...\";\n };\n\n // Card template\n const cardTemplate = (props) => {\n if (!props) return null;\n\n return (\n
    \n
    \n
    \n
    \n {props.Title || \"Untitled\"}\n
    \n
    \n
    \n\n {props.Summary && (\n \n
    {truncateText(props.Summary)}
    \n
    \n )}\n\n
    \n {/* Display tags if available */}\n {props.Tags &&\n typeof props.Tags === \"string\" &&\n props.Tags.split(\",\").map((tag, index) => (\n
    \n {tag.trim()}\n
    \n ))}\n\n {/* Display assignee avatars */}\n
    \n {Array.isArray(props.Assignee) &&\n props.Assignee.map((user, index) => (\n \n {getUserInitials(user)}\n
    \n ))}\n
    \n \n \n );\n };\n\n // Helper function to get user initials\n const getUserInitials = (user) => {\n if (!user) return \"\";\n\n // Try all possible ways the user object might store first/last name\n const firstName =\n user.first_name ||\n user.firstName ||\n (user.user && user.user.first_name) ||\n \"\";\n const lastName =\n user.last_name ||\n user.lastName ||\n (user.user && user.user.last_name) ||\n \"\";\n\n let initials = \"\";\n if (firstName) initials += firstName[0].toUpperCase();\n if (lastName) initials += lastName[0].toUpperCase();\n\n return initials || \"?\";\n };\n\n // Helper function to get full name for tooltip\n const getUserFullName = (user) => {\n if (!user) return \"Unknown\";\n\n const firstName =\n user.first_name ||\n user.firstName ||\n (user.user && user.user.first_name) ||\n \"\";\n const lastName =\n user.last_name ||\n user.lastName ||\n (user.user && user.user.last_name) ||\n \"\";\n\n return [firstName, lastName].filter(Boolean).join(\" \") || \"Unknown User\";\n };\n\n async function updateSubCategoryStatus(subCategoryId, newStatus) {\n try {\n const response = await fetchApi(\n `/sub_categories/${subCategoryId}/update_status`,\n \"PATCH\",\n { sub_category: { status: newStatus } }\n );\n\n if (!response.ok) {\n const errorData = await response.json();\n console.error(\"Error updating status:\", errorData);\n return;\n }\n\n const data = await response.json();\n console.log(\"Status updated successfully:\", data);\n // Optionally update your UI or application state based on data\n } catch (error) {\n console.error(\"Error updating status:\", error.message);\n }\n }\n\n const onDragStop = (args) => {\n updateSubCategoryStatus(args.data[0].Id, args.data[0].Status);\n };\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n );\n};\n\nexport default KanbanBoard;\n","import React from 'react';\nimport { registerLicense } from '@syncfusion/ej2-base';\nimport {\n GanttComponent,\n ColumnsDirective,\n ColumnDirective,\n EventMarkersDirective,\n EventMarkerDirective,\n Inject,\n Selection,\n Sort,\n Filter,\n DayMarkers,\n Resize\n} from '@syncfusion/ej2-react-gantt';\nimport useStartupStore from '../stores/startupStore';\n\n// Register your Syncfusion license key\nregisterLicense('ORg4AjUWIQA/Gnt2XVhhQlJHfV5AQmBIYVp/TGpJfl96cVxMZVVBJAtUQF1hTH5RdEBjUXpYcndVRmlc');\n\n// Helper function to transform the program object into Gantt tasks\nfunction transformProgramToTasks(program) {\n if (!program || program.loading || !program.categories) return [];\n \n // Filter out categories without start_date or end_date\n const validCategories = program.categories.filter(\n category => category.start_date && category.end_date\n );\n \n return validCategories.map((category) => {\n const parentEnd = new Date(category.end_date);\n // Check for either assigned_users or assignedUsers property\n const usersArray = category.assigned_users || category.assignedUsers || [];\n // Compute the assigned users string using first_name property.\n const resources =\n usersArray.length > 0\n ? usersArray.map(user => user.user.first_name).join(', ')\n : \"No users assigned\";\n \n // Filter out sub_categories without start_date/start_day or end_date/end_day\n const validSubCategories = (category.sub_categories || []).filter(sub => \n (sub.start_date || sub.start_day) && (sub.end_date || sub.end_day)\n );\n \n return {\n TaskID: category.id,\n TaskName: category.name,\n StartDate: new Date(category.start_date),\n EndDate: parentEnd,\n AssignedUsers: resources, // computed field for assigned users\n subtasks: validSubCategories.map((sub, index, arr) => {\n let subStart = new Date(sub.start_date || sub.start_day);\n let subEnd = new Date(sub.end_date || sub.end_day);\n // Chain dependencies: for subsequent subtasks, set predecessor to previous subtask's ID.\n const predecessor = index > 0 ? arr[index - 1].id + \"FS\" : \"\";\n \n return {\n TaskID: sub.id,\n TaskName: sub.name,\n StartDate: subStart,\n EndDate: subEnd,\n Predecessor: predecessor,\n Progress: sub.progress !== undefined ? sub.progress : 40,\n AssignedUsers: resources // Add assigned users for subtasks too\n };\n })\n };\n });\n}\n\n// Utility function to compute dynamic project dates with one-week padding\nfunction computeProjectDates(program) {\n if (!program || !program.categories || program.categories.length === 0) {\n return { projectStartDate: new Date(), projectEndDate: new Date() };\n }\n \n // Filter out categories without start_date or end_date\n const validCategories = program.categories.filter(\n category => category.start_date && category.end_date\n );\n \n if (validCategories.length === 0) {\n return { projectStartDate: new Date(), projectEndDate: new Date() };\n }\n \n const startDates = validCategories.map(cat => new Date(cat.start_date).getTime());\n const endDates = validCategories.map(cat => new Date(cat.end_date).getTime());\n const earliestStart = new Date(Math.min(...startDates));\n const latestEnd = new Date(Math.max(...endDates));\n const oneWeek = 7 * 24 * 60 * 60 * 1000; // one week in milliseconds\n return {\n projectStartDate: new Date(earliestStart.getTime() - oneWeek),\n projectEndDate: new Date(latestEnd.getTime() + oneWeek)\n };\n}\n\n// Gantt configuration settings for static parts\nconst gridLines = 'Both';\n// Timeline settings: Top tier shows Month & Year; bottom tier shows weekday abbreviations.\nconst timelineSettings = {\n topTier: { unit: 'Month', format: 'MMM yyyy', height: 50 },\n bottomTier: { unit: 'Day', format: 'EEE', height: 30 }\n};\n// Label settings: left label shows TaskName; right label uses computed assignedUsers.\nconst labelSettings = {\n leftLabel: 'TaskName',\n rightLabel: 'AssignedUsers'\n};\n\nfunction ProgramGantt() {\n const { program } = useStartupStore((state) => ({\n program: state.program\n }));\n\n if (!program) {\n return
    Loading program data...
    ;\n }\n\n // Transform program object into tasks for the Gantt chart\n const tasks = transformProgramToTasks(program);\n \n // Check if we have any valid tasks\n if (tasks.length === 0) {\n return
    No valid program data with start and end dates available.
    ;\n }\n \n // Compute dynamic project dates with one-week padding\n const { projectStartDate, projectEndDate } = computeProjectDates(program);\n\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n {/* Adding event markers for even-indexed categories */}\n \n {program.categories &&\n program.categories\n .filter(category => category.start_date && category.end_date)\n .map((category, index) => {\n if (index % 2 === 0) {\n return (\n \n );\n }\n return null;\n })}\n \n \n \n \n
    \n );\n}\n\nexport default ProgramGantt;","import React, { memo, useEffect, useState } from \"react\";\nimport { Button, Group, Loader, Menu, SegmentedControl } from \"@mantine/core\";\nimport { IconEye, IconEyeOff } from \"@tabler/icons-react\";\nimport fetchApi from \"../Lib/api\";\nimport { useParams } from \"react-router-dom\";\nimport HeaderAndSidebar from \"../Lib/HeaderAndSidebar\";\nimport MainContainer from \"../../stories/MainContainer\";\nimport StartupHeader from \"../../stories/StartupHeader\";\nimport StartupBody from \"../../stories/StartupBody\";\nimport useStartupStore from \"../../stores/startupStore\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport styled from \"styled-components\";\nimport { useTranslation } from \"react-i18next\";\nimport useLayoutStore from \"../../stores/useLayoutStore\";\nimport FullFeaturedKanbanWithMantine from \"../../stories/FullFeaturedKanban\";\nimport FullFeaturedGantt from \"../../stories/Gantt\";\n\n\nconst RoadmapHeader = styled.div`\n align-self: flex-start;\n`;\n\nconst HeaderTitle = styled.h3`\n font-weight: var(--font-weight-h4);\n color: var(--color-background-card);\n`;\n\nconst HeaderText = styled.p`\n color: #68706b;\n margin-top: 8px;\n`;\n\nconst NotFoundContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: 400px;\n text-align: center;\n padding: 2rem;\n background-color: #f8f9fa;\n`;\n\nconst NotFoundTitle = styled.h1`\n font-size: 3rem;\n font-weight: bold;\n color: #d9534f;\n margin-bottom: 1rem;\n`;\n\nconst NotFoundDescription = styled.p`\n font-size: 1.25rem;\n color: #6c757d;\n margin-bottom: 1.5rem;\n`;\n\nconst MemoStartupShow = memo(StartupShow);\n\n// Custom hook for fetching startup data\nconst useStartup = (slug, setStartup) => {\n return useQuery({\n queryKey: [\"startup\", slug], // Query key for caching\n queryFn: async () => {\n const response = await fetchApi(`/startup_entities/${slug}`, \"GET\");\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.message || \"Failed to fetch startup data\");\n }\n\n let data = await response.json();\n setStartup(data);\n return data;\n },\n retry: 1, // Retry once on failure\n staleTime: 5 * 60 * 1000, // Consider data fresh for 5 minutes\n cacheTime: 30 * 60 * 1000, // Keep inactive data in cache for 30 minutes\n });\n};\n\nexport default function StartupContainer({ project }) {\n return (\n \n \n \n );\n}\n\nexport const handleFollowUnfollow = async (\n isFollowing,\n slug,\n setIsFollowing\n) => {\n try {\n const endpoint = !isFollowing\n ? `/startup_entities/${slug}/followings`\n : `/startup_entities/${slug}/followings/${slug}`;\n const method = !isFollowing ? \"POST\" : \"DELETE\";\n const response = await fetchApi(endpoint, method);\n\n if (response.ok) {\n const res = await response.json();\n if (setIsFollowing) setIsFollowing(!isFollowing);\n } else {\n const { error } = await response.json();\n console.error(error);\n }\n } catch (error) {\n console.error(\"Error during follow/unfollow:\", error);\n }\n\n if (!setIsFollowing) return !isFollowing;\n};\n\nfunction StartupShow({ project }) {\n const { slug } = useParams();\n const { t } = useTranslation();\n const [value, setValue] = useState(\"editor\");\n\n const { setStartup, logTime, isOwner, isMember } = useStartupStore(\n (state) => ({\n setStartup: state.setStartup,\n logTime: state.logTime,\n isOwner: state.isOwner,\n isMember: state.isMember,\n })\n );\n\n const { setIsToggle, setIsWorkMode } = useLayoutStore();\n\n const { isLoading, isError, error } = useStartup(slug, setStartup);\n\n useEffect(() => {\n setIsToggle(true);\n }, []);\n\n // Log time spent on the page when the component unmounts or page unloads\n useEffect(() => {\n window.addEventListener(\"beforeunload\", () => logTime(slug));\n\n return () => {\n window.removeEventListener(\"beforeunload\", () => logTime(slug));\n logTime(slug); // Call logTime manually on unmount\n };\n }, [logTime, slug]);\n\n // Show loading indicator while the data is being fetched\n if (isLoading) {\n return (\n \n );\n }\n\n // Show error message if there's an error fetching the data\n if (isError) {\n console.log(error);\n return (\n \n \n 404 - {t(\"startups_page.no_startup.not_found\")}\n \n \n {t(\"startups_page.no_startup.desc\")}\n \n (window.location.href = \"/dashboard/#/\")}\n >\n {t(\"startups_page.no_startup.buttonText\")}\n \n \n );\n }\n\n return (\n \n {/* */}\n \n \n \n {t(\"startups_page.roadmaps\")}\n {(isOwner || isMember) && }\n \n \n {t(\"startups_page.desc\")}{\" \"}\n \n {t(\"startups_page.desc_link\")}\n \n \n \n {value === \"editor\" && }\n {value === \"gantt\" && }\n {value === \"kanban\" && }\n \n );\n}\n\nexport const StartupPrivacy = ({ startup, setStartup }) => {\n const { t } = useTranslation();\n\n const handleSubmit = async (val) => {\n if (startup.startup_entity.public_listed === val) return;\n\n try {\n const response = await fetchApi(\n `/startup_entities/${startup.startup_entity.slug}`,\n \"PATCH\",\n {\n startup_entity: { public_listed: val },\n }\n );\n\n if (response.ok) {\n const res = (await response.json()).startup_entity;\n console.log(res);\n\n setStartup((p) => ({\n ...p,\n startup_entity: {\n ...p.startup_entity,\n public_listed: res.public_listed,\n },\n }));\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n return (\n \n \n \n ) : (\n \n )\n }\n >\n {t(\"startups_page.privacy.privacy\")}\n \n \n \n
    \n
    \n handleSubmit(true)}\n checked={startup.startup_entity.public_listed === true}\n />\n
    \n \n
    \n
    \n
    \n handleSubmit(false)}\n checked={startup.startup_entity.public_listed === false}\n className=\"shrink-0 border-gray-200 rounded-full text-blue-600 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none \"\n />\n
    \n \n
    \n
    \n
    \n );\n};\n","import React, { useContext, useEffect, useState } from \"react\";\nimport { Routes, Route } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport Layout from \"../Lib/Layout\";\nimport UserProvider from \"../Lib/UserContext\";\nimport {\n IconBuildingSkyscraper,\n IconChartLine,\n IconScale,\n IconTrophy,\n} from \"@tabler/icons-react\";\nimport {\n Alert,\n Anchor,\n Button,\n Checkbox,\n Group,\n Menu,\n Modal,\n Stack,\n Textarea,\n Tooltip,\n} from \"@mantine/core\";\nimport {\n IconAlertCircle,\n IconArrowLeft,\n IconBulb,\n IconExternalLink,\n IconRocket,\n} from \"@tabler/icons-react\";\nimport fetchApi from \"../Lib/api\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport QueryProvider from \"../Lib/QueryClientProvider\";\nimport useUserStore from \"../../stores/userStore\";\nimport { IconLayersDifference } from \"@tabler/icons-react\";\nimport { IconCashBanknote } from \"@tabler/icons-react\";\nimport SignUpModal from \"../Authentication/SignUpModal\";\n\nconst Title = styled.h2`\n font-size: var(--font-size-h3);\n font-weight: var(--font-weight-body-2);\n color: var(--color-background-card);\n line-height: 26px;\n`;\n\nconst Description = styled.p`\n margin-top: 4px;\n color: var(--color-background-main);\n`;\n\nfunction IdeaValidation({}) {\n const [idea, setIdea] = useState(\"\");\n const [validateToken, setValidateToken] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [opened, { close, open }] = useDisclosure(false);\n const [ideaShort, setIdeaShort] = useState(\"\");\n const [checked, setChecked] = useState(true);\n const { user = null } = useUserStore((state) => state.user || {});\n const [evaluation, setEvaluation] = useState({});\n const [showSignUpModal, setShowSignUpModal] = useState(false);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setShowSignUpModal(!user);\n }, 3000);\n return () => clearTimeout(timer);\n }, []);\n\n const onSubmit = async () => {\n if (idea.length < 20) {\n setIdeaShort(\"Idea empty or too short to evaluate.\");\n return;\n }\n try {\n setLoading(true);\n const res = await fetchApi(\"/chat\", \"POST\", {\n message: idea,\n temporary: !checked,\n });\n\n if (res.ok) {\n const responseData = await res.json();\n const { tokens = {}, ...evaluation } = responseData;\n console.log(evaluation, tokens);\n setValidateToken(tokens.startup_creation_token);\n setEvaluation(evaluation);\n } else {\n console.error(\"HTTP error! Failed to validate idea\");\n }\n } catch (error) {\n console.error(\"Error:\", error.message);\n } finally {\n setLoading(false);\n }\n };\n return (\n <>\n {opened && (\n \n
    \n

    \n You will need to complete your profile to have access to this\n feature.\n

    \n
    \n
    \n \n \n Complete Profile\n \n
    \n \n )}\n {showSignUpModal && (\n \n \n \n )}\n
    \n window.history.back()} target=\"_blank\">\n \n \n Go back\n \n \n \n
    \n \n Explore the potential of your business ideas with our Idea\n Validation Tool!\n \n \n Designed to objectively assess the viability of your concepts in\n today's competitive market, this tool evaluates key factors such\n as market demand, competitive advantage, feasibility, scalability,\n and revenue potential. Each idea is scored out of 100, with\n detailed feedback provided to help refine your strategy. Embrace\n this opportunity to innovate and enhance your business ideas,\n guided by clear, actionable insights.\n \n
    \n \n
    \n }\n variant=\"outline\"\n color=\"green\"\n py={4}\n style={{\n maxWidth: \"fit-content\",\n marginLeft: \"auto\",\n marginBottom: \"4px\",\n }}\n >\n An ideal score is 80 and above.\n \n\n {\n if (ideaShort) setIdeaShort(\"\");\n setIdea(event.currentTarget.value.slice(0, 400));\n }}\n />\n\n \n setChecked(event.currentTarget.checked)}\n label=\"You agree to all our terms and conditions \"\n />\n\n
    \n

    ({idea.length}/400)

    \n
    \n
    \n
    \n \n \n }\n loading={loading}\n size=\"xl\"\n >\n Validate Idea\n \n \n {evaluation &&\n !isNaN(+evaluation?.final_score?.split(\"/\")[0]) && (\n = 50}\n withinPortal\n >\n }\n size=\"xl\"\n component={user?.profile_complete ? \"a\" : \"button\"}\n href={\n user?.profile_complete && validateToken\n ? `/startup_entities/new/${validateToken}`\n : undefined\n }\n onClick={!user?.profile_complete ? open : undefined}\n >\n Create Startup\n \n \n )}\n }\n size=\"xl\"\n component={user?.profile_complete ? \"a\" : \"button\"}\n href={\n user?.profile_complete ? \"/project_entities/new\" : undefined\n }\n onClick={!user?.profile_complete ? open : undefined}\n >\n Create Project\n \n \n
    \n \n
    \n
    \n \n );\n}\n\nconst IdeaValidationSummary = ({ evaluation }) => {\n return (\n
    \n {/* Overall Score and Feedback Section */}\n
    \n {/* Feedback Section */}\n
    \n

    Feedback

    \n
    \n
    \n Strength:\n

    \n {evaluation?.overall_feedback?.strength ||\n \"This will highlight the strengths of your idea, like addressing a unique market need.\"}\n

    \n
    \n
    \n Improvement:\n

    \n {evaluation?.overall_feedback?.improvement ||\n \"Suggestions for improvement will be shown here, such as refining your value proposition.\"}\n

    \n
    \n
    \n Reference Trends:\n

    \n {evaluation?.overall_feedback?.reference_trends ||\n \"Relevant market trends will appear here, like rising demand for tech-driven solutions.\"}\n

    \n
    \n
    \n
    \n\n
    \n {/* Overall Score */}\n
    \n
    \n

    \n Overall Score\n

    \n \n {evaluation.final_score || \"0/100\"}\n \n
    \n
    \n\n {/* Details Section */}\n
    \n

    Details

    \n\n {/* Market Demand */}\n
    \n
    \n \n Market Demand\n
    \n \n {evaluation.market_demand || \"0/20\"}\n \n
    \n\n {/* Feasibility */}\n
    \n
    \n \n Feasibility\n
    \n \n {evaluation.feasibility || \"0/20\"}\n \n
    \n\n {/* Scalability */}\n
    \n
    \n \n Scalability\n
    \n \n {evaluation.scalability || \"0/20\"}\n \n
    \n\n
    \n
    \n \n Competitive\n
    \n \n {evaluation.competitive_advantage || \"0/20\"}\n \n
    \n\n {/* Revenue Model */}\n
    \n
    \n \n Revenue Model\n
    \n \n {evaluation.revenue_model || \"0/20\"}\n \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default function AuthenticationPage() {\n return (\n \n \n \n \n } />\n \n \n \n \n );\n}\n","import { Grid, Group, Stack, Text, Textarea, Title } from \"@mantine/core\";\nimport { industries, skills } from \"./data\";\nimport React, { useState } from \"react\";\nimport { MultiSelect } from \"react-multi-select-component\";\n\nexport default function AboutMe({ form, showError }) {\n const [selectedExperts, setSelectedExperts] = useState(\n form.values.expert_in.map((m) => ({ label: m, value: m }))\n );\n const [selectedSkills, setSelectedSkills] = useState(\n form.values.skills.map((m) => ({ label: m, value: m }))\n );\n const [selectedIndustries, setSelectedIndustries] = useState(\n form.values.industries.map((m) => ({ label: m, value: m }))\n );\n return (\n <>\n \n \n \n \n About Me\n \n \n Use this section to share your personality, interests, or anything\n else you'd like others to know.\n \n \n \n \n \n \n \n {form.values.about_me.length}/500\n \n {\n const updatedValue = event.currentTarget.value;\n form.setFieldValue(\"about_me\", updatedValue.slice(0, 500));\n }}\n error={form.errors.about_me}\n minRows={3}\n maxLength={500}\n />\n \n \n \n \n\n \n \n \n \n Expert In\n \n \n Choose and showcase your specialized skills and knowledge.\n \n \n \n \n \n \n \n {form.values.expert_in.length}/5\n \n {\n if (e.length > 5) return;\n setSelectedExperts(e);\n form.setFieldValue(\n \"expert_in\",\n e.map((m) => m.label)\n );\n }}\n className=\"max-w-full\"\n />\n {showError && !selectedExperts.length && (\n \n Select at least one field\n \n )}\n \n \n \n \n\n \n \n \n \n Industries\n \n \n Pick your industry focus to emphasize professional experience and\n sectors of interest.\n \n \n \n \n \n \n \n {form.values.industries.length}/5\n \n {\n if (e.length > 5) return;\n setSelectedIndustries(e);\n form.setFieldValue(\n \"industries\",\n e.map((m) => m.label)\n );\n }}\n className=\"max-w-full\"\n />\n {showError && !selectedIndustries.length && (\n \n Select at least one industry\n \n )}\n \n \n \n \n\n \n \n \n \n Skill\n \n \n Select your specific talents and proficiencies.\n \n \n \n \n \n \n \n {form.values.skills.length}/15\n \n {\n if (e.length > 15) return;\n setSelectedSkills(e);\n form.setFieldValue(\n \"skills\",\n e.map((m) => m.label)\n );\n }}\n className=\"max-w-full\"\n />\n {showError && !selectedSkills.length && (\n \n Select at least one skill\n \n )}\n \n \n \n \n \n );\n}\n","import {\n Avatar,\n Button,\n Group,\n Paper,\n Stack,\n Text,\n Title,\n} from \"@mantine/core\";\nimport React, { useEffect, useState } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport { useParams } from \"react-router-dom\";\nimport Notification from \"../Lib/Notification\";\n\nexport default function MeetingConfirmation() {\n const { token } = useParams();\n const [meeting, setMeeting] = useState(null);\n const [notification, setNotification] = useState(null);\n console.log(token);\n\n const fetchData = async (index) => {\n const url = [\n `/meetings/verify/${token}`,\n `/meetings/accept/${token}`,\n `/meetings/reject/${token}`,\n ][index];\n try {\n const response = await fetchApi(url, index ? \"POST\" : \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n\n if (!index) setMeeting(res);\n else window.location.href = `/startup_entities/${res.slug}`;\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.log(msg);\n }\n } catch (error) {\n console.error(\"Error during shedule confirmation:\", error);\n }\n };\n\n useEffect(() => {\n fetchData(0);\n }, []);\n\n if (!meeting) return <>;\n\n return (\n
    \n
    \n \n {notification && }\n
    \n

    Meeting Verification

    \n\n
    \n
    \n \n
    \n {meeting.title}\n
    \n
    \n
    \n \n
    \n {meeting.description}\n
    \n
    \n
    \n \n
    \n {new Date(meeting.scheduled_date).toLocaleString()}\n
    \n
    \n
    \n \n
    \n \n \n {meeting.organizer.first_name} {meeting.organizer.last_name}\n \n
    \n
    \n
    \n \n
    \n \n \n {meeting.startup.name}\n \n
    \n
    \n
    \n\n \n fetchData(1)}\n variant=\"default\"\n fullWidth\n className=\"px-12 h-12\"\n >\n Accept\n \n\n fetchData(2)}\n // onClick={() => (window.location.href = \"/dashboard\")}\n variant=\"default\"\n fullWidth\n className=\"text-red-700 px-12 h-12\"\n >\n Decline\n \n \n
    \n
    \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\n\n// Styled Components\nconst ProgressContainer = styled.div`\n width: 100%;\n background-color: #f3f3f3;\n border-radius: 8px;\n overflow: hidden;\n height: 20px;\n margin-top: 20px;\n position: relative;\n`;\n\nconst ProgressBar = styled.div`\n height: 100%;\n background-color: #3498db;\n transition: width 0.1s linear;\n`;\n\nconst ProgressText = styled.p`\n text-align: center;\n font-family: Arial, sans-serif;\n color: #666;\n margin-top: 10px;\n`;\n\nconst RemainingTime = styled.p`\n text-align: center;\n font-family: Arial, sans-serif;\n color: #666;\n font-size: 0.9rem;\n margin-top: 5px;\n`;\n\nconst DoneText = styled.p`\n text-align: center;\n font-family: Arial, sans-serif;\n color: #28a745;\n margin-top: 10px;\n`;\n\nconst TimeBasedProgressBar = ({ duration = 70000 }) => {\n const [progress, setProgress] = useState(0);\n const [remainingTime, setRemainingTime] = useState(duration);\n\n useEffect(() => {\n const interval = 100; // Update every 100ms\n const totalDuration = duration;\n\n const timer = setInterval(() => {\n setRemainingTime((prev) => Math.max(prev - interval, 0));\n\n const newProgress = Math.min(((totalDuration - remainingTime) / totalDuration) * 100, 100);\n setProgress(newProgress);\n\n if (remainingTime <= 0) {\n clearInterval(timer);\n }\n }, interval);\n\n return () => clearInterval(timer); // Cleanup on component unmount\n }, [remainingTime, duration]);\n\n const percentage = Math.floor(progress);\n const remainingSeconds = Math.ceil(remainingTime / 1000);\n\n return (\n
    \n \n \n \n Loading... {percentage}%\n {remainingTime > 0 && (\n Please hold on, we are preparing the roadmap timeline...\n )}\n {remainingTime <= 0 && Done! 🎉}\n
    \n );\n};\n\nexport default TimeBasedProgressBar;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\n// Styled components for different block types\nconst Paragraph = styled.p`\n color: #4a4a4a;\n font-size: 1rem;\n line-height: 1.6;\n margin-bottom: 1em;\n`;\n\nconst Header = styled.div`\n color: #2c3e50;\n margin-bottom: 0.5em;\n font-size: ${(props) => {\n switch (props.level) {\n case 1:\n return \"2em\";\n case 2:\n return \"1.75em\";\n case 3:\n return \"1.5em\";\n case 4:\n return \"1.25em\";\n case 5:\n return \"1em\";\n case 6:\n return \"0.875em\";\n default:\n return \"1em\";\n }\n }};\n`;\nconst List = styled.ul`\n list-style-type: disc;\n margin-left: 1.5em;\n margin-bottom: 1em;\n`;\n\nconst OrderedList = styled.ol`\n list-style-type: decimal;\n margin-left: 1.5em;\n margin-bottom: 1em;\n`;\n\nconst ListItem = styled.li`\n margin-bottom: 0.5em;\n`;\n\nconst ImageWrapper = styled.figure`\n margin: 1em 0;\n text-align: center;\n`;\n\nconst Image = styled.img`\n max-width: 100%;\n border-radius: 8px;\n`;\n\nconst Figcaption = styled.figcaption`\n margin-top: 0.5em;\n color: #7f8c8d;\n font-size: 0.9em;\n`;\n\nconst CodeBlock = styled.pre`\n background-color: #f8f7fa;\n color: #41314e;\n padding: 1em;\n border-radius: 8px;\n overflow-x: auto;\n margin-bottom: 1em;\n font-family: \"Courier New\", Courier, monospace;\n`;\n\nconst EmbedWrapper = styled.div`\n margin: 1em 0;\n text-align: center;\n`;\n\nconst LinkPreview = styled.div`\n display: flex;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n margin-bottom: 1em;\n text-decoration: none;\n color: inherit;\n\n &:hover {\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n }\n`;\n\nconst LinkImage = styled.div`\n flex: none;\n width: 120px;\n background-size: cover;\n background-position: center;\n`;\n\nconst LinkContent = styled.div`\n padding: 1em;\n flex: 1;\n`;\n\nconst LinkTitle = styled.h5`\n margin: 0 0 0.5em 0;\n font-size: 1em;\n color: #2c3e50;\n`;\n\nconst LinkDescription = styled.p`\n margin: 0 0 1em 0;\n font-size: 0.9em;\n color: #7f8c8d;\n`;\n\nconst LinkButton = styled.a`\n color: #3498db;\n text-decoration: none;\n font-weight: bold;\n\n &:hover {\n color: #2980b9;\n }\n`;\n\nconst FileAttachment = styled.div`\n display: flex;\n align-items: center;\n border: 1px solid #e0e0e0;\n padding: 1em;\n border-radius: 8px;\n margin-bottom: 1em;\n`;\n\nconst FileIcon = styled.div`\n flex: none;\n width: 50px;\n height: 50px;\n background-color: ${(props) => props.bgColor || \"#aa2284\"};\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n margin-right: 1em;\n font-weight: bold;\n`;\n\nconst FileInfo = styled.div`\n flex: 1;\n`;\n\nconst FileTitle = styled.div`\n font-size: 1em;\n margin-bottom: 0.5em;\n`;\n\nconst FileSize = styled.div`\n font-size: 0.9em;\n color: #7f8c8d;\n`;\n\nconst DownloadButton = styled.a`\n color: #3498db;\n text-decoration: none;\n font-weight: bold;\n margin-left: auto;\n\n &:hover {\n color: #2980b9;\n }\n`;\n\nconst EditorContentDisplay = ({ content }) => {\n let parsedContent;\n\n // Parse the content JSON\n if (typeof content === \"string\") {\n try {\n parsedContent = JSON.parse(content);\n } catch (e) {\n console.error(\"Invalid JSON content\", e);\n return null;\n }\n } else {\n parsedContent = content;\n }\n\n const renderInitials = (block) => {\n if (block.data.initials) {\n return (\n \n \n ({block.data.initials.data.initials})\n \n \n );\n }\n return null;\n };\n\n const renderBlock = (block, index) => {\n switch (block.type) {\n case \"paragraph\":\n return (\n \n \n {renderInitials(block)}\n \n );\n\n case \"header\":\n const level = Math.min(Math.max(block.data.level, 1), 6); // Ensure level is between 1 and 6\n const HeaderTag = `h${level}`;\n\n const headerStyles = {\n fontSize: `${2 - (level - 1) * 0.25}em`, // Dynamically scale font size\n marginBottom: \"1rem\",\n fontWeight: \"bold\", // Ensure headers stand out\n lineHeight: 1.2, // Improve readability\n };\n\n return {block.data.text};\n\n case \"list\":\n const ListTag = block.data.style === \"ordered\" ? OrderedList : List;\n return (\n \n {block.data.items.map((item, idx) => (\n \n \n {idx === block.data.items.length - 1 && renderInitials(block)}\n \n ))}\n \n );\n\n case \"image\":\n return (\n \n {block.data.caption\n {block.data.caption && (\n
    {block.data.caption}
    \n )}\n {renderInitials(block)}\n
    \n );\n\n case \"code\":\n return (\n \n {block.data.code}\n {renderInitials(block)}\n \n );\n\n case \"embed\":\n return (\n \n \n {block.data.caption && (\n
    {block.data.caption}
    \n )}\n {renderInitials(block)}\n
    \n );\n\n case \"linkTool\":\n const data = block.data;\n const meta = data.meta;\n return (\n \n \n \n {meta.title}\n {meta.description}\n \n Visit Website\n \n \n \n );\n\n case \"attaches\":\n const fileData = block.data.file;\n const title = block.data.title || fileData.name;\n const extensionColor = \"#aa2284\"; // Customize based on file type if needed\n const fileSize = (fileData.size / 1024).toFixed(1); // Size in KiB\n\n return (\n \n \n {fileData.extension.toUpperCase()}\n \n \n {title}\n {fileSize} KiB\n \n \n Download\n \n \n );\n\n case \"table\":\n return (\n \n \n {block.data.withHeadings && (\n \n \n {block.data.content[0].map((heading, headingIndex) => (\n \n {heading}\n \n ))}\n \n \n )}\n \n {block.data.withHeadings\n ? block.data.content.slice(1).map((row, rowIndex) => (\n \n {row.map((cell, cellIndex) => (\n \n {cell}\n \n ))}\n \n ))\n : block.data.content.map((row, rowIndex) => (\n \n {row.map((cell, cellIndex) => (\n \n {cell}\n \n ))}\n \n ))}\n \n
    \n {renderInitials(block)}\n \n );\n\n default:\n return null;\n }\n };\n\n return (\n
    \n {parsedContent?.blocks?.map((block, index) => renderBlock(block, index))}\n
    \n );\n};\n\nexport default EditorContentDisplay;\n","function validations(active) {\n if (active === 0) {\n return {\n user_type: (value) => {\n if (value === null) {\n return \"User type is required\";\n }\n return null;\n },\n };\n } else if (active === 1) {\n return {\n first_name: (value) => {\n if (!value) {\n return \"First name is required\";\n }\n return null;\n },\n\n last_name: (value) => {\n if (!value) {\n return \"Last name is required\";\n }\n return null;\n },\n\n // company: (value, values) => {\n // if (![2, 3].includes(values.user_type) && !value) {\n // return \"Company is required\";\n // }\n // return null;\n // },\n\n job_title: (value, values) => {\n if (![2, 3].includes(values.user_type) && !value) {\n return \"Job title is required\";\n }\n return null;\n },\n\n year_of_experience: (value) => {\n if (value < 0) {\n return \"Year of experience should be non-negative\";\n }\n return null;\n },\n\n // university: (value) => {\n // if (!value) {\n // return \"University is required\";\n // }\n // return null;\n // },\n\n // degree: (value, values) => {\n // if ([2, 3].includes(values.user_type) && !value) {\n // return \"Degree is required for students\";\n // }\n // return null;\n // },\n\n country: (value) => {\n if (!value) {\n return \"Country is required\";\n }\n return null;\n },\n\n city: (value) => {\n if (!value) {\n return \"City is required\";\n }\n return null;\n },\n };\n } else {\n return {\n about_me: (value) => {\n if (!value) {\n return \"About me is required\";\n }\n return null;\n },\n\n expert_in: (value) => {\n if (value.length === 0) {\n return \"Expertise is required\";\n }\n return null;\n },\n\n skills: (value) => {\n if (value.length === 0) {\n return \"Skills are required\";\n }\n return null;\n },\n\n industries: (value) => {\n if (value.length === 0) {\n return \"Industries are required\";\n }\n return null;\n },\n };\n }\n}\n\nexport { validations };\n","import React, { useCallback, useState } from \"react\";\nimport {\n Avatar,\n Button,\n Collapse,\n Modal,\n Stack,\n Text,\n Textarea,\n Title,\n} from \"@mantine/core\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport fetchApi from \"../Lib/api\";\nimport Notification from \"../Lib/Notification\";\nimport moment from \"moment\";\nimport FeatureButton from \"../../stories/FeatureButton\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function ContactMessage({ slug, isMember, role }) {\n const [opened, { open, close }] = useDisclosure(false);\n const [notification, setNotification] = useState(null);\n const [message_content, setMessageContent] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [messages, setMessages] = useState([]);\n const [oldMessages, setOldMessages] = useState([]);\n const [selectedChat, setSelectedChat] = useState(-1);\n const [reply, setReply] = useState(\"\");\n const [replies, setReplies] = useState([]);\n const [userMessage, setUserMessage] = useState(null);\n const { t } = useTranslation();\n\n const MessageItem = useCallback(\n ({\n id,\n avatar_url,\n first_name,\n last_name,\n created_at,\n message_content,\n handleChaSelect,\n }) => (\n
    \n \n
    \n
    \n \n {first_name} {last_name}\n \n \n {moment(created_at).format(\"MMM Do YYYY\")}\n \n
    \n \n {message_content}\n

    \n {handleChaSelect && (\n

    \n handleChaSelect && handleChaSelect(id)}\n type=\"button\"\n className=\"hs-collapse-toggle inline-flex items-center gap-x-1 text-sm font-semibold rounded-lg border border-transparent text-blue-600 hover:text-blue-800 disabled:opacity-50 disabled:pointer-events-none dark:text-blue-500 dark:hover:text-blue-400 dark:focus:outline-none dark:focus:ring-1 dark:focus:ring-gray-600\"\n >\n {selectedChat === id ? \"Hide\" : \"Show\"} chats\n \n \n \n \n

    \n )}\n
    \n
    \n ),\n [selectedChat]\n );\n\n const handleChaSelect = (id) => {\n setReply(\"\");\n if (selectedChat == id) setSelectedChat(-1);\n else {\n setSelectedChat(id);\n fetchReplies(id);\n }\n };\n\n const handleSend = async () => {\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/contact_messages`,\n \"POST\",\n {\n contact_message: { message_content },\n }\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setNotification({ type: \"success\", content: res.message });\n if (userMessage) {\n setUserMessage((p) => ({\n ...p,\n contact_messages_replies: [\n ...p.contact_messages_replies,\n { ...res.contact_message, user: res.user },\n ],\n }));\n } else {\n setUserMessage({ ...res.contact_message, user: res.user });\n }\n setMessageContent(\"\");\n console.log(\"Request sent successful!\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Request failed.\");\n }\n } catch (error) {\n console.error(\"Error during Sending request\", error);\n }\n };\n\n const handleReply = async () => {\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/contact_messages/${selectedChat}/contact_messages_replies`,\n \"POST\",\n {\n contact_messages_reply: { message_content: reply },\n }\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setNotification({ type: \"success\", content: res.message });\n setReplies((p) => [...p, { ...res.reply, user: res.user }]);\n setReply(\"\");\n console.log(\"Request sent successful!\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Request failed.\");\n }\n } catch (error) {\n console.error(\"Error during Sending request\", error);\n }\n };\n\n const fetchReplies = async (contact_id) => {\n setLoading(true);\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/contact_messages/${contact_id}/contact_messages_replies`,\n \"GET\"\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setReplies(res.replies);\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n } finally {\n setLoading(false);\n }\n };\n\n const fetchData = async (user) => {\n setLoading(true);\n console.log(user);\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/contact_messages${\n user ? \"/user_contact_messages\" : \"\"\n }`,\n \"GET\"\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(res)\n if (!user) {\n setMessages(res.unread_messages);\n setOldMessages(res.read_messages);\n } else setUserMessage(res.user_contact_messages[0]);\n open();\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <>\n {opened && (\n {\n setNotification(null);\n close();\n }}\n size=\"xl\"\n radius=\"md\"\n transitionProps={{ transition: \"fade\", duration: 200 }}\n className=\"p-5\"\n withCloseButton={false}\n >\n {isMember ? (\n \n
    \n {\" \"}\n \n {isMember ? \"New Messages\" : \"Send a message to the team\"}\n \n \n {!messages.length && (\n \n No unread messages\n \n )}\n\n {messages.map(({ contact_message }) => (\n \n \n
    \n \n
    \n {\" \"}\n \n {replies.map((reply) => (\n \n \n
    \n
    \n ))}\n
    \n
    \n {role < 1 && (\n \n setReply(event.currentTarget.value)\n }\n onKeyDown={(event) => {\n if (event.key === \"Enter\") {\n handleReply();\n }\n }}\n />\n )}\n \n
    \n ))}\n
    \n
    \n
    \n \n Old Messages\n \n \n {!oldMessages.length && (\n \n No previous messages\n \n )}\n {oldMessages.map(({ contact_message }) => (\n \n \n
    \n \n
    \n {\" \"}\n \n {replies.map((reply) => (\n \n \n
    \n
    \n ))}\n
    \n
    \n {role < 1 && (\n \n setReply(event.currentTarget.value)\n }\n onKeyDown={(event) => {\n if (event.key === \"Enter\") {\n handleReply();\n }\n }}\n />\n )}\n \n
    \n ))}\n
    \n
    \n
    \n ) : (\n \n {notification && }\n \n Messages\n \n {userMessage && (\n <>\n <>\n \n
    \n \n {userMessage.contact_messages_replies &&\n userMessage.contact_messages_replies.map((reply) => (\n \n \n
    \n
    \n ))}\n \n )}\n \n setMessageContent(event.currentTarget.value)\n }\n />\n\n \n Send message\n \n
    \n )}\n \n )}\n\n fetchData(!isMember)}\n />\n \n );\n}\n","import React, { useContext, useEffect, useState } from \"react\";\n\nimport ReactJoyride from \"react-joyride\";\nimport HeaderAndSidebar from \"../Lib/HeaderAndSidebar\";\nimport useUserStore from '../../stores/userStore';\n\nexport default function Dashboard({ children }) {\n return }>{children};\n}\n\nconst Tour = () => {\n const [showTour, setShowTour] = useState(false);\n const {\n user: { user },\n } = useUserStore((state) => state.user);\n\n useEffect(() => {\n // Check if the tour has been shown before\n const tourShown = localStorage.getItem(\"tourShown\");\n\n if (!tourShown) {\n // Tour hasn't been shown before\n setShowTour(true);\n // Mark the tour as shown\n localStorage.setItem(\"tourShown\", \"true\");\n }\n }, []);\n\n return (\n <>\n {!user.profile_complete && showTour && (\n \n )}\n \n );\n};\n","import React, { useContext, useEffect, useState, useCallback } from \"react\";\nimport { Avatar, Group, Stack, ThemeIcon, Title } from \"@mantine/core\";\nimport { IconMessages } from \"@tabler/icons-react\";\nimport moment from \"moment\";\nimport fetchApi from \"../../Lib/api\";\nimport App from \"../../../channels/consumer\";\nimport { useLocation } from \"react-router-dom\";\nimport useUserStore from \"../../../stores/userStore\";\n\nexport default function Messages() {\n const [contacts, setContacts] = useState([]);\n const [selectedChat, setSelectedChat] = useState(null);\n const [typingStatus, setTypingStatus] = useState({});\n const [presenceStatus, setPresenceStatus] = useState({});\n const location = useLocation();\n\n const updateTypingStatus = (userId, isTyping) => {\n setTypingStatus((prev) => ({\n ...prev,\n [userId]: isTyping,\n }));\n };\n\n const updatePresenceStatus = (userId, presence) => {\n setPresenceStatus((prev) => ({\n ...prev,\n [userId]: presence,\n }));\n };\n\n useEffect(() => {\n const chatParams = new URLSearchParams(location.search);\n const chatId = chatParams.get(\"user\");\n const fetchData = async () => {\n try {\n const response = await fetchApi(`/chats`, \"GET\");\n if (response.ok) {\n const res = await response.json();\n setContacts(res);\n console.log(res);\n if (res.length) setSelectedChat(+chatId || res[0].id);\n } else {\n const { error } = await response.json();\n console.error(error);\n }\n } catch (error) {\n console.error(\"Error during fetching chats:\", error);\n }\n };\n fetchData();\n }, []);\n\n return (\n
    \n
    \n \n \n \n \n \n \n Messages\n \n \n {contacts.length ? (\n
    \n
    \n
    \n Recent Messages\n
    \n \n
    \n \n
    \n ) : (\n \n )}\n
    \n
    \n
    \n );\n}\n\nfunction ContactList({\n contacts,\n selectedChat,\n setSelectedChat,\n typingStatus,\n presenceStatus,\n}) {\n return (\n
      \n {contacts.map(({ recipient, last_message, id }) => (\n \n ))}\n
    \n );\n}\n\nfunction getPresenceClasses(presenceStatus) {\n switch (presenceStatus) {\n case \"online\":\n return \"bg-green-500\";\n case \"away\":\n return \"bg-yellow-500\";\n case \"offline\":\n default:\n return \"bg-gray-500\";\n }\n}\n\nfunction ContactItem({\n recipient,\n lastMessage,\n id,\n setSelectedChat,\n selectedChat,\n isTyping,\n presenceStatus,\n}) {\n const handleClick = () => {\n setSelectedChat(id);\n };\n\n if (!selectedChat) return <>;\n\n return (\n \n
    \n \n \n
    \n \n \n );\n}\n\nfunction NoChatsFound() {\n return (\n
    \n \n \n \n \n \n \n

    \n No any record of chats found.\n

    \n
    \n );\n}\n\nexport function DisplayMessages({\n chatId,\n updateTypingStatus,\n updatePresenceStatus,\n}) {\n const [messages, setMessages] = useState([]);\n const [recipient, setRecipient] = useState({});\n const [newMessageContent, setNewMessageContent] = useState(\"\");\n const [userChannel, setUserChannel] = useState(null);\n\n const {\n user: { id },\n } = useUserStore((state) => state.user);\n\n let typingTimeout = null;\n\n useEffect(() => {\n if (!chatId) return;\n // Fetch initial messages from the server\n const fetchMessages = () => {\n fetch(`/chats/${chatId}/fetch_messages`)\n .then((response) => response.json())\n .then((data) => {\n console.log(data);\n setRecipient(data.recipient);\n setMessages(data.messages);\n markMessagesAsRead(data.messages);\n })\n .catch((error) => console.error(\"Error fetching messages:\", error));\n };\n\n const markMessagesAsRead = (messages) => {\n messages.forEach((message) => {\n if (!message.read_at && message.user_id !== id) {\n subscription.perform(\"mark_as_read\", {\n message_id: message.id,\n });\n }\n });\n };\n\n const subscription = App.subscriptions.create(\n { channel: \"UserChannel\", user_id: id },\n {\n received: (data) => {\n if (data.type === \"message\" && data.message.chat_id === chatId) {\n setMessages((prevMessages) => [data.message, ...prevMessages]);\n markMessagesAsRead([data.message]);\n } else if (data.type === \"typing\" && data.user !== id) {\n if (updateTypingStatus) updateTypingStatus(data.user, true);\n clearTimeout(typingTimeout);\n typingTimeout = setTimeout(() => {\n if (updateTypingStatus) updateTypingStatus(data.user, false);\n }, 2000);\n } else if (data.type === \"read_receipt\") {\n setMessages((prevMessages) =>\n prevMessages.map((msg) =>\n msg.id === data.message_id\n ? { ...msg, read_at: data.read_at }\n : msg\n )\n );\n } else if (data.type === \"presence\") {\n if (updatePresenceStatus)\n updatePresenceStatus(data.user_id, data.presence);\n }\n },\n }\n );\n\n setUserChannel(subscription);\n\n fetchMessages();\n\n const presenceSubscription = App.subscriptions.create(\"PresenceChannel\", {\n received: (data) => {\n if (data.type === \"presence\") {\n if (updatePresenceStatus)\n updatePresenceStatus(data.user_id, data.presence);\n }\n },\n });\n\n return () => {\n subscription.unsubscribe();\n presenceSubscription.unsubscribe();\n clearTimeout(typingTimeout);\n };\n }, [chatId, id]);\n\n const handleTyping = () => {\n clearTimeout(typingTimeout);\n userChannel.perform(\"typing\", {\n recipient_id: recipient?.id,\n });\n typingTimeout = setTimeout(() => {\n // Reset typing status after 2 seconds of inactivity\n }, 2000);\n };\n\n const handleReceivedMessage = (data) => {\n console.log(data);\n // Update state to include the newly received message\n if (data.message.chat_id === chatId)\n setMessages((prevMessages) => [data.message, ...prevMessages]);\n };\n\n const handleInputChange = (event) => {\n setNewMessageContent(event.target.value);\n };\n\n const sendMessage = () => {\n // Send message via WebSocket\n userChannel.send({\n content: newMessageContent,\n recipient_id: recipient.id,\n });\n // Clear input field after sending message\n setNewMessageContent(\"\");\n };\n\n return (\n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n \n
    \n
    \n
      \n {messages.map((message, index) => (\n \n
    \n \n \n {message.user_id !== id && (\n

    \n {recipient.first_name} {recipient.last_name}\n

    \n )}\n \n {message.content}\n

    \n {message.read_at && (\n \n Read {moment(message.read_at).fromNow()}\n \n )}\n \n \n {moment(message.created_at).fromNow()}\n \n \n \n ))}\n \n
    \n
    \n \n
    \n
    \n
    \n {\n handleInputChange(e);\n handleTyping();\n }}\n onKeyDown={(event) => {\n if (event.key === \"Enter\") {\n sendMessage();\n }\n }}\n />\n \n
    \n
    \n
    \n \n Send\n \n \n \n \n \n \n
    \n
    \n \n );\n}\n","import React, { useContext, useEffect, useRef, useState } from \"react\";\nimport {\n Anchor,\n Avatar,\n Button,\n Grid,\n Group,\n Indicator,\n List,\n Loader,\n Modal,\n SimpleGrid,\n Stack,\n Text,\n TextInput,\n Textarea,\n} from \"@mantine/core\";\nimport fetchApi from \"../Lib/api\";\nimport { useParams } from \"react-router-dom\";\nimport moment from \"moment\";\nimport HeaderAndSidebar from \"../Lib/HeaderAndSidebar\";\nimport { DisplayMessages } from \"../Dashbaord/DashboardPages/Messages\";\nimport {\n MessageUser,\n handleFollowUnfollow,\n} from \"../Dashbaord/DashboardPages/Members\";\nimport {\n IconCheck,\n IconPencil,\n IconUserMinus,\n IconUserPlus,\n IconX,\n} from \"@tabler/icons-react\";\nimport { useForm } from \"@mantine/form\";\nimport { MultiSelect } from \"react-multi-select-component\";\nimport { industries, skills } from \"../Onboarding/data\";\nimport { onSubmit } from \"../Onboarding/Onboarding\";\nimport useUserStore from \"../../stores/userStore\";\n\nexport default function UserProfileContainer() {\n return (\n \n \n \n );\n}\n\nfunction UserProfile() {\n const fileInputRef = useRef(null);\n const [userImage, setUserImage] = useState(null);\n const { id } = useParams();\n const [user, setUser] = useState(null);\n const [chatId, setChatId] = useState(undefined);\n const [isEditMode, setIsEditMode] = useState(false);\n const {\n user: { admin },\n } = useUserStore((state) => state.user);\n\n const form = useForm({\n initialValues: {\n avatar: null,\n first_name: \"\",\n last_name: \"\",\n user_type: 0,\n company: \"\",\n job_title: \"\",\n year_of_experience: 0,\n work_type: \"\",\n university: \"\",\n degree: \"\",\n country: \"\",\n city: \"\",\n about_me: \"\",\n expert_in: \"\",\n skills: \"\",\n industries: \"\",\n },\n\n validate: {},\n });\n\n const [selectedExperts, setSelectedExperts] = useState({});\n const [selectedSkills, setSelectedSkills] = useState({});\n const [selectedIndustries, setSelectedIndustries] = useState({});\n\n const getForm = (user) => {\n setSelectedExperts(user.expert_in.map((m) => ({ label: m, value: m })));\n setSelectedIndustries(user.industries.map((m) => ({ label: m, value: m })));\n setSelectedSkills(user.skills.map((m) => ({ label: m, value: m })));\n return {\n avatar: null,\n first_name: user.first_name || \"F\",\n last_name: user.last_name || \"L\",\n user_type: user.user_type || 0,\n company: user.company || \"\",\n job_title: user.job_title || \"\",\n year_of_experience: user.year_of_experience || 0,\n work_type: user.work_type || \"\",\n university: user.university || \"\",\n degree: user.degree || \"\",\n country: user.address?.country || \"\",\n city: user.address?.city || \"\",\n about_me: user.about_me || \"\",\n expert_in: user.expert_in || \"\",\n skills: user.skills || \"\",\n industries: user.industries || \"\",\n };\n };\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetchApi(`/profile/user/${id}`, \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n form.setValues(getForm(res));\n\n setUser(res);\n } else {\n const msg = (await response.json()).error;\n\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n fetchData();\n }, []);\n\n const handleFileChange = async (event) => {\n // Handle file changes here\n const selectedFile = event.target.files[0];\n console.log(selectedFile);\n setUserImage(URL.createObjectURL(selectedFile));\n\n try {\n const formData = new FormData();\n formData.append(`user[avatar]`, selectedFile);\n formData.append(`user[user_id]`, id);\n const response = await fetchApi(\n `/api/users/update_image`,\n \"PUT\",\n formData,\n true\n );\n\n if (response.ok) {\n const responseData = await response.json();\n console.log(\"Success:\", responseData);\n } else {\n console.error(\"HTTP error! Failed to submit form\");\n }\n } catch (error) {\n console.error(\"Error:\", error.message);\n }\n };\n\n if (!user)\n return (\n \n );\n return (\n
    \n
    \n \n {chatId && (\n setChatId(undefined)}\n withCloseButton={false}\n >\n \n \n )}\n \n \n
    \n
    \n
    \n {userImage || (user.avatar && user.avatar.url) ? (\n fileInputRef.current.click()}\n />\n ) : (\n
    \n {((form.values.first_name && form.values.first_name[0]) ||\n \"\") +\n (\n (form.values.last_name && form.values.last_name[0]) ||\n \"\"\n ).toUpperCase()}\n
    \n )}\n

    \n {form.values.first_name} {form.values.last_name}\n

    \n

    {form.values.job_title}

    \n
    \n \n handleFollowUnfollow(\n id,\n user.is_following,\n user,\n setUser\n )\n }\n fullWidth\n className=\"inline-flex items-center px-4 py-2 text-sm font-medium text-center text-white bg-blue-900 rounded-lg hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 \"\n leftIcon={\n user.is_following ? (\n \n ) : (\n \n )\n }\n >\n {user.is_following ? \"Unfollow\" : \"Follow\"}\n \n \n
    \n
    \n
    \n
      \n {form.values.display_email && form.values.public_email && (\n
    • \n

      \n Email\n

      \n {isEditMode ? (\n \n form.setFieldValue(\n \"public_email\",\n event.currentTarget.value\n )\n }\n error={form.errors.public_email}\n withAsterisk\n />\n ) : (\n

      \n {form.values.public_email}\n

      \n )}\n
    • \n )}\n
    • \n

      \n Location\n

      \n

      \n {user?.address?.city} {user?.address?.country}\n

      \n
    • \n {form.values.display_phone && form.values.public_phone && (\n
    • \n

      \n Phone number\n

      \n {isEditMode ? (\n \n form.setFieldValue(\n \"public_phone\",\n event.currentTarget.value\n )\n }\n error={form.errors.public_phone}\n withAsterisk\n />\n ) : (\n

      \n {form.values.public_phone}\n

      \n )}\n
    • \n )}\n
    • \n

      \n Years Of Experience\n

      \n {isEditMode ? (\n \n form.setFieldValue(\n \"year_of_experience\",\n event.currentTarget.value\n )\n }\n error={form.errors.year_of_experience}\n withAsterisk\n />\n ) : (\n

      \n {form.values.year_of_experience}\n

      \n )}\n
    • \n
    \n
    \n
      \n
    • \n \n \n \n \n \n \n
    • \n\n
    • \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    • \n
    • \n \n \n \n \n \n \n \n \n
    • \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n

    \n About me\n

    \n {admin && (\n <>\n {isEditMode ? (\n
    \n {\n if (onSubmit(form.values, null, id))\n setIsEditMode(false);\n }}\n className=\"cursor-pointer\"\n size={25}\n />\n setIsEditMode(false)}\n className=\"cursor-pointer\"\n size={25}\n />\n
    \n ) : (\n setIsEditMode(true)}\n className=\"cursor-pointer\"\n size={25}\n />\n )}\n \n )}\n
    \n {isEditMode ? (\n {\n const updatedValue = event.currentTarget.value;\n form.setFieldValue(\n \"about_me\",\n updatedValue.slice(0, 500)\n );\n }}\n error={form.errors.about_me}\n minRows={8}\n maxLength={500}\n />\n ) : (\n

    \n {form.values.about_me}\n

    \n )}\n
    \n\n
    \n

    \n Skills:\n

    \n\n {isEditMode ? (\n {\n if (e.length > 15) return;\n setSelectedSkills(e);\n form.setFieldValue(\n \"skills\",\n e.map((m) => m.label)\n );\n }}\n className=\"max-w-full lg:w-96\"\n />\n ) : (\n
      \n {form.values.skills.map((skill) => (\n \n \n {skill}\n \n \n ))}\n
    \n )}\n
    \n
    \n

    \n Expert In\n

    \n\n {isEditMode ? (\n {\n if (e.length > 5) return;\n setSelectedExperts(e);\n form.setFieldValue(\n \"expert_in\",\n e.map((m) => m.label)\n );\n }}\n className=\"max-w-full lg:w-96\"\n />\n ) : (\n
      \n {form.values.expert_in.map((skill) => (\n \n \n {skill}\n \n \n ))}\n
    \n )}\n
    \n
    \n

    \n Industries\n

    \n\n {isEditMode ? (\n {\n if (e.length > 5) return;\n setSelectedIndustries(e);\n form.setFieldValue(\n \"industries\",\n e.map((m) => m.label)\n );\n }}\n className=\"max-w-full lg:w-96\"\n />\n ) : (\n
      \n {form.values.industries.map((skill) => (\n \n \n {skill}\n \n \n ))}\n
    \n )}\n
    \n
    \n

    \n Contributions\n

    \n\n \n {user.memberships.map((member) => (\n \n {member.role === \"owner\" ? \"Owner of \" : \"Member at \"}{\" \"}\n \n {member.startup_entity.name}\n {\" \"}\n since {moment(member.created_at).format(\"LL\")}\n \n ))}\n \n
    \n
    \n

    \n Professional\n

    \n \n \n
    \n

    \n Company\n

    \n {isEditMode ? (\n \n form.setFieldValue(\n \"company\",\n event.currentTarget.value\n )\n }\n error={form.errors.company}\n withAsterisk\n />\n ) : (\n

    \n {form.values.company || \"nil\"}\n

    \n )}\n
    \n
    \n

    \n Education\n

    \n\n {isEditMode ? (\n \n form.setFieldValue(\n \"university\",\n event.currentTarget.value\n )\n }\n error={form.errors.university}\n withAsterisk\n />\n ) : (\n

    \n {form.values.university || \"nil\"}\n

    \n )}\n
    \n \n \n
    \n

    \n Work Type\n

    \n {isEditMode ? (\n \n form.setFieldValue(\n \"work_type\",\n event.currentTarget.value\n )\n }\n error={form.errors.work_type}\n withAsterisk\n />\n ) : (\n

    \n {form.values.work_type || \"nil\"}\n

    \n )}\n
    \n
    \n

    \n Degree\n

    \n {isEditMode ? (\n \n form.setFieldValue(\n \"degree\",\n event.currentTarget.value\n )\n }\n error={form.errors.degree}\n withAsterisk\n />\n ) : (\n

    \n {form.values.degree || \"nil\"}\n

    \n )}\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n","import React, { useState, useRef, useEffect } from 'react';\n\nconst TagsInput = ({\n value = [],\n onChange,\n placeholder = 'Type and press Enter',\n maxTags = Infinity,\n allowDuplicates = false,\n splitChars = [','],\n disabled = false,\n readOnly = false,\n onRemove,\n onClear,\n className = '',\n}) => {\n const [inputValue, setInputValue] = useState('');\n const inputRef = useRef(null);\n\n const addTag = (tag) => {\n const trimmedTag = tag.trim();\n if (trimmedTag.length === 0) return;\n\n const isDuplicate = value.some(\n (existingTag) => existingTag.toLowerCase() === trimmedTag.toLowerCase()\n );\n\n if ((!isDuplicate || allowDuplicates) && value.length < maxTags) {\n onChange([...value, trimmedTag]);\n setInputValue('');\n }\n };\n\n const handleKeyDown = (event) => {\n const trimmedInput = inputValue.trim();\n\n // Handle tag creation with Enter\n if (event.key === 'Enter' && trimmedInput.length > 0) {\n event.preventDefault();\n addTag(trimmedInput);\n return;\n }\n\n // Handle split characters\n if (splitChars.includes(event.key) && trimmedInput.length > 0) {\n event.preventDefault();\n addTag(trimmedInput);\n return;\n }\n\n // Handle backspace to remove last tag\n if (event.key === 'Backspace' && inputValue.length === 0 && value.length > 0) {\n event.preventDefault();\n const newTags = value.slice(0, -1);\n onChange(newTags);\n onRemove?.(value[value.length - 1]);\n }\n };\n\n const handlePaste = (event) => {\n event.preventDefault();\n const pastedText = event.clipboardData.getData('text/plain');\n \n const newTags = pastedText\n .split(new RegExp(`[${splitChars.join('')}]`))\n .map((tag) => tag.trim())\n .filter((tag) => tag.length > 0)\n .filter((tag) => allowDuplicates || !value.includes(tag));\n\n const tagsToAdd = newTags.slice(0, maxTags - value.length);\n if (tagsToAdd.length > 0) {\n onChange([...value, ...tagsToAdd]);\n setInputValue('');\n }\n };\n\n const removeTag = (indexToRemove) => {\n const newTags = value.filter((_, index) => index !== indexToRemove);\n onChange(newTags);\n onRemove?.(value[indexToRemove]);\n };\n\n const handleClear = () => {\n onChange([]);\n setInputValue('');\n onClear?.();\n inputRef.current?.focus();\n };\n\n // Handle form submission prevention\n const handleSubmit = (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n }\n };\n\n return (\n
    \n \n
    \n {value.map((tag, index) => (\n \n {tag}\n {!readOnly && !disabled && (\n removeTag(index)}\n className=\"text-gray-500 hover:text-gray-700 focus:outline-none ml-1 inline\"\n onKeyDown={(e) => e.key === 'Enter' && removeTag(index)}\n >\n ×\n \n )}\n \n ))}\n \n {!readOnly && !disabled && (\n setInputValue(e.target.value)}\n onKeyDown={handleKeyDown}\n onKeyPress={handleSubmit}\n onPaste={handlePaste}\n placeholder={value.length === 0 ? placeholder : ''}\n className=\"flex-1 min-w-20 outline-none border-none bg-transparent text-[12px] px-3\"\n />\n )}\n
    \n \n {!readOnly && !disabled && value.length > 0 && (\n \n clear\n \n )}\n
    \n \n );\n};\n\nexport default TagsInput;","import React from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport FeatureButton from \"../../stories/FeatureButton\";\n\nexport default function ProgramChangesApproval({\n id,\n setSubcategory,\n toggle,\n}) {\n const handleApproval = async (approve) => {\n try {\n const response = await fetchApi(\n `/sub_categories/${id}/${approve ? \"approve\" : \"disapprove\"}`,\n \"PATCH\"\n );\n\n if (response.ok) {\n const responseData = await response.json();\n setSubcategory(responseData.sub_category);\n toggle();\n } else {\n console.error(\"HTTP error! Failed to submit form\");\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n return (\n <>\n handleApproval(true)}\n />{\" \"}\n handleApproval(false)}\n />\n \n );\n}\n","import React from \"react\";\nimport EditorContentDisplay from \"../../stories/EditorContentDisplay\";\n\nconst DiffDisplay = ({ diffResult }) => {\n const renderJsonDiff = (oldData, newData) => {\n return (\n
    \n
    \n
    Before
    \n
    \n            \n          
    \n
    \n
    \n
    After
    \n
    \n            \n          
    \n
    \n
    \n );\n };\n\n const renderChange = (change) => {\n const getChangeType = () => {\n if (change.oldPosition !== undefined) return \"reordered\";\n if (\n diffResult.added.some((added) => added.block?.id === change.block?.id)\n )\n return \"added\";\n if (\n diffResult.removed.some(\n (removed) => removed.block?.id === change.block?.id\n )\n )\n return \"removed\";\n if (\n diffResult.modified.some(\n (modified) =>\n modified.old?.id === change.old?.id ||\n modified.blockId === change.blockId\n )\n )\n return \"modified\";\n return \"unchanged\";\n };\n\n const getChangeClass = (type) => {\n switch (type) {\n case \"added\":\n return \"p-3 bg-green-100\";\n case \"removed\":\n return \"p-3 bg-red-100\";\n case \"modified\":\n case \"reordered\":\n return \"\";\n default:\n return \"\";\n }\n };\n\n const renderContent = (change, type) => {\n if (type === \"modified\") {\n return renderJsonDiff(change.old, change.new);\n } else if (type === \"reordered\") {\n if (change.changes) {\n return renderJsonDiff(change.changes.old, change.changes.new);\n }\n return (\n
    \n            \n          
    \n );\n }\n return (\n
    \n          \n        
    \n );\n };\n\n const type = getChangeType();\n const id =\n change.block?.id || change.blockId || change.old?.id || \"unknown\";\n\n return (\n \n {renderContent(change, type)}\n \n );\n };\n\n return (\n
    \n {diffResult && (\n
    \n {diffResult.orderedChanges.length > 0 ? (\n diffResult.orderedChanges.map((change) => renderChange(change))\n ) : (\n
    No changes detected
    \n )}\n
    \n )}\n
    \n );\n};\n\nexport default DiffDisplay;\n","import {\n Avatar,\n Button,\n Group,\n Paper,\n Stack,\n Text,\n} from \"@mantine/core\";\nimport React, { useEffect, useState } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport { useParams } from \"react-router-dom\";\nimport Notification from \"../Lib/Notification\";\n\nexport default function StartupConfirmation() {\n const { token } = useParams();\n const [data, setData] = useState(null);\n const [notification, setNotification] = useState(null);\n\n const fetchData = async (accept = false) => {\n try {\n const response = await fetchApi(\n `/invitations/${accept ? \"accept\" : \"confirm_invitation\"}/${token}`,\n \"GET\"\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n if (!accept) setData(res);\n else window.location.href = `/startup_entities/${res.slug}`;\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.log(msg);\n }\n } catch (error) {\n console.error(\"Error during invitation confirmation:\", error);\n }\n };\n\n useEffect(() => {\n fetchData();\n }, []);\n\n if (!data) return <>;\n\n return (\n
    \n
    \n \n {notification && }\n \n \n
    \n \n You've been invited to the {data.inviteable.name}{\" \"}\n startup\n \n \n Invited by {data.inviter_id.first_name}{\" \"}\n {data.inviter_id.last_name}\n \n
    \n \n fetchData(true)}\n variant=\"default\"\n fullWidth\n className=\"px-12 h-12\"\n >\n Accept\n \n (window.location.href = \"/dashboard\")}\n variant=\"default\"\n fullWidth\n className=\"text-red-700 px-12 h-12\"\n >\n Decline\n \n \n
    \n
    \n
    \n
    \n );\n}\n","import { Group, Select, Text, TextInput, Title } from \"@mantine/core\";\nimport { upperFirst } from \"@mantine/hooks\";\nimport React from \"react\";\nimport { countriesData } from \"./data\";\n\nconst renderFormField = (fieldName, form, required) => {\n return (\n \n form.setFieldValue(fieldName, event.currentTarget.value)\n }\n error={form.errors[fieldName]}\n radius=\"md\"\n className=\"w-full\"\n />\n );\n};\n\nexport default function UserDetails({ form }) {\n return (\n <>\n \n Personal Information\n \n \n Tell us a bit about yourself! Fill in your personal details to enhance\n your experience and allow us to better assist you.\n \n \n {renderFormField(\"first_name\", form)}\n\n {renderFormField(\"last_name\", form)}\n \n {[3].includes(form.values.user_type) ? (\n \n {renderFormField(\"university\", form)}\n {renderFormField(\"degree\", form)}\n \n ) : (\n <>\n \n {renderFormField(\"company\", form, true)}\n\n {renderFormField(\"job_title\", form)}\n \n \n {renderFormField(\"year_of_experience\", form)}\n\n {renderFormField(\"university\", form)}\n \n \n )}\n \n form.setFieldValue(\"country\", event)}\n error={form.errors.country}\n radius=\"md\"\n searchable\n nothingFound=\"No options\"\n className=\"w-full\"\n />\n {renderFormField(\"city\", form)}\n \n \n );\n}\n","import React from \"react\";\nimport { useForm } from \"@mantine/form\";\nimport {\n PasswordInput,\n Button,\n Group,\n Stack,\n Paper,\n Title,\n Divider,\n Container,\n TextInput,\n} from \"@mantine/core\";\nimport { IconArrowLeft } from \"@tabler/icons-react\";\nimport fetchApi from \"../Lib/api\";\n\nconst CreatePasswordForInviteUser = () => {\n const invitation_token = new URLSearchParams(window.location.search).get(\n \"invitation_token\"\n );\n console.log(invitation_token);\n const form = useForm({\n initialValues: {\n first_name: \"\",\n last_name: \"\",\n password: \"\",\n password_confirmation: \"\",\n },\n validate: {\n password: (val) =>\n val.length >= 6\n ? null\n : \"Password should include at least 6 characters\",\n password_confirmation: (val) =>\n val === form.values.password ? null : \"Passwords do not match\",\n first_name: (val) =>\n val.trim() !== \"\" ? null : \"First name is required\",\n last_name: (val) => (val.trim() !== \"\" ? null : \"Last name is required\"),\n },\n });\n\n const handleSubmit = async (e) => {\n try {\n const response = await fetchApi(\"/users/invitation\", \"PUT\", {\n invitation: {\n invitation_token: invitation_token,\n password: form.values.password,\n password_confirmation: form.values.password_confirmation,\n last_name: form.values.last_name,\n first_name: form.values.first_name,\n },\n });\n\n if (response.ok) {\n // Handle password change success\n const url = (await response.json()).url;\n window.location.href = url;\n } else {\n // Handle password change failure\n console.error(\"Password change failed.\");\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n return (\n \n \n \n Set your password\n \n\n \n
    \n \n \n \n form.setFieldValue(\"first_name\", event.currentTarget.value)\n }\n error={form.errors.first_name}\n radius=\"md\"\n />\n \n form.setFieldValue(\"last_name\", event.currentTarget.value)\n }\n error={form.errors.last_name}\n radius=\"md\"\n />\n \n \n \n form.setFieldValue(\"password\", event.currentTarget.value)\n }\n error={form.errors.password}\n radius=\"md\"\n />\n\n \n form.setFieldValue(\n \"password_confirmation\",\n event.currentTarget.value\n )\n }\n error={form.errors.password_confirmation}\n radius=\"md\"\n fullWidth\n />\n \n\n \n \n Set Password\n \n \n \n
    \n \n
    \n );\n};\n\nexport default CreatePasswordForInviteUser;\n","import {} from \"@mantine/core\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport fetchApi from \"../../../Lib/api\";\n\nexport default function ModerationHistory({}) {\n useEffect(() => {\n async function fetchData() {\n try {\n const response = await fetchApi(`/hub/admin/moderation/history`, \"GET\");\n if (response.ok) {\n const res = await response.json();\n\n console.log(res);\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n }\n fetchData();\n }, []);\n return <>Coming Soon;\n}\n","import React from \"react\";\nimport styled from \"styled-components\";\n\n// Import logos\nimport vnips from \"./assets/vnips.png\";\nimport mindsbourg from \"./assets/mindsbourg.png\";\nimport nc from \"./assets/logo.png\";\n\n// Styled Components for Logo\nconst LogoContainer = styled.a`\n display: flex;\n gap: 5px;\n align-items: center;\n text-decoration: none;\n`;\n\nconst LogoImage = styled.img`\n height: ${({ height }) => height || \"auto\"};\n margin-bottom: 5px;\n`;\n\nconst BetaTag = styled.div`\n background: #3d3b4b;\n padding: 2px 4px;\n border-radius: 5px;\n margin-top: 8px;\n color: var(--color-container-card-default);\n font-family: \"Montserrat\", sans-serif;\n font-weight: var(--font-weight-body-1);\n font-size: var(--font-size-body-4);\n height: fit-content;\n`;\n\nconst Logo = () => {\n const hostname = window.location.hostname;\n \n // Improved subdomain detection\n const getSubdomain = (hostname) => {\n const parts = hostname.split('.');\n // Check if it's a valid subdomain (not www and has more than 2 parts)\n if (parts.length > 2 && parts[0] !== 'www') {\n return parts[0];\n }\n return null;\n };\n\n const subdomain = getSubdomain(hostname);\n\n // Define logo mapping\n const logoMapping = {\n mindsbourg,\n vnips,\n default: nc,\n };\n\n // Only render subdomain logo if it exists in the mapping\n const shouldRenderSubdomainLogo = subdomain && logoMapping[subdomain];\n\n return (\n \n {shouldRenderSubdomainLogo && (\n \n )}\n \n Beta\n \n );\n};\n\nexport default Logo;","const getEnvironmentConfig = () => {\n switch (process.env.REACT_APP_ENV) {\n case 'production':\n return {\n chatUrl: process.env.REACT_APP_AI_CHAT,\n roadmapUrl: process.env.REACT_APP_ROADMAP_GENERATION,\n status: process.env.REACT_APP_ROADMAP_STATUS,\n validate_url: process.env.REACT_APP_VALIDATION\n // Add other production-specific config here\n };\n case 'development':\n default:\n return {\n chatUrl: process.env.REACT_APP_AI_CHAT,\n roadmapUrl: process.env.REACT_APP_ROADMAP_GENERATION,\n status: process.env.REACT_APP_ROADMAP_STATUS,\n validate_url: process.env.REACT_APP_VALIDATION\n // Add other development-specific config here\n };\n }\n };\n \n export default getEnvironmentConfig();","import React, { useContext, useRef, useState } from \"react\";\nimport {\n Avatar,\n Text,\n Group,\n Button,\n Stack,\n Indicator,\n Tooltip,\n} from \"@mantine/core\";\nimport { IconMapPin, IconPencil } from \"@tabler/icons-react\";\nimport { onSubmit } from \"../Onboarding/Onboarding\";\nimport fetchApi from \"../Lib/api\";\n\nexport function UserInfoIcons({ isEditMode, setIsEditMode, form }) {\n const fileInputRef = useRef(null);\n const [userImage, setUserImage] = useState(null);\n const {\n user: { user },\n setUser,\n } = useUserStore((state) => state);\n\n const handleFileChange = async (event) => {\n // Handle file changes here\n const selectedFile = event.target.files[0];\n console.log(selectedFile);\n setUserImage(URL.createObjectURL(selectedFile));\n\n try {\n const formData = new FormData();\n formData.append(`user[avatar]`, selectedFile);\n const response = await fetchApi(\n `/api/users/update_image`,\n \"PUT\",\n formData,\n true\n );\n\n if (response.ok) {\n const responseData = await response.json();\n console.log(\"Success:\", responseData);\n } else {\n console.error(\"HTTP error! Failed to submit form\");\n }\n } catch (error) {\n console.error(\"Error:\", error.message);\n }\n };\n return (\n
    \n \n }\n size={30}\n onClick={() => fileInputRef.current.click()}\n >\n fileInputRef.current.click()}\n />\n \n
    \n \n {user.job_title}\n \n\n \n {user.first_name} {user.last_name}\n \n\n \n \n \n {user.address.country} {user.address.city}\n \n \n\n \n {!isEditMode ? (\n setIsEditMode(true)}\n variant=\"default\"\n fullWidth\n className=\"w-fit px-12\"\n >\n Edit Profile\n \n ) : (\n \n {\n if (onSubmit(form.values, setUser)) setIsEditMode(false);\n }}\n variant=\"default\"\n fullWidth\n className=\"w-[180px] px-12\"\n >\n Save\n \n setIsEditMode(false)}\n variant=\"default\"\n fullWidth\n className=\"text-red-700 px-12\"\n >\n Cancel\n \n \n )}\n \n
    \n
    \n \n
    \n );\n}\n","import React from \"react\";\nimport { useForm } from \"@mantine/form\";\nimport {\n PasswordInput,\n Button,\n Group,\n Stack,\n Paper,\n Title,\n Divider,\n Container,\n Text,\n Anchor,\n Center,\n Box,\n rem,\n} from \"@mantine/core\";\nimport { IconArrowLeft } from \"@tabler/icons-react\";\nimport fetchApi from \"../Lib/api\";\n\nconst ChangePasswordForm = () => {\n const reset_password_token = new URLSearchParams(window.location.search).get(\n \"reset_password_token\"\n );\n\n const is_new_password = new URLSearchParams(window.location.search).get(\n \"new_password\"\n ) === \"true\";\n\n const form = useForm({\n initialValues: {\n password: \"\",\n password_confirmation: \"\",\n },\n validate: {\n password: (val) =>\n val.length >= 6\n ? null\n : \"Password should include at least 6 characters\",\n password_confirmation: (val) =>\n val === form.values.password ? null : \"Passwords do not match\",\n },\n });\n\n const handleSubmit = async (e) => {\n try {\n const response = await fetchApi(\"/users/password\", \"PUT\", {\n user: {\n reset_password_token: reset_password_token,\n password: form.values.password,\n password_confirmation: form.values.password_confirmation,\n },\n });\n\n if (response.ok) {\n // Handle password change success\n console.log(\"Password change successful!\");\n window.location.href = is_new_password ? \"/onboarding\" : \"/dashboard/#/\";\n } else {\n // Handle password change failure\n console.error(\"Password change failed.\");\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n return (\n \n \n {is_new_password ? \"Set\" : \"Chnage\"} your password\n\n \n
    \n \n \n form.setFieldValue(\"password\", event.currentTarget.value)\n }\n error={form.errors.password}\n radius=\"md\"\n />\n\n \n form.setFieldValue(\n \"password_confirmation\",\n event.currentTarget.value\n )\n }\n error={form.errors.password_confirmation}\n radius=\"md\"\n />\n\n \n \n {is_new_password ? \"Set\" : \"Change\"} Password\n \n \n \n\n \n \n
    \n \n Back to the login page\n
    \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default ChangePasswordForm;\n","// useDropbox.js\nimport { useEffect, useState } from \"react\";\nimport { Dropbox } from \"dropbox\";\n\nconst useDropbox = (dropboxAppKey, dropboxRedirectUri) => {\n // Initialize the access token from localStorage if it's still valid.\n const [accessToken, setAccessToken] = useState(() => {\n const storedToken = localStorage.getItem(\"dropboxAccessToken\");\n const tokenExpiry = localStorage.getItem(\"dropboxTokenExpiry\");\n if (storedToken && new Date().getTime() < tokenExpiry) {\n return storedToken;\n }\n return null;\n });\n\n // Optionally, initialize a Dropbox client instance (if needed later)\n const [dbx, setDbx] = useState(null);\n\n // Load the Dropbox Chooser script.\n useEffect(() => {\n if (!document.getElementById(\"dropboxjs\")) {\n const dropboxScript = document.createElement(\"script\");\n dropboxScript.src = \"https://www.dropbox.com/static/api/2/dropins.js\";\n dropboxScript.id = \"dropboxjs\";\n dropboxScript.setAttribute(\"data-app-key\", dropboxAppKey);\n document.body.appendChild(dropboxScript);\n\n return () => {\n if (dropboxScript.parentNode) {\n dropboxScript.parentNode.removeChild(dropboxScript);\n }\n };\n }\n }, [dropboxAppKey]);\n\n // Initialize a Dropbox client if an access token is available.\n useEffect(() => {\n if (accessToken) {\n const dropbox = new Dropbox({ accessToken });\n setDbx(dropbox);\n }\n }, [accessToken]);\n\n /**\n * Initiates the Dropbox OAuth2 authentication flow.\n * Opens a pop-up window where the user can grant access to Dropbox.\n * Once authenticated, the access token and its expiry are stored locally.\n */\n const authenticateDropbox = () => {\n const authUrl = `https://www.dropbox.com/oauth2/authorize?client_id=${dropboxAppKey}&response_type=token&redirect_uri=${encodeURIComponent(\n dropboxRedirectUri\n )}&token_access_type=online&scope=files.content.read%20files.content.write%20sharing.write`;\n\n const width = 600;\n const height = 700;\n const left = window.screen.width / 2 - width / 2;\n const top = window.screen.height / 2 - height / 2;\n\n const authWindow = window.open(\n authUrl,\n \"DropboxAuth\",\n `width=${width},height=${height},top=${top},left=${left}`\n );\n\n // Poll the authentication window for the access token.\n const interval = setInterval(() => {\n try {\n if (authWindow.closed) {\n clearInterval(interval);\n }\n const hash = authWindow.location.hash;\n if (hash) {\n const params = new URLSearchParams(hash.substring(1));\n const token = params.get(\"access_token\");\n const expiresIn = params.get(\"expires_in\");\n\n if (token) {\n const expiryTime = new Date().getTime() + expiresIn * 1000;\n localStorage.setItem(\"dropboxAccessToken\", token);\n localStorage.setItem(\"dropboxTokenExpiry\", expiryTime);\n setAccessToken(token);\n authWindow.close();\n clearInterval(interval);\n }\n }\n } catch (error) {\n // Cross-origin errors are expected until the authWindow redirects to our redirect URI.\n }\n }, 500);\n };\n\n /**\n * Opens the Dropbox Chooser so the user can select files.\n *\n * @param {Function} onSuccess - Callback invoked with the selected files.\n */\n const openDropboxChooser = (onSuccess) => {\n if (!window.Dropbox) {\n console.error(\"Dropbox Chooser script not loaded yet.\");\n return;\n }\n\n const options = {\n success: (files) => {\n onSuccess(files);\n },\n cancel: () => {\n console.log(\"Dropbox Chooser canceled\");\n },\n linkType: \"preview\", // Returns a preview link for the file.\n multiselect: true, // Allow multiple file selection.\n };\n\n window.Dropbox.choose(options);\n };\n\n return {\n authenticateDropbox,\n openDropboxChooser,\n isDropboxAuthenticated: !!accessToken,\n };\n};\n\nexport default useDropbox;\n","import { Group, Anchor } from \"@mantine/core\";\nimport React, { useEffect, useState } from \"react\";\nimport fetchApi from \"../../../Lib/api\";\nimport { IconExternalLink } from \"@tabler/icons-react\";\nimport moment from \"moment\";\n\nexport default function ModerationActivity({}) {\n const [posts, setPosts] = useState([]);\n useEffect(() => {\n async function fetchData() {\n try {\n const response = await fetchApi(\n `/hub/admin/moderation/activity`,\n \"GET\"\n );\n if (response.ok) {\n const res = await response.json();\n setPosts(res.posts);\n console.log(res);\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n }\n fetchData();\n }, []);\n\n return (\n <>\n
    \n
    \n Recent Activity\n
    \n {posts.map((p, index) => (\n \n
    \n \n\n {p.user.name}\n
    \n {p.is_topic_starter ? \"Started \" : \"Posted in \"} \n \n \n {p.postable.title}\n \n \n \n \n {moment(p.created_at).format(\"MMM DD YYYY\")}\n \n
    \n ))}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport parse from \"html-react-parser\";\n\nconst Notification = ({ type, content, setNotification }) => {\n const [visible, setVisible] = useState(true);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setVisible(false);\n if (setNotification) setNotification()\n }, 3000);\n\n return () => clearTimeout(timer);\n }, []);\n\n if (!visible) return null;\n\n return (\n \n

    {type === \"failure\" ? \"Error!\" : \"Success!\"}

    \n {parse(`

    ${content}

    `)}\n \n );\n};\n\nexport default Notification;\n","import create from \"zustand\";\n\nexport const useFilterStore = create((set) => ({\n filterParams: {},\n setSearchTerm: (term) =>\n set((state) => {\n if (term.trim() === \"\") {\n const { search_term, ...rest } = state.filterParams;\n return { filterParams: rest };\n }\n return {\n filterParams: { ...state.filterParams, search_term: term.trim() },\n };\n }),\n setFilterParam: (key, value) =>\n set((state) => {\n if (value === undefined || value === \"All\") {\n const { [key]: _, ...updatedParams } = state.filterParams;\n return { filterParams: updatedParams };\n }\n return { filterParams: { ...state.filterParams, [key]: value } };\n }),\n}));\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst StyledButton = styled.button`\n background-color: var(--color-button-accent);\n color: var(--color-container-card-default);\n padding: 5px 25px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n border: 1px solid var(--color-button-accent);\n\n &:hover {\n background-color: var(--color-container-card-default);\n color: var(--color-button-accent);\n }\n`;\n\nconst ContainerButton = ({ buttonText, action, disabled }) => {\n return {buttonText};\n};\n\nexport default ContainerButton;\n","import React, { useEffect, useState } from 'react';\nimport debounce from 'lodash.debounce'; \nimport styled from 'styled-components';\nimport useLayoutStore from '../stores/useLayoutStore';\n\n// Styled components\nconst LayoutContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst LayoutRow = styled.div`\n display: grid;\n grid-template-columns: ${(props) =>\n props.isToggle\n ? '240px 60px 32px repeat(12, minmax(0, 1fr)) 240px'\n : '240px 240px 32px repeat(12, minmax(0, 1fr)) 240px'};\n grid-gap: 0px;\n max-width: 1920px;\n margin: 0 auto;\n width: 100%;\n padding-top: 70px;\n\n @media (max-width: 1600px) {\n grid-template-columns: ${(props) =>\n props.isToggle\n ? '112px 60px 32px repeat(12, minmax(0, 1fr)) 112px'\n : '112px 240px 32px repeat(12, minmax(0, 1fr)) 112px'};\n max-width: 1600px;\n }\n\n @media (max-width: 1440px) {\n grid-template-columns: ${(props) =>\n props.isToggle\n ? '32px 60px 32px repeat(12, minmax(0, 1fr)) 32px'\n : '32px 240px 32px repeat(12, minmax(0, 1fr)) 32px'};\n max-width: 1440px;\n }\n\n @media (max-width: 1280px) {\n grid-template-columns: ${(props) =>\n props.isToggle\n ? '12px 60px 32px repeat(12, minmax(0, 1fr)) 12px'\n : '12px 238px 32px repeat(12, minmax(0, 1fr)) 12px'};\n max-width: 1280px;\n }\n\n @media (max-width: 1024px) {\n grid-template-columns: ${(props) =>\n props.isToggle\n ? '10px 60px 32px repeat(12, minmax(0, 1fr)) 10px'\n : '10px 183px 32px repeat(12, minmax(0, 1fr)) 10px'};\n max-width: 1020px;\n }\n\n @media (max-width: 834px) {\n grid-template-columns: 32px repeat(12, minmax(0, 1fr)) 32px;\n max-width: 834px;\n }\n`;\n\nconst SidebarLarge = styled.aside`\n grid-column: 2;\n text-align: center;\n position: relative;\n height: 100%;\n z-index: 90;\n\n @media (max-width: 834px) {\n display: none;\n }\n`;\n\nconst SidebarSmall = styled.aside`\n display: none;\n position: fixed;\n top: 60px;\n left: -240px;\n height: 100%;\n transform: translateX(-100%);\n transition: transform 0.3s ease-in-out;\n z-index: 90;\n\n &.active {\n transform: translateX(240px);\n }\n\n @media (max-width: 834px) {\n display: block;\n }\n`;\n\nconst SidebarCloseButton = styled.button`\n background: none;\n border: none;\n font-size: 1.5rem;\n padding: 10px;\n cursor: pointer;\n color: white;\n`;\n\nconst Content = styled.main`\n grid-column: 4 / span 12;\n\n @media (max-width: 834px) {\n grid-column: 2 / span 12;\n }\n`;\n\nconst Overlay = styled.div`\n position: fixed;\n top: 60px;\n left: 0;\n width: 100vw;\n height: calc(100vh - 60px);\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n`;\n\nconst Layout = ({ header, sidebarContent, mainContent }) => {\n const { isToggle } = useLayoutStore();\n const [isSidebarVisible, setIsSidebarVisible] = useState(false);\n\n const handleMenuClick = () => {\n setIsSidebarVisible(!isSidebarVisible); // Toggle sidebar visibility for small screens\n };\n\n useEffect(() => {\n const debouncedHandleResize = debounce(() => window.innerWidth > 834 && setIsSidebarVisible(false), 200);\n window.addEventListener('resize', debouncedHandleResize);\n return () => window.removeEventListener('resize', debouncedHandleResize);\n }, []);\n\n return (\n \n {/* Pass handleMenuClick to the header so it can trigger sidebar toggle */}\n {React.cloneElement(header || <>, { onMenuClick: handleMenuClick })}\n\n {isSidebarVisible && }\n\n \n \n {sidebarContent}\n \n \n {mainContent}\n \n \n\n \n Close\n {sidebarContent}\n \n \n );\n};\n\nexport default Layout;\n","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport searchIcon from \"./assets/searchbar.svg\";\nimport { useFilterStore } from \"../stores/useFilterStore\";\n\n// Styled Components\nconst SearchBarContainer = styled.div`\n display: flex;\n align-items: center;\n border-radius: 4px;\n background: #f6f8ff;\n padding: 8px 10px;\n max-width: 500px;\n width: 100%;\n`;\n\nconst Input = styled.input`\n border: none;\n background: transparent;\n outline: none;\n flex: 1;\n font-size: 12px;\n color: #48504b;\n\n &::placeholder {\n color: #aaa;\n }\n`;\n\nconst SearchButton = styled.button`\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n margin-left: 10px;\n display: flex;\n align-items: center;\n\n &:hover {\n opacity: 0.8;\n }\n\n img {\n width: 20px;\n height: 20px;\n }\n`;\n\n// SearchBar component that uses the Zustand store\nconst SearchBar = () => {\n const [inputValue, setInputValue] = useState(\"\");\n const setSearchTerm = useFilterStore((state) => state.setSearchTerm);\n\n const handleSearchClick = () => {\n setSearchTerm(inputValue);\n };\n\n return (\n \n setInputValue(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleSearchClick();\n }\n }}\n />\n \n \"Search\n \n \n );\n};\n\nexport default SearchBar;\n","import React from 'react';\nimport styled from 'styled-components';\nimport SearchBar from './SearchBar';\n\n// Styled Components for Header\nconst HeaderContainer = styled.header`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 5px 70px;\n background-color: var(--color-container-card-default);\n color: #000;\n width: 100vw;\n box-sizing: border-box;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 100;\n`;\n\nconst LeftRightContainer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-grow: 1;\n`;\n\nconst LeftComponent = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst RightComponent = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst MenuButton = styled.button`\n background: none;\n border: none;\n cursor: pointer;\n margin-left: 20px;\n display: none;\n\n @media (max-width: 834px) {\n display: block;\n }\n`;\n\nconst MenuIcon = styled.svg`\n width: 20px;\n height: 20px;\n`;\n\nconst Header = ({ onMenuClick, leftC, rightC }) => (\n \n \n {/* Left component */}\n {leftC}\n\n \n\n {/* Right component */}\n {rightC}\n \n\n {/* Menu button for small screens */}\n \n \n \n \n \n \n);\n\nexport default Header;\n","import React from \"react\";\nimport Search from \"./assets/search.svg\";\nimport Help from \"./assets/help.svg\";\nimport styled from \"styled-components\";\nimport UserButton from \"./UserButton\";\nimport LanguageDropdown from \"../components/Lib/Language\";\n\n// Styled Components for HeaderRightTools\nconst HeaderToolsContainer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 24px;\n`;\n\nconst Icon = styled.img`\n cursor: pointer;\n width: 18px;\n`;\n\nconst HeaderRightTools = ({\n user,\n chatNotifications,\n activityNotification,\n}) => {\n return (\n \n {/* */}\n \n {/* */}\n
    \n {chatNotifications}\n\n {activityNotification}\n
    \n \n
    \n );\n};\n\nexport default HeaderRightTools;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport ProfileIcon from \"./assets/profile.svg\";\nimport moment from \"moment\";\n\n// Styled Components\nconst DrawerContainer = styled.div`\n position: fixed;\n top: 60px;\n right: 0;\n width: 350px;\n min-height: calc(100vh - 60px);\n background-color: #f9f9f9;\n box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1);\n transform: ${({ open }) => (open ? \"translateX(0)\" : \"translateX(100%)\")};\n transition: transform 0.3s ease;\n z-index: 1001;\n display: flex;\n flex-direction: column;\n`;\n\nconst Tabs = styled.div`\n display: flex;\n padding: 0;\n margin-bottom: 20px;\n overflow-x: auto;\n background-color: var(--color-container-card-default);\n`;\n\nconst TabButton = styled.button`\n background-color: transparent;\n border: none;\n padding: 10px 20px;\n cursor: pointer;\n color: var(--color-background-card);\n font-weight: var(--font-weight-h4);\n border-bottom: 2px solid transparent;\n text-align: center;\n transition: all 0.3s ease;\n white-space: nowrap;\n\n &.active {\n background-color: var(--color-background-light);\n border-bottom: 2px solid var(--color-background-card);\n }\n\n &:hover {\n border-bottom: 2px solid var(--color-background-card);\n }\n`;\n\nconst NotificationsContainer = styled.div`\n flex-grow: 1;\n padding: 15px;\n overflow-y: scroll;\n`;\n\nconst NotificationItem = styled.a`\n display: flex;\n align-items: flex-start;\n text-decoration: none;\n color: inherit;\n margin-bottom: 20px;\n padding-bottom: 10px;\n border-bottom: 1px solid #ccc;\n\n &:hover {\n background-color: #f1f1f1;\n }\n`;\n\nconst NotificationAvatar = styled.img`\n width: 40px;\n height: 40px;\n border-radius: 50%;\n margin-right: 15px;\n`;\n\nconst NotificationContentWrapper = styled.div`\n flex-grow: 1;\n`;\n\nconst NotificationTitle = styled.div`\n font-size: 1rem;\n font-weight: bold;\n margin-bottom: 5px;\n`;\n\nconst NotificationContent = styled.div`\n font-size: 0.9rem;\n color: #333;\n margin-bottom: 5px;\n`;\n\nconst NotificationDate = styled.div`\n font-size: 0.85rem;\n color: #777;\n`;\n\nconst DrawerToggleIcon = styled.div`\n cursor: pointer;\n display: flex;\n align-items: center;\n background-color: ${({ open }) => (open ? \"#f0f0f0\" : \"transparent\")};\n padding: 8px;\n border-radius: 50%;\n transition: background-color 0.3s ease;\n`;\n\nconst NotificationDrawer = ({\n toggleIcon,\n readNotifications,\n unreadNotifications,\n}) => {\n const [open, setOpen] = useState(false);\n const [activeTab, setActiveTab] = useState(\"unread\");\n const drawerRef = useRef(null); // Reference for the drawer container\n const toggleButtonRef = useRef(null); // Reference for the toggle button\n\n // Function to handle closing drawer when clicking outside\n const handleClickOutside = (event) => {\n // Check if the click is outside the drawer and not on the toggle button\n if (\n drawerRef.current &&\n !drawerRef.current.contains(event.target) &&\n toggleButtonRef.current &&\n !toggleButtonRef.current.contains(event.target)\n ) {\n setOpen(false); // Close the drawer if clicked outside\n }\n };\n\n useEffect(() => {\n // Add event listener for clicks\n if (open) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n } else {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n }\n \n // Cleanup the event listener on component unmount\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [open]);\n\n // Select notifications based on the active tab\n const notificationsToDisplay =\n activeTab === \"unread\" ? unreadNotifications : readNotifications;\n\n return (\n <>\n {/* Pass the 'open' state to dynamically change background color */}\n setOpen(!open)} // Toggle the drawer open/close\n >\n {toggleIcon}\n \n\n \n \n setActiveTab(\"unread\")}\n >\n unread\n \n setActiveTab(\"read\")}\n >\n read\n \n \n \n {notificationsToDisplay.length > 0 ? (\n notificationsToDisplay.map((notification, index) => (\n \n \n \n {notification.recipient && (\n \n {notification.recipient.first_name}{\" \"}\n {notification.recipient.last_name}\n \n )}\n \n {notification.description ||\n notification?.last_message?.content}\n \n \n {moment(\n notification.created_at ||\n notification?.last_message?.created_at\n ).fromNow()}\n \n \n \n ))\n ) : (\n

    No notifications to display.

    \n )}\n
    \n
    \n \n );\n};\n\nexport default NotificationDrawer;","import React, { useEffect, useState } from \"react\";\nimport NavbarSimple from \"./SideBar\";\nimport fetchApi from \"./api\";\nimport App from \"../../channels/consumer\";\nimport LanguageDropdown from \"./Language\";\nimport Layout from \"../../stories/Layout\";\nimport Header from \"../../stories/Header\";\nimport Logo from \"../../stories/Logo\";\nimport HeaderRightTools from \"../../stories/HeaderRightTools\";\nimport useUserStore from \"../../stores/userStore\";\nimport NotificationDrawer from \"../../stories/NotificationDrawer\";\nimport { styled } from \"styled-components\";\nimport Bell from \"../../stories/assets/bell.svg\";\nimport Mail from \"../../stories/assets/mail.svg\";\nimport { useTranslation } from \"react-i18next\";\nimport { ActionIcon, Button, Dialog, rem, Textarea } from \"@mantine/core\";\nimport Notification from \"./Notification\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport { IconNote } from \"@tabler/icons-react\";\n\nconst Icon = styled.img`\n cursor: pointer;\n width: 18px;\n`;\n\nconst IconContainer = styled.div`\n position: relative;\n`;\n\nconst NotificationIndicator = styled.span`\n position: absolute;\n top: 8px;\n right: 8px;\n width: 10px;\n height: 10px;\n border: 1px solid var(--color-container-card-default);\n background: #0cb14e;\n border-radius: 50%;\n`;\n\nconst NotificationIndicatorMessage = styled.span`\n position: absolute;\n top: 5px;\n right: 5px;\n width: 10px;\n height: 10px;\n border: 1px solid var(--color-container-card-default);\n background: #0cb14e;\n border-radius: 50%;\n`;\n\nexport default function HeaderAndSidebar({ navlinks, children }) {\n const { user, recent_activities_count, chats_count, gamification } =\n useUserStore((state) => state.user);\n\n return (\n <>\n }\n rightC={\n \n }\n chatNotifications={\n \n }\n />\n }\n />\n }\n sidebarContent={}\n mainContent={children}\n />{\" \"}\n \n \n );\n}\n\nconst play = () => {\n const notificationSound = new Audio(\"/notification.mp3\");\n notificationSound.play();\n};\n\nconst GamificationBar = ({ gamification, user_id }) => {\n const [userGamification, setUserGamification] = useState(gamification);\n useEffect(() => {\n const subscription = App.subscriptions.create(\n { channel: \"GamificationChannel\", user_id },\n {\n connected() {\n console.log(\"Successfully connected to Notifications Channel\");\n },\n disconnected() {\n console.log(\"Disconnected from Notifications Channel\");\n },\n received(data) {\n console.log(\"New notification received:\", data);\n setUserGamification(data);\n play();\n },\n }\n );\n\n return () => subscription.unsubscribe();\n }, []);\n\n return (\n \n \n {userGamification.current_points}PX\n \n \n );\n};\n\nconst Feedback = () => {\n const { t } = useTranslation();\n const [opened, { toggle, close }] = useDisclosure(localStorage.getItem(\"feedbackDismissed\")!==\"true\");\n const [desc, setDesc] = useState(\"\");\n const [rating, setRating] = useState(1);\n const [notification, setNotification] = useState(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(\"\");\n\n const { user } = useUserStore((state) => state.user);\n const submitFeedback = async () => {\n if (!desc.trim()) {\n setError(t(\"sidebar.short_feedback_error\"));\n return;\n }\n setLoading(true);\n try {\n const response = await fetchApi(\"/feedbacks\", \"POST\", {\n feedback: {\n name: `${user.first_name} ${user.last_name}`,\n email: user.email,\n message: desc || \"All Good. No Comment.\",\n rating,\n },\n });\n\n if (response.ok) {\n const res = await response.json();\n setNotification({ type: \"success\", content: res.message });\n localStorage.setItem(\"feedbackDismissed\", \"true\"); // Store in localStorage\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: res.error });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during feedback sending\", error);\n } finally {\n setDesc(\"\");\n }\n\n setLoading(false);\n };\n return (\n <>\n { !opened && (\n \n \n \n )}\n {\n localStorage.setItem(\"feedbackDismissed\", \"true\"); // Store in localStorage\n close();\n }}\n position={{ bottom: 10, right: 20 }}\n size=\"xl\"\n radius=\"md\"\n style={{width: \"fit-content\", maxWidth: \"400px\"}}\n p={0}\n >\n \n
    \n {notification && }\n

    \n {t(\"sidebar.feedback_info\")}\n

    \n
    \n setDesc(event.currentTarget.value)}\n value={desc}\n id=\"message\"\n name=\"message\"\n placeholder={t(\"sidebar.feedback_message\")}\n withAsterisk\n error={error}\n />\n
    \n \n {t(\"sidebar.feedback_submit\")}\n \n
    \n \n \n \n );\n};\n\nconst MessagesNotification = ({ chats_count, user_id }) => {\n const [unread, setUnread] = useState([]);\n const [read, setRead] = useState([]);\n const [newCount, setNewCount] = useState(0);\n\n useEffect(() => {\n const subscription = App.subscriptions.create(\n { channel: \"MessagesChannel\", user_id },\n {\n connected() {\n console.log(\"Successfully connected to Notifications Channel\");\n },\n disconnected() {\n console.log(\"Disconnected from Notifications Channel\");\n },\n received(data) {\n console.log(\"New notification received:\", data);\n setUnread((p) => [data, ...p]);\n setNewCount((p) => ++p);\n play();\n },\n }\n );\n\n return () => subscription.unsubscribe();\n }, []);\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetchApi(`/api/users/fetch_chats`, \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n setUnread(res.unread_chats);\n setRead(res.next_five_chats);\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during fetching activities:\", error);\n }\n };\n\n fetchData();\n }, []);\n return (\n \n {chats_count + newCount ? : <>}\n }\n readNotifications={read}\n unreadNotifications={unread}\n />\n \n );\n};\n\nconst ActivitiesNotification = ({ recent_activities_count, user_id }) => {\n const [unread, setUnread] = useState([]);\n const [read, setRead] = useState([]);\n const [newCount, setNewCount] = useState(0);\n\n useEffect(() => {\n const subscription = App.subscriptions.create(\n { channel: \"UserActivitiesChannel\", user_id },\n {\n connected() {\n console.log(\"Connected to Activities Channel\");\n },\n disconnected() {\n console.log(\"Disconnected from Activities Channel\");\n },\n received(data) {\n setUnread((p) => [data, ...p]);\n setNewCount((p) => ++p);\n play();\n },\n }\n );\n\n return () => subscription.unsubscribe();\n }, []);\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetchApi(`/api/users/fetch_activities`, \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n setUnread(res.unread_activities);\n setRead(res.next_five_activities);\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during fetching activities:\", error);\n }\n };\n\n fetchData();\n }, []);\n return (\n \n }\n readNotifications={read}\n unreadNotifications={unread}\n />\n {recent_activities_count + newCount ? : <>}\n \n );\n};","import {\n ActionIcon,\n Button,\n Group,\n Modal,\n Stack,\n Text,\n TextInput,\n Textarea,\n Title,\n UnstyledButton,\n MultiSelect,\n} from \"@mantine/core\";\n\nimport { useDisclosure } from \"@mantine/hooks\";\nimport { DateTimePicker } from \"@mantine/dates\";\nimport React, { useState, useRef } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport { useTranslation } from \"react-i18next\";\nimport { IconSpeakerphone, IconTable } from \"@tabler/icons-react\";\nimport {\n DateTimePickerComponent,\n TimePickerComponent,\n DatePickerComponent,\n} from \"@syncfusion/ej2-react-calendars\";\nimport useStartupStore from \"../../stores/startupStore\";\nimport Notification from \"../Lib/Notification\";\n\nexport default function Meeting({ canSchedule, slug }) {\n const [opened, { open, close }] = useDisclosure(false);\n const [title, setTitle] = useState(\"\");\n const [description, setDescription] = useState(\"\");\n const { t } = useTranslation();\n const [meetingDate, setMeetingDate] = useState(null);\n const [startDateTime, setStartDateTime] = useState(null);\n const [selectedValues, setSelectedValues] = useState([]);\n const endTimeRef = useRef(null);\n const [notification, setNotification] = useState(null);\n const { members } = useStartupStore((state) => ({\n members: state.members,\n }));\n\n const memberNames = members.map((mbr) => ({\n value: mbr.id,\n label: mbr.first_name + \" \" + mbr.last_name,\n }));\n\n const handleDateChange = (args) => {\n setMeetingDate(args.value);\n setStartDateTime(null); // Reset start time when date changes\n if (endTimeRef.current) {\n endTimeRef.current.value = null; // Reset end time\n }\n };\n\n const handleStartTimeChange = (args) => {\n if (args.value) {\n // Combine the meeting date with selected time\n const selectedDate = new Date(meetingDate);\n selectedDate.setHours(args.value.getHours(), args.value.getMinutes(), 0);\n\n setStartDateTime(selectedDate);\n\n if (endTimeRef.current) {\n endTimeRef.current.value = null; // Reset end time when start time changes\n endTimeRef.current.min = selectedDate; // Ensure end time is later\n }\n }\n };\n\n const resetForm = () => {\n setTitle(\"\");\n setDescription(\"\");\n setMeetingDate(null);\n setStartDateTime(null);\n setSelectedValues([]);\n if (endTimeRef.current) {\n endTimeRef.current.value = null;\n endTimeRef.current.min = null;\n }\n };\n\n const handleSchedule = async () => {\n try {\n const response = await fetchApi(\"/meetings\", \"POST\", {\n slug: slug,\n meeting: {\n title,\n description,\n start_time: startDateTime,\n end_time: endTimeRef.current.value,\n meeting_date: meetingDate,\n },\n attendees: selectedValues,\n });\n\n if (response.ok) {\n const res = await response.json();\n setNotification({ type: \"success\", content: res.message });\n console.log(res);\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: res.error });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n } finally {\n resetForm();\n }\n };\n\n return (\n <>\n {opened && (\n \n \n {notification && }\n {t(\"startups_page.meeting.header\")}\n {t(\"startups_page.meeting.desc\")}\n setTitle(e.currentTarget.value)}\n />\n \n \n \n \n\n \n \n \n \n \n \n \n \n
    e.stopPropagation()}>\n {\n setSelectedValues(values);\n console.log(values);\n }}\n withinPortal\n />\n
    \n\n setDescription(e.currentTarget.value)}\n />\n\n \n {canSchedule\n ? t(\"startups_page.meeting.buttonText_m\")\n : t(\"startups_page.members.request_meeting\")}\n \n
    \n \n )}\n\n \n \n \n \n \n

    \n {canSchedule\n ? t(\"startups_page.members.schedule\")\n : t(\"startups_page.members.request_meeting\")}\n

    \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport {\n Menu,\n Button,\n Anchor,\n Checkbox,\n Group,\n PasswordInput,\n TextInput,\n MantineProvider,\n Divider,\n} from \"@mantine/core\";\nimport { useForm } from \"@mantine/form\";\nimport fetchApi from \"../Lib/api\";\nimport Notification from \"../Lib/Notification\";\nimport { GoogleButton } from \"./GoogleButton\";\nimport { LinkedInButton } from \"./LinkedInButton\";\nimport UserButton from \"../../stories/UserButton\";\nimport { IconArrowRight } from \"@tabler/icons-react\";\n\nfunction getSubdomain() {\n const hostname = window.location.hostname;\n const parts = hostname.split(\".\");\n // Adjust for localhost or development environments\n if (parts.length > 2) {\n return parts[0]; // Subdomain is the first part of the hostname\n }\n return null; // No subdomain\n}\n\nexport default function SignInModal({ isSignedIn, currentUser }) {\n const [resetMode, setResetMode] = useState(false);\n const [notification, setNotification] = useState(null);\n const [loading, setLoading] = useState(false);\n\n console.log({ isSignedIn, currentUser });\n\n // Form validation rules\n const form = useForm({\n initialValues: {\n email: \"\",\n password: \"\",\n },\n validate: {\n email: (val) => (/^\\S+@\\S+$/.test(val) ? null : \"Invalid email\"),\n password: (val) =>\n resetMode\n ? null\n : val.length >= 6\n ? null\n : \"Password should include at least 6 characters\",\n },\n });\n\n const handleSocialLogin = async (provider) => {\n setNotification(null);\n setLoading(true);\n\n try {\n // Redirect to backend social login endpoint\n const response = await fetchApi(`/users/auth/${provider}`, \"GET\");\n\n if (response.ok) {\n const data = await response.json();\n\n // Redirect to authorization URL or handle successful login\n if (data.redirect_url) {\n window.location.href = data.redirect_url;\n } else {\n setNotification({\n type: \"success\",\n content: `${provider} login initiated`,\n });\n }\n } else {\n const errorData = await response.json();\n setNotification({\n type: \"failure\",\n content: errorData.error || `${provider} login failed`,\n });\n }\n } catch (error) {\n console.error(`${provider} Login Error:`, error);\n setNotification({\n type: \"failure\",\n content: `Network error with ${provider} login`,\n });\n } finally {\n setLoading(false);\n }\n };\n\n const handleSubmit = async (values) => {\n setNotification(null);\n setLoading(true);\n\n try {\n let endpoint, payload;\n const subdomain = getSubdomain();\n\n if (resetMode) {\n // Password Reset\n endpoint = \"/users/password\";\n payload = { email: values.email };\n } else {\n // Login\n endpoint = \"/users/sign_in\";\n payload = {\n email: values.email,\n password: values.password,\n subdomain,\n };\n }\n\n const response = await fetchApi(endpoint, \"POST\", { user: payload });\n\n if (response.ok) {\n const data = await response.json();\n\n // Success handling\n if (resetMode) {\n setNotification({\n type: \"success\",\n content: \"Password reset link sent to your email\",\n });\n // Optional: Switch back to login mode after successful reset request\n setResetMode(false);\n } else {\n setNotification({\n type: \"success\",\n content: \"Login successful\",\n });\n // Redirect or perform login action\n window.location.href = data.redirect_to || \"/dashboard/#/\";\n }\n } else {\n // Error handling\n const errorData = await response.json();\n setNotification({\n type: \"failure\",\n content: errorData.error || \"Authentication failed\",\n });\n }\n } catch (error) {\n console.error(\"Authentication Error:\", error);\n setNotification({\n type: \"failure\",\n content: \"Network error. Please try again.\",\n });\n } finally {\n setLoading(false);\n }\n };\n\n return (\n ({\n input: {\n height: \"30px\",\n fontSize: \"12px\",\n },\n }),\n },\n PasswordInput: {\n defaultProps: { size: \"md\" },\n styles: () => ({\n input: {\n height: \"30px\",\n fontSize: \"12px\",\n },\n }),\n },\n },\n }}\n >\n {isSignedIn ? (\n \n ) : (\n \n \n \n \n\n \n {notification && }\n \n \n\n {!resetMode && (\n \n )}\n\n \n {!resetMode && }\n {\n setResetMode(!resetMode);\n form.reset();\n }}\n >\n {resetMode ? \"Back to Login\" : \"Forgot password?\"}\n \n \n\n \n\n {!resetMode && (\n <>\n \n\n \n handleSocialLogin(\"google\")}\n >\n Google\n \n handleSocialLogin(\"linkedin\")}\n >\n LinkedIn\n \n \n \n )}\n \n \n \n )}\n \n );\n}\n","import {\n ActionIcon,\n Anchor,\n Button,\n Chip,\n Grid,\n Group,\n Modal,\n Paper,\n Select,\n SimpleGrid,\n Stack,\n Switch,\n Text,\n TextInput,\n Textarea,\n Title,\n rem,\n} from \"@mantine/core\";\nimport { MultiSelect } from \"react-multi-select-component\";\nimport React, { useContext, useState } from \"react\";\nimport { countriesData, industries, skills } from \"../../Onboarding/data\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport { onSubmit } from \"../../Onboarding/Onboarding\";\nimport {\n IconCheck,\n IconExternalLink,\n IconPencil,\n IconTrash,\n IconX,\n} from \"@tabler/icons-react\";\nimport useUserStore from \"../../../stores/userStore\";\n\nexport default function Profile({ isEditMode, setIsEditMode, form }) {\n const {\n user: { user, gamification },\n setUser,\n } = useUserStore((state) => state);\n\n console.log(user);\n\n return (\n
    \n
    \n \n \n\n \n\n \n\n \n \n\n \n \n
    \n
    \n );\n}\n\nconst AboutMe = ({ setUser, isEditMode, form, user, gamification }) => {\n const [editAboutMe, setEditAboutMe] = useState(false);\n return (\n \n \n \n \n \n Points & Level\n \n \n\n \n
    \n
    \n

    \n {gamification.current_level.name}\n

    \n \n {gamification.next_level.points_threshold}PX\n \n
    \n \n \n {gamification.current_points}PX\n
    \n \n \n\n

    \n Achievements\n

    \n\n {/*
      \n
    • \n

      \n Current Level\n

      \n\n

      \n {gamification.current_level.name} -{\" \"}\n {gamification.current_points}PX\n

      \n
    • \n
    • \n

      \n Previous Level\n

      \n\n

      \n {gamification.previous_level.name} -{\" \"}\n {gamification.previous_level.points_threshold}PX\n

      \n
    • \n
    • \n

      \n Next Level\n

      \n\n

      \n {gamification.next_level.name} -{\" \"}\n {gamification.next_level.points_threshold}PX\n

      \n
    • \n
    */}\n
    \n \n
    \n \n \n \n \n About Me\n \n {!isEditMode && (\n <>\n setEditAboutMe(!editAboutMe)}\n >\n {editAboutMe ? (\n \n ) : (\n \n )}\n \n {editAboutMe && (\n {\n if (onSubmit(form.values, setUser)) setEditAboutMe(false);\n }}\n >\n \n \n )}\n \n )}\n \n {isEditMode || editAboutMe ? (\n {\n const updatedValue = event.currentTarget.value;\n form.setFieldValue(\"about_me\", updatedValue.slice(0, 500));\n }}\n error={form.errors.about_me}\n minRows={8}\n maxLength={500}\n />\n ) : (\n \n {user.about_me}\n \n )}\n \n \n
    \n );\n};\n\nconst Skills = ({ setUser, isEditMode, form, user }) => {\n const [editAboutMe, setEditAboutMe] = useState(false);\n const [selectedExperts, setSelectedExperts] = useState(\n form.values.expert_in.map((m) => ({ label: m, value: m }))\n );\n const [selectedSkills, setSelectedSkills] = useState(\n form.values.skills.map((m) => ({ label: m, value: m }))\n );\n const [selectedIndustries, setSelectedIndustries] = useState(\n form.values.industries.map((m) => ({ label: m, value: m }))\n );\n return (\n \n \n
    \n \n \n Expert In\n \n {!isEditMode && (\n <>\n setEditAboutMe(!editAboutMe)}\n >\n {editAboutMe ? (\n \n ) : (\n \n )}\n \n {editAboutMe && (\n {\n if (onSubmit(form.values, setUser)) setEditAboutMe(false);\n }}\n >\n \n \n )}\n \n )}\n \n \n {isEditMode || editAboutMe ? (\n {\n if (e.length > 5) return;\n setSelectedExperts(e);\n form.setFieldValue(\n \"expert_in\",\n e.map((m) => m.label)\n );\n }}\n className=\"max-w-full lg:w-96\"\n />\n ) : (\n <>\n {user.expert_in.map((skill) => (\n \n \n {skill}\n \n \n ))}\n \n )}\n \n
    \n
    \n
    \n \n Industries\n \n\n \n {isEditMode || editAboutMe ? (\n {\n if (e.length > 5) return;\n setSelectedIndustries(e);\n form.setFieldValue(\n \"industries\",\n e.map((m) => m.label)\n );\n }}\n className=\"max-w-full lg:w-96\"\n />\n ) : (\n <>\n {user.industries.map((skill) => (\n \n \n {skill}\n \n \n ))}\n \n )}\n \n
    \n
    \n
    \n \n Skills\n \n \n {isEditMode || editAboutMe ? (\n {\n if (e.length > 15) return;\n setSelectedSkills(e);\n form.setFieldValue(\n \"skills\",\n e.map((m) => m.label)\n );\n }}\n className=\"max-w-full lg:w-96\"\n />\n ) : (\n <>\n {user.skills.map((skill) => (\n \n \n {skill}\n \n \n ))}\n \n )}\n \n
    \n
    \n
    \n );\n};\n\nconst Personal = ({ setUser, isEditMode, form, user }) => {\n const [editAboutMe, setEditAboutMe] = useState(false);\n return (\n \n \n \n Personal Information\n \n {!isEditMode && (\n <>\n setEditAboutMe(!editAboutMe)}\n >\n {editAboutMe ? (\n \n ) : (\n \n )}\n \n {editAboutMe && (\n {\n if (onSubmit(form.values, setUser)) setEditAboutMe(false);\n }}\n >\n \n \n )}\n \n )}\n \n \n \n
    \n

    First Name

    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"first_name\", event.currentTarget.value)\n }\n error={form.errors.first_name}\n withAsterisk\n />\n ) : (\n

    \n {user.first_name}\n

    \n )}\n
    \n
    \n

    Last Name

    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"last_name\", event.currentTarget.value)\n }\n error={form.errors.last_name}\n withAsterisk\n />\n ) : (\n

    \n {user.last_name}\n

    \n )}\n
    \n \n\n \n
    \n \n

    Public Email

    \n {isEditMode ||\n (editAboutMe && (\n \n form.setFieldValue(\n \"display_email\",\n event.currentTarget.checked\n )\n }\n />\n ))}\n
    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"public_email\", event.currentTarget.value)\n }\n error={form.errors.public_email}\n withAsterisk\n />\n ) : (\n

    \n {form.values.public_email}\n

    \n )}\n
    \n
    \n \n

    Phone Number

    \n {isEditMode ||\n (editAboutMe && (\n \n form.setFieldValue(\n \"display_phone\",\n event.currentTarget.checked\n )\n }\n />\n ))}\n
    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"public_phone\", event.currentTarget.value)\n }\n error={form.errors.public_phone}\n withAsterisk\n />\n ) : (\n

    \n {form.values.public_phone}\n

    \n )}\n
    \n \n\n \n
    \n

    Country

    \n {isEditMode || editAboutMe ? (\n form.setFieldValue(\"country\", event)}\n error={form.errors.country}\n radius=\"md\"\n size=\"md\"\n searchable\n nothingFound=\"No options\"\n />\n ) : (\n

    \n {user.address?.country}\n

    \n )}\n
    \n
    \n

    City

    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"city\", event.currentTarget.value)\n }\n error={form.errors.city}\n withAsterisk\n />\n ) : (\n

    \n {user.address?.city}\n

    \n )}\n
    \n \n
    \n
    \n );\n};\n\nconst Education = ({ setUser, isEditMode, form, user }) => {\n const [editAboutMe, setEditAboutMe] = useState(false);\n return (\n \n \n \n Education\n \n {!isEditMode && (\n <>\n setEditAboutMe(!editAboutMe)}\n >\n {editAboutMe ? (\n \n ) : (\n \n )}\n \n {editAboutMe && (\n {\n if (onSubmit(form.values, setUser)) setEditAboutMe(false);\n }}\n >\n \n \n )}\n \n )}\n \n \n \n
    \n

    University

    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"university\", event.currentTarget.value)\n }\n error={form.errors.university}\n withAsterisk\n />\n ) : (\n

    \n {user.university}\n

    \n )}\n
    \n
    \n

    Degree

    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"degree\", event.currentTarget.value)\n }\n error={form.errors.degree}\n withAsterisk\n />\n ) : (\n

    \n {user.degree}\n

    \n )}\n
    \n \n
    \n
    \n );\n};\n\nconst Socials = ({ setUser, isEditMode, form, user }) => {\n const [editAboutMe, setEditAboutMe] = useState(false);\n return (\n \n \n \n Social Links\n \n {!isEditMode && (\n <>\n setEditAboutMe(!editAboutMe)}\n >\n {editAboutMe ? (\n \n ) : (\n \n )}\n \n {editAboutMe && (\n {\n if (onSubmit(form.values, setUser)) setEditAboutMe(false);\n }}\n >\n \n \n )}\n \n )}\n \n \n \n
    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"linkedin\", event.currentTarget.value)\n }\n error={form.errors.linkedin}\n withAsterisk\n />\n ) : (\n }\n >\n LinkedIn\n \n )}\n
    \n
    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"github\", event.currentTarget.value)\n }\n error={form.errors.github}\n withAsterisk\n />\n ) : (\n }\n >\n Github\n \n )}\n
    \n
    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"twitter\", event.currentTarget.value)\n }\n error={form.errors.twitter}\n withAsterisk\n />\n ) : (\n }\n >\n Twitter\n \n )}\n
    \n \n
    \n
    \n );\n};\n\nconst Job = ({ setUser, isEditMode, form, user }) => {\n const [opened, { close, open }] = useDisclosure(false);\n const [editAboutMe, setEditAboutMe] = useState(false);\n return (\n <>\n {[1, 0].includes(user.user_type) ? (\n \n \n \n \n Job Details\n \n {!isEditMode && (\n <>\n setEditAboutMe(!editAboutMe)}\n >\n {editAboutMe ? (\n \n ) : (\n \n )}\n \n {editAboutMe && (\n {\n if (onSubmit(form.values, setUser))\n setEditAboutMe(false);\n }}\n >\n \n \n )}\n \n )}\n \n \n \n \n \n\n \n \n
    \n

    Company

    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"company\", event.currentTarget.value)\n }\n error={form.errors.company}\n withAsterisk\n />\n ) : (\n

    \n {user.company}\n

    \n )}\n
    \n
    \n

    Job Title

    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"job_title\", event.currentTarget.value)\n }\n error={form.errors.job_title}\n withAsterisk\n />\n ) : (\n

    \n {user.job_title}\n

    \n )}\n
    \n \n \n
    \n

    Type (Remote/Onsite)

    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\"work_type\", event.currentTarget.value)\n }\n error={form.errors.work_type}\n withAsterisk\n />\n ) : (\n

    \n {user.work_type}\n

    \n )}\n
    \n
    \n

    Years Of Experience

    \n {isEditMode || editAboutMe ? (\n \n form.setFieldValue(\n \"year_of_experience\",\n event.currentTarget.value\n )\n }\n error={form.errors.year_of_experience}\n withAsterisk\n />\n ) : (\n

    \n {user.year_of_experience}\n

    \n )}\n
    \n \n
    \n
    \n ) : (\n <>\n {\n form.setFieldValue(\"user_type\", 0);\n open();\n }}\n >\n Do you also have a job?\n \n {opened && (\n \n \n \n form.setFieldValue(\"company\", event.currentTarget.value)\n }\n error={form.errors.company}\n withAsterisk\n />\n \n form.setFieldValue(\"job_title\", event.currentTarget.value)\n }\n error={form.errors.job_title}\n withAsterisk\n />\n \n \n \n form.setFieldValue(\n \"year_of_experience\",\n event.currentTarget.value\n )\n }\n error={form.errors.year_of_experience}\n withAsterisk\n />\n form.setFieldValue(\"work_type\", event)}\n error={form.errors.work_type}\n withAsterisk\n />\n \n {\n form.setFieldValue(\"user_type\", 0);\n if (onSubmit(form.values, setUser)) close();\n }}\n >\n Add\n \n \n )}\n \n )}\n \n );\n};\n","// utils/api.js\n\nconst csrfToken = document\n .querySelector('meta[name=\"csrf-token\"]')\n .getAttribute(\"content\");\n\nconst defaultHeaders = (formData) => {\n return formData\n ? { \"X-CSRF-Token\": csrfToken, Accept: \"application/json\" }\n : {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n \"X-CSRF-Token\": csrfToken,\n };\n};\n\nconst fetchBody = (body, formData) => {\n return formData ? body : JSON.stringify(body);\n};\n\n/**\n * fetchApi now supports a custom timeout (in milliseconds).\n * By default, timeout is set to 240000ms (4 minutes).\n */\nconst fetchApi = async (\n url,\n method = \"GET\",\n body = null,\n formData,\n customHeaders = {},\n timeout = 240000\n) => {\n const headers = { ...defaultHeaders(formData), ...customHeaders };\n\n // Create an AbortController instance\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeout);\n\n const options = {\n method,\n headers,\n body: body ? fetchBody(body, formData) : null,\n signal: controller.signal,\n };\n\n try {\n const response = await fetch(url, options);\n return response;\n } catch (error) {\n console.error(\"Fetch error:\", error.message);\n throw new Error(\"Failed to fetch data\");\n } finally {\n clearTimeout(timer);\n }\n};\n\nexport default fetchApi;\n","import React, { memo, useEffect, useState } from \"react\";\n\nimport { useDisclosure } from \"@mantine/hooks\";\n\nimport fetchApi from \"../../Lib/api\";\nimport { useLocation, useParams } from \"react-router-dom\";\nimport moment from \"moment\";\nimport {\n Avatar,\n Button,\n Checkbox,\n Collapse,\n Grid,\n Group,\n Skeleton,\n Spoiler,\n Stack,\n TextInput,\n} from \"@mantine/core\";\n\nimport HeaderAndSidebar from \"../../Lib/HeaderAndSidebar\";\nimport Markdown from \"../../Lib/Markdown\";\n\nconst MemoTopics = memo(Topics);\n\nexport default function TopicsContainer({ project }) {\n return (\n }>\n \n \n );\n}\n\nfunction Topics() {\n const { channel_type } = useParams();\n const location = useLocation();\n const [topics, setTopics] = useState([]);\n const [opened, { toggle, open }] = useDisclosure(false);\n const [title, setTitle] = useState(\"\");\n const [content, setContent] = useState(\"\");\n const [locked, setLocked] = useState(false);\n const [sticky, setSticky] = useState(false);\n const [channelName, setChannelName] = useState(\"\");\n\n useEffect(() => {\n // Parse query parameters from the location object\n const searchParams = new URLSearchParams(location.search);\n const param1 = searchParams.get(\"channel\");\n setChannelName(param1);\n\n // Use param1 and param2 as needed...\n }, []);\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetchApi(`/hub/${channel_type}`, \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n // setNotification({ type: \"success\", content: msg });\n console.log(res);\n setTopics(res.topic_views);\n // setMessageBoards(res);\n // window.location.href = \"/startup_entities/1\";\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n fetchData(); // Call the async function immediately\n }, []);\n\n const handleTopicCreate = async (postId) => {\n try {\n const response = await fetchApi(\n `/hub/${channel_type}/create_topic`,\n \"POST\",\n {\n // messageboard_id: channel_type,\n topic: { title, content, locked, sticky },\n }\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setTopics(res.topic_views);\n toggle();\n setTitle(\"\");\n setContent(\"\");\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n return (\n
    \n
    \n \n
  • \n \n Channels\n \n \n \n \n
  • \n\n
  • \n \n {channelName}\n \n \n \n \n
  • \n\n \n {channel_type.replaceAll(\"-\", \" \")}\n \n \n\n \n \n \n setTitle(event.currentTarget.value)}\n size=\"md\"\n withAsterisk\n value={title}\n label={opened ? \"Title\" : \"\"}\n placeholder=\"Start a new topic\"\n />\n \n \n {\n setContent(e);\n }}\n />\n\n \n \n setLocked(event.currentTarget.checked)\n }\n label=\"Locked\"\n />\n \n setSticky(event.currentTarget.checked)\n }\n label=\"Sticky\"\n />\n \n\n \n }\n >\n Create new topic\n {\" \"}\n }\n >\n Cancel\n \n \n \n \n \n
      \n {topics.map(({ topic }) => (\n \n ))}\n
    \n
    \n \n \n Lorem ipsum dolor sit amet...\n {/* other content */}\n \n \n
    \n
    \n
    \n );\n}\n\nconst RenderPost = ({ post, channel_type }) => {\n return (\n \n {}}\n />\n \n );\n};\n\nexport function TopicListItem({ topic, channel_type, channelName }) {\n const {\n title,\n id,\n follow,\n read_state,\n user,\n first_post,\n last_post_at,\n posts_count,\n last_user,\n slug,\n } = topic;\n\n return (\n \n
    \n

    \n {title}\n

    \n\n {read_state.unread_posts_count ? (\n \n Unread posts\n \n {read_state.unread_posts_count}\n \n \n ) : (\n <>\n )}\n
    \n
    \n \n \n
    \n \n
    \n

    \n {user.first_name} {user.last_name}\n

    \n

    {user.job_title}

    \n
    \n
    \n
    \n\n \n {follow ? \"UnFollow\" : \"Follow\"}\n \n
    \n\n \n
    \n {channel_type && (\n
    \n \n \n View Replies ({posts_count - 1})\n \n \n \n \n \n \n
    \n \n
    \n {last_user.first_name} reply{\" \"}\n {moment(last_post_at).fromNow()}\n
    \n
    \n
    \n
    \n
    \n
    \n )}\n \n );\n}\n","import React from \"react\";\nimport { MantineProvider } from \"@mantine/core\";\nimport { BrowserRouter } from \"react-router-dom\";\n\nexport default function Layout({ children }) {\n return (\n \n \n {children}\n \n \n );\n}\n","var map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 82682,\n\t\"./ar-sa.js\": 82682,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 44429,\n\t\"./bs.js\": 44429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 22274,\n\t\"./nb.js\": 22274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","import {\n Button,\n Checkbox,\n Group,\n Select,\n Stack,\n TextInput,\n Title,\n Collapse,\n Breadcrumbs,\n Alert,\n} from \"@mantine/core\";\nimport React, { useContext, useEffect, useState } from \"react\";\n\nimport moment from \"moment\";\n\nimport { useDisclosure } from \"@mantine/hooks\";\nimport fetchApi from \"../../../Lib/api\";\nimport Markdown from \"../../../Lib/Markdown\";\nimport { IconAlertCircle } from \"@tabler/icons-react\";\nimport useUserStore from \"../../../../stores/userStore\";\n\nexport default function RenderTopics({ context, userIsBlocked }) {\n const [topics, setTopics] = useState([]);\n\n useEffect(() => {\n let url;\n if (context.slug) url = `/hub/${context.slug}`;\n else if (context.id) url = `/hub/topics/all/${context.id}`;\n else url = \"/hub/topics/all\";\n async function fetchData() {\n try {\n const response = await fetchApi(url, \"GET\");\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setTopics(res.topics);\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n }\n fetchData();\n }, [context]);\n\n return (\n \n {context.channel && (\n <>\n \n \n {context.channel}\n \n \n {context.name}\n \n \n \n )}\n\n {userIsBlocked === \"approved\" ? (\n \n ) : (\n } color=\"indigo\">\n You are not allowed to create a new topic. Please contact the\n administrator.\n \n )}\n\n {topics.map((t) => (\n \n ))}\n \n );\n}\n\nconst PostCard = ({ topic, following, url_path }) => {\n const statusStyles = {\n pending: {\n bgColor:\n \"bg-yellow-100 border-yellow-200 dark:bg-yellow-900 dark:border-yellow-700\",\n headerColor: \"bg-yellow-200 dark:bg-yellow-800\",\n textColor: \"text-yellow-900 dark:text-yellow-100\",\n subTextColor: \"text-yellow-800 dark:text-yellow-200\",\n detailColor: \"text-yellow-700 dark:text-yellow-300\",\n statusText: \"⏳ Pending Review\",\n },\n blocked: {\n bgColor: \"bg-red-100 border-red-200 dark:bg-red-900 dark:border-red-700\",\n headerColor: \"bg-red-200 dark:bg-red-800\",\n textColor: \"text-red-900 dark:text-red-100\",\n subTextColor: \"text-red-800 dark:text-red-200\",\n detailColor: \"text-red-700 dark:text-red-300\",\n statusText: \"🚫 Blocked Content\",\n },\n approved: {\n bgColor: \"bg-white border-gray-200 dark:bg-gray-800 dark:border-gray-700\",\n headerColor: \"bg-gray-200 dark:bg-gray-800\",\n textColor: \"text-gray-900 dark:text-white\",\n subTextColor: \"text-gray-500 dark:text-gray-400\",\n detailColor: \"text-gray-500 dark:text-gray-400\",\n statusText: \"Post Content\",\n },\n };\n\n const currentStyle =\n statusStyles[topic.first_post?.moderation_state] || statusStyles.approved;\n\n return (\n \n {topic.first_post?.moderation_state !== \"approved\" && (\n
    \n \n {currentStyle.statusText}\n \n
    \n )}\n\n
    \n \n
    \n

    \n {topic.first_post.user.first_name} {topic.first_post.user.last_name}\n

    \n

    \n {topic.first_post.user.job_title}\n

    \n
    \n
    \n \n

    \n {topic.title}\n

    \n
    \n\n \n\n
    \n 🗓️ Posted {moment(topic.created_at).fromNow()} | 💬{\" \"}\n {topic.posts_count - 1} Replies\n
    \n
    \n \n 💬 Replies\n \n
    \n \n );\n};\n\nexport function CreateTopic({ channel_type, name, topic, close }) {\n const [opened, { toggle, open }] = useDisclosure(!!topic);\n const [messageboards, setMessageBoards] = useState([]);\n const [messageboard, setMessageBoard] = useState(channel_type);\n const [title, setTitle] = useState(\"\");\n const [content, setContent] = useState(\"\");\n const [locked, setLocked] = useState(false);\n const [sticky, setSticky] = useState(false);\n const { user } = useUserStore((state) => state.user);\n\n useEffect(() => {\n if (topic) {\n setTitle(topic.title);\n setLocked(topic.locked);\n setSticky(topic.sticky);\n setMessageBoard(channel_type);\n }\n async function fetchData() {\n try {\n const response = await fetchApi(\"/hub?mg=true\", \"GET\");\n if (response.ok) {\n const res = await response.json();\n setMessageBoards(\n res.map((m) => ({ label: m.name, value: m.slug, id: m.id }))\n );\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n }\n if (opened && !name) fetchData();\n }, [opened, name]);\n\n const handleTopicCreate = async () => {\n const m_id = messageboards.find((m) => m.value === messageboard).id;\n try {\n const response = await fetchApi(\n topic ? `/hub/${channel_type}/${topic.slug}` : `/hub/${messageboard}`,\n topic ? \"PATCH\" : \"POST\",\n {\n // messageboard_id: channel_type,\n topic: topic\n ? { title, messageboard_id: m_id, locked, sticky }\n : { title, content, locked, sticky },\n }\n );\n\n if (response.ok) {\n const res = await response.json();\n if (close) close(title);\n toggle();\n setTitle(\"\");\n setContent(\"\");\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n return (\n \n setTitle(event.currentTarget.value)}\n size=\"md\"\n withAsterisk\n value={title}\n label={opened ? \"Title\" : \"\"}\n placeholder={`Start a new topic ${name ? \"in \" + name : \"\"}`}\n />\n \n \n {!name && (\n \n )}\n {!topic && (\n {\n setContent(e);\n }}\n />\n )}\n\n {user.admin && (\n \n setLocked(event.currentTarget.checked)}\n label=\"Locked\"\n />\n setSticky(event.currentTarget.checked)}\n label=\"Sticky\"\n />\n \n )}\n\n \n }\n >\n {topic ? \"Update\" : \"Create new\"} topic\n {\" \"}\n }\n >\n Cancel\n \n \n \n \n \n );\n}\n","import { ScrollArea, TextInput, Collapse, Table } from \"@mantine/core\";\nimport React, { useEffect, useState } from \"react\";\nimport fetchApi from \"../../../Lib/api\";\nimport moment from \"moment\";\nimport { IconSearch } from \"@tabler/icons-react\";\nimport { useDisclosure } from \"@mantine/hooks\";\n\nfunction UserDetails({ id }) {\n const [details, setDetails] = useState(null);\n const [topics, setTopics] = useState([]);\n\n useEffect(() => {\n async function fetchData() {\n try {\n const response = await fetchApi(\n `/hub/admin/moderation/users/${id}`,\n \"GET\"\n );\n if (response.ok) {\n const res = await response.json();\n // setUsers(res);\n console.log(res);\n setDetails(res.moderation);\n setTopics(res.posts);\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n }\n fetchData();\n }, []);\n\n const handleModeration = async (state) => {\n try {\n const response = await fetchApi(\n `/hub/admin/moderation/user/${id}`,\n \"POST\",\n {\n moderation_state: state,\n }\n );\n if (response.ok) {\n const res = await response.json();\n // setUsers(res);\n console.log(res);\n setDetails(res.moderation);\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during moderating:\", error);\n }\n };\n\n if (!details) return <>;\n return (\n
    \n
    \n {details.created_at && (\n
    \n

    \n User since:{\" \"}\n \n {moment(details.created_at).format(\"MMM DD YYYY\")}\n \n

    \n
    \n )}\n {details.last_seen_at && (\n
    \n

    \n Last active:{\" \"}\n \n {moment(details.last_seen_at).format(\"MMM DD YYYY\")}\n \n

    \n
    \n )}\n
    \n

    \n Started topics:{\" \"}\n {details.topics_count}\n

    \n
    \n
    \n

    \n Posts: {details.posts_count}\n

    \n
    \n
    \n {details.moderation_state === \"approved\" ? (\n handleModeration(\"blocked\")}\n className=\"bg-red-500 text-white px-4 py-2 rounded-md hover:bg-red-600\"\n >\n Block\n \n ) : (\n handleModeration(\"approved\")}\n className=\"bg-green-500 text-white px-4 py-2 rounded-md hover:bg-green-600\"\n >\n Approve\n \n )}\n
    \n
    \n
    \n

    Recent Posts:

    \n
      \n {topics.map((post, index) => (\n
    • \n {post.is_topic_starter ? \"Started \" : \"Posted in \"}{\" \"}\n \n {post.postable.title}\n \n
    • \n ))}\n
    \n
    \n
    \n );\n}\n\nconst UserRow = ({ user }) => {\n const [opened, { toggle }] = useDisclosure(false);\n return (\n <>\n \n {user.full_name}\n \n {user.thredded_user_detail.moderation_state}\n \n \n {user.thredded_user_detail.moderation_state_changed_at &&\n moment(\n user.thredded_user_detail.moderation_state_changed_at\n ).format(\"MMM DD YYYY\")}\n \n \n {opened && (\n \n \n \n \n \n \n \n )}\n \n );\n};\n\nexport default function ModerationUsers({}) {\n const [users, setUsers] = useState([]);\n const [search, setSearch] = useState(\"\");\n const [inputValue, setInputValue] = useState(\"\");\n\n useEffect(() => {\n async function fetchData() {\n try {\n const response = await fetchApi(\n `/hub/admin/moderation/users?q=${search}`,\n \"GET\"\n );\n if (response.ok) {\n const res = await response.json();\n setUsers(res);\n console.log(res);\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n }\n fetchData();\n }, [search]);\n\n const handleKeyDown = (event) => {\n if (event.key === \"Enter\") {\n setSearch(inputValue);\n }\n };\n\n return (\n <>\n \n }\n value={inputValue}\n onChange={(event) => setInputValue(event.currentTarget.value)}\n onKeyDown={handleKeyDown}\n />\n\n \n \n \n \n User Name\n \n \n Moderation Status\n \n \n Created Date\n \n \n \n \n {users.length > 0 ? (\n users.map((user, index) => )\n ) : (\n \n \n Nothing found\n \n \n )}\n \n \n \n \n );\n}\n","import {\n Anchor,\n Button,\n Divider,\n Group,\n Menu,\n Modal,\n Select,\n Stack,\n Text,\n TextInput,\n Title,\n} from \"@mantine/core\";\nimport { useForm } from \"@mantine/form\";\nimport React, { useEffect, useState } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport { countriesData, industriesData } from \"../Onboarding/data\";\nimport { useParams } from \"react-router-dom\";\nimport { IconArrowLeft } from \"@tabler/icons-react\";\nimport { StartupPrivacy } from \"./StartupShow\";\nimport { useDisclosure } from \"@mantine/hooks\";\n\nexport default function EditStartup() {\n const { slug } = useParams();\n const [owner, setOwner] = useState(false);\n const [startup, setStartup] = useState({});\n const [opened, { close, open }] = useDisclosure(false);\n const form = useForm({\n initialValues: {\n name: \"\",\n description: \"\",\n industry: \"\",\n stage: \"\",\n country: \"\",\n city: \"\",\n website: \"\",\n linkedin: \"\",\n social_media: \"\",\n project_type: \"\",\n },\n validate: {\n name: (value) => {\n if (!value) {\n return \"Name is required\";\n }\n return null;\n },\n description: (value) => {\n if (!value) {\n return \"Description is required\";\n }\n return null;\n },\n industry: (value) => {\n if (!value) {\n return \"Industry is required\";\n }\n return null;\n },\n stage: (value, values) => {\n if (!value && !values.project_type) {\n return \"Stage is required\";\n }\n return null;\n },\n country: (value) => {\n if (!value) {\n return \"Country is required\";\n }\n return null;\n },\n city: (value) => {\n if (!value) {\n return \"City is required\";\n }\n return null;\n },\n },\n });\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/edit`,\n \"GET\"\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n\n // Assuming res.startup_entity is an object\n Object.keys(form.values).forEach((key) => {\n form.setFieldValue(key, res.startup_entity[key]);\n });\n setOwner(res.is_owner);\n setStartup(res);\n console.log(form.values);\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during startup privacy change:\", error);\n }\n };\n\n fetchData(); // Call the async function immediately\n }, [slug]); // Added form as a dependency to the dependency array\n\n const handleSubmit = async (e) => {\n try {\n const response = await fetchApi(`/startup_entities/${slug}`, \"PUT\", {\n startup_entity: form.values,\n });\n\n if (response.ok) {\n const res = (await response.json()).startup_entity;\n // setNotification({ type: \"success\", content: msg });\n console.log(res);\n window.location.href = `/startup_entities/${res.slug}`;\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during startup update:\", error);\n }\n };\n\n const handleDelete = async (e) => {\n try {\n const response = await fetchApi(`/startup_entities/${slug}`, \"DELETE\");\n\n if (response.ok) {\n const res = (await response.json()).startup_entity;\n console.log(res);\n window.location.href = `/dashboard/#/`;\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during deleting startup\", error);\n }\n };\n\n return (\n <>\n
    \n
    \n window.history.back()} target=\"_blank\">\n \n \n Go back\n \n \n \n Edit Project\n \n\n
    \n \n General Details\n \n Revamp your startup details to stand out. Keep it fresh and\n engaging.\n \n\n \n\n \n form.setFieldValue(\"name\", event.currentTarget.value)\n }\n error={form.errors.name}\n radius=\"md\"\n size=\"md\"\n className=\"lg:w-2/3\"\n />\n\n \n form.setFieldValue(\"description\", event.currentTarget.value)\n }\n error={form.errors.description}\n radius=\"md\"\n size=\"md\"\n className=\"lg:w-2/3\"\n />\n form.setFieldValue(\"industry\", event)}\n error={form.errors.industry}\n withAsterisk\n className=\"lg:w-2/3\"\n searchable\n />\n form.setFieldValue(\"stage\", event)}\n error={form.errors.stage}\n withAsterisk\n className=\"lg:w-2/3\"\n />\n\n \n\n \n form.setFieldValue(\"country\", event)}\n error={form.errors.country}\n radius=\"md\"\n size=\"md\"\n searchable\n nothingFound=\"No options\"\n />\n \n form.setFieldValue(\"city\", event.currentTarget.value)\n }\n error={form.errors.city}\n radius=\"md\"\n size=\"md\"\n />\n \n \n \n form.setFieldValue(\"website\", event.currentTarget.value)\n }\n error={form.errors.website}\n radius=\"md\"\n size=\"md\"\n className=\"lg:w-2/3\"\n />\n \n \n form.setFieldValue(\"linkedin\", event.currentTarget.value)\n }\n error={form.errors.linkedin}\n radius=\"md\"\n size=\"md\"\n />\n \n form.setFieldValue(\n \"social_media\",\n event.currentTarget.value\n )\n }\n error={form.errors.social_media}\n radius=\"md\"\n size=\"md\"\n />\n \n \n \n \n \n
    \n {owner && (\n
    \n \n Privacy Settings\n \n Privacy settings can only be updated by the startup owner.\n \n \n
    \n Change Startup Visibility\n \n This Project is currently{\" \"}\n {startup.startup_entity.public_listed\n ? \"visible\"\n : \"hidden\"}{\" \"}\n to the public\n \n
    \n \n
    \n \n
    \n Delete this startup\n \n Once you delete a Project,\n there is no going back. Please be certain.\n \n
    \n \n Delete\n \n
    \n
    \n
    \n )}\n
    \n
    \n {opened && (\n \n
    \n

    \n Deleting the {startup?.startup_entity?.name}{\" \"}\n Project will permanently erase all\n associated data and progress. Please confirm that you understand\n the irreversible nature of this action before proceeding.\n

    \n
    \n
    \n \n \n Proceed anyway\n \n
    \n \n )}\n \n );\n}\n","import { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React from 'react';\n\n// Create a QueryClient instance\nconst queryClient = new QueryClient();\n\nconst QueryProvider = ({ children }) => {\n return (\n \n {children}\n \n );\n};\n\nexport default QueryProvider;\n","import { Title } from \"@mantine/core\";\nimport React from \"react\";\n\nexport default function Resources() {\n return Resources Page;\n}\n","import React, { useEffect } from \"react\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport fetchApi from \"./api\"; // Adjust based on your structure\nimport useUserStore from \"../../stores/userStore\"; // Zustand store\nimport { Loader } from \"@mantine/core\";\n\n// Function to fetch user data\nconst fetchUser = async (setUser) => {\n const response = await fetchApi(\"/api/users/current\");\n if (!response.ok) {\n throw new Error(\"Failed to fetch user data\");\n }\n const res = await response.json();\n setUser(res);\n console.log(res)\n return res;\n};\n\n// Function to update the last seen status\nconst updateLastSeen = async () => {\n try {\n const response = await fetchApi(\"/api/users/update_last_seen\", \"POST\");\n if (response.ok) {\n console.log(\"Last seen updated\");\n } else {\n console.log(\"Error updating last seen\");\n }\n } catch (error) {\n console.error(\"Error during updateLastSeen:\", error);\n }\n};\n\nconst UserProvider = ({ children, allowUnauthenticated = false }) => {\n const { setUser, setUpdateInterval, clearUpdateInterval } = useUserStore();\n\n // Use TanStack Query to fetch the user data\n const { data, error, isLoading, isSuccess, isFetching } = useQuery({\n queryKey: [\"user\"],\n queryFn: () => fetchUser(setUser),\n staleTime: 1000 * 60 * 60 * 24,\n cacheTime: 1000 * 60 * 60 * 24,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n retryOnMount: false,\n retry: allowUnauthenticated ? false : 3,\n });\n\n // Set up the interval to update \"last seen\"\n useEffect(() => {\n if (!isFetching && isSuccess && data) {\n // Check for successful data fetch\n setUser(data); // Store the fetched user in Zustand\n setUpdateInterval(updateLastSeen);\n }\n }, [isFetching, isSuccess, data, setUser, setUpdateInterval]);\n\n // Clean up interval on unmount\n useEffect(() => {\n return () => clearUpdateInterval();\n }, [clearUpdateInterval]);\n\n if (isLoading || isFetching)\n return (\n \n );\n \n if (error && !allowUnauthenticated) {\n return

    Error fetching user: {error.message}

    ;\n }\n\n return <>{children};\n};\n\nexport default UserProvider;","import React, { useState, useEffect } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport { IconArrowRight } from \"@tabler/icons-react\";\n\nconst JoinWaitlistForm = () => {\n const [formData, setFormData] = useState({\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n linkedin: \"\",\n phone: \"\",\n cv: null, // For file upload\n });\n\n const [notification, setNotification] = useState(\"\");\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isSubmitted, setIsSubmitted] = useState(false);\n\n const handleChange = (e) => {\n const { name, value, type, files } = e.target;\n setFormData((prevData) => ({\n ...prevData,\n [name]: type === \"file\" ? files[0] : value,\n }));\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n\n const formDataToSend = new FormData();\n for (const [key, value] of Object.entries(formData)) {\n formDataToSend.append(`join_waitlist[${key}]`, value);\n }\n\n try {\n const response = await fetchApi(\n \"/join_waitlist\",\n \"POST\",\n formDataToSend,\n {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n }\n );\n\n const data = await response.json();\n\n if (response.ok) {\n setNotification(\n
    \n

    {data.message}

    \n

    \n While you wait, feel free to connect with us on social media or\n check out some useful links.\n

    \n
    \n \n \n
    \n
    \n );\n setFormData({\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n linkedin: \"\",\n phone: \"\",\n cv: null,\n });\n setIsSubmitted(true);\n } else {\n setNotification(\n
    \n

    \n {data.message ||\n \"There was an error submitting the form. Please try again.\"}\n

    \n
    \n );\n }\n } catch (error) {\n setNotification(\n
    \n

    \n An error occurred. Please try again later.\n

    \n
    \n );\n }\n };\n\n const openModal = () => {\n setIsModalOpen(true);\n };\n\n const closeModal = () => {\n setIsModalOpen(false);\n setIsSubmitted(false);\n setNotification(\"\");\n };\n\n return (\n <>\n \n Join the waitlist\n \n \n\n {isModalOpen && (\n {\n if (e.target.id === \"formModal\") closeModal();\n }}\n >\n
    \n
    \n \n {isSubmitted ? (\n
    {notification}
    \n ) : (\n <>\n {notification && !isSubmitted && (\n
    {notification}
    \n )}\n
    \n

    \n Join the Waitlist\n

    \n
    \n
    \n {/* First Name Input */}\n
    \n \n \n
    \n\n {/* Last Name Input */}\n
    \n \n \n
    \n
    \n\n {/* Email Address Input */}\n
    \n \n \n
    \n\n {/* LinkedIn Profile Input */}\n
    \n \n \n
    \n\n {/* Phone Number Input */}\n
    \n \n \n
    \n\n {/* CV Upload Input */}\n
    \n \n \n
    \n\n {/* Submit Button */}\n
    \n \n Submit\n \n
    \n \n )}\n \n
    \n
    \n \n )}\n \n );\n};\n\nexport default JoinWaitlistForm;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst StyledFeatureButton = styled.button`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 5px 15px;\n border: 1px solid var(--color-button-accent);\n border-radius: 4px;\n color: var(--color-button-accent);\n font-weight: var(--font-weight-body-1);\n cursor: pointer;\n text-align: center;\n width: ${({ fullwidth }) => (fullwidth === \"true\" ? \"100%\" : \"unset\")};\n\n &:hover {\n background-color: var(--color-button-accent);\n color: var(--color-container-card-default);\n }\n`;\n\nconst PlusSpan = styled.span`\n margin-left: 8px;\n`;\n\nconst FeatureButton = ({ buttonText, action, hidePlus, fullwidth }) => {\n return (\n \n {buttonText} {!hidePlus && +}\n \n );\n};\n\nexport default FeatureButton;\n","import { Loader, MantineProvider, Tabs } from \"@mantine/core\";\nimport React, { useState } from \"react\";\nimport TagsInput from \"./TagsInput\";\nimport fetchApi from \"./api\";\n\nexport default function EmailForwarding() {\n const [selectedEmails, setSelectedEmails] = useState([]);\n const [selectedInstitutions, setSelectedInstitutions] = useState([]);\n const [loading, setLoading] = useState(false);\n const [activeTab, setActiveTab] = useState(\"institution-invite\");\n const [formData, setFormData] = useState({\n subject: \"\",\n salutation: \"\",\n });\n\n // Handle input changes\n const handleChange = (e) => {\n const { name, value } = e.target;\n setFormData((prevData) => ({\n ...prevData,\n [name]: value,\n }));\n };\n\n // Handle multi-select for emails\n const handleMultiSelectEmails = (selected) => {\n setSelectedEmails(selected);\n // Reset institutions if emails change\n setSelectedInstitutions(new Array(selected.length).fill(\"\"));\n };\n\n // Handle multi-select for institutions\n const handleMultiSelectInstitutions = (index, value) => {\n const updatedInstitutions = [...selectedInstitutions];\n updatedInstitutions[index] = value;\n setSelectedInstitutions(updatedInstitutions);\n };\n\n // Handle form submission\n const handleSubmit = async (e) => {\n e.preventDefault();\n\n // Validate all required fields\n if (\n !formData.subject ||\n !formData.salutation ||\n selectedEmails.length === 0 ||\n selectedInstitutions.length !== selectedEmails.length ||\n selectedInstitutions.some((inst) => !inst.trim())\n ) {\n alert(\n \"Please ensure all emails have a corresponding institution name. All fields are required.\"\n );\n return;\n }\n\n setLoading(true);\n\n try {\n const response = await fetchApi(\"/emails_forwarding\", \"POST\", {\n email_type: activeTab,\n recipient_email: selectedEmails,\n institutions: selectedInstitutions,\n subject: formData.subject,\n salutation: formData.salutation,\n });\n\n if (response.ok) {\n setLoading(false);\n alert(\"Email sent successfully!\");\n // Reset form\n setFormData({\n subject: \"\",\n salutation: \"\",\n });\n setSelectedEmails([]);\n setSelectedInstitutions([]);\n } else {\n const errorData = await response.json();\n alert(`Error sending email: ${errorData.error}`);\n }\n } catch (error) {\n console.error(\"Error sending email:\", error);\n alert(\"An error occurred while sending the email.\");\n }\n };\n\n return (\n ({\n input: {\n height: \"30px\",\n fontSize: \"12px\",\n },\n }),\n },\n PasswordInput: {\n defaultProps: { size: \"md\" },\n styles: () => ({\n input: {\n height: \"30px\",\n fontSize: \"12px\",\n },\n }),\n },\n },\n }}\n >\n setActiveTab(value)}\n >\n \n Institution Invite\n Email 2\n \n\n \n
    \n
    \n

    \n Institution Invitation Form\n

    \n
    \n\n {/* Email Recipients */}\n
    \n \n \n

    \n Type, press Enter to save and to add more emails.\n

    \n
    \n\n
    \n {/* Institution Names Corresponding to Emails */}\n {selectedEmails.map((email, index) => (\n
    \n \n \n handleMultiSelectInstitutions(index, e.target.value)\n }\n required\n className=\"bg-white border border-gray-400 rounded-lg text-gray-900 font-normal h-16 leading-[1.5] px-3 py-2 focus:outline-none w-full\"\n placeholder=\"Enter institution name\"\n />\n
    \n ))}\n
    \n {/* Email Subject */}\n
    \n \n \n
    \n\n {/* Salutation */}\n
    \n \n \n

    \n E.g., Dear Bob - Remember to use a generic salutation for\n multiple users. Avoid commas.\n

    \n
    \n\n {/* Submit Button */}\n
    \n {loading ? (\n \n ) : (\n \n Send Email\n \n )}\n
    \n
    \n
    \n\n \n
    Not yet added
    \n
    \n \n \n );\n}\n","import {\n UnstyledButton,\n Menu,\n Image,\n rem,\n Button,\n Group,\n Stack,\n createStyles,\n Paper,\n Tabs,\n Title,\n Center,\n Text,\n PasswordInput,\n TextInput,\n} from \"@mantine/core\";\nimport {\n IconLanguage,\n IconPassword,\n IconUser,\n IconChevronDown,\n} from \"@tabler/icons-react\";\nimport React, { useState } from \"react\";\nimport UpdatePasswordForm from \"../../Authentication/UpdatePasswordForm\";\nimport { useForm } from \"@mantine/form\";\nimport fetchApi from \"../../Lib/api\";\nimport Notification from \"../../Lib/Notification\";\n\nimport LanguageDropdown from \"../../Lib/Language\";\nconst data = [\n { label: \"English\" },\n { label: \"German\" },\n { label: \"Italian\" },\n { label: \"French\" },\n { label: \"Polish\" },\n];\n\nconst useStyles = createStyles((theme) => ({\n control: {\n width: rem(200),\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: [theme.spacing.xs, theme.spacing.md],\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n transition: \"background-color 150ms ease\",\n backgroundColor: theme.colors.gray[0],\n \"&[data-expanded]\": {\n backgroundColor: theme.colors.gray[0],\n },\n \"&:hover\": {\n backgroundColor: theme.colors.gray[0],\n },\n },\n label: {\n fontWeight: 600,\n fontSize: theme.fontSizes.sm,\n color: theme.colors.gray[6],\n marginRight: theme.spacing.md,\n },\n icon: {\n transition: \"transform 150ms ease\",\n transform: \"rotate(0deg)\",\n \"[data-expanded] &\": {\n transform: \"rotate(180deg)\",\n },\n },\n}));\n\nexport function DropDownSelect({}) {\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState(data[0]);\n const { classes, cx } = useStyles();\n const items = data.map((item) => (\n }\n onClick={() => setSelected(item)}\n key={item.label}\n >\n {item.label}\n \n ));\n\n return (\n setOpened(true)}\n onClose={() => setOpened(false)}\n radius=\"md\"\n width=\"target\"\n withinPortal\n >\n \n \n \n {/* */}\n {selected.label}\n \n \n \n \n {items}\n \n );\n}\n\nexport function ChangeEmail() {\n const [notification, setNotification] = useState(null);\n const form = useForm({\n initialValues: {\n email: \"\",\n password: \"\",\n },\n validate: {\n password: (val) =>\n val.length >= 6\n ? null\n : \"Password should include at least 6 characters\",\n email: (val) => (/^\\S+@\\S+$/.test(val) ? null : \"Invalid email\"),\n },\n });\n\n const handleSubmit = async (e) => {\n try {\n const response = await fetchApi(\"/api/users/update_email\", \"PUT\", {\n user: { password: form.values.password, email: form.values.email },\n });\n\n if (response.ok) {\n const msg = (await response.json()).message;\n setNotification({ type: \"success\", content: msg });\n console.log(\"Email change successful!\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Email change failed.\");\n }\n } catch (error) {\n console.error(\"Error during email change:\", error);\n }\n };\n\n return (\n handleSubmit())}\n className=\"mx-auto lg:w-2/5 lg:mt-5\"\n >\n \n {notification && }\n \n form.setFieldValue(\"email\", event.currentTarget.value)\n }\n error={form.errors.email}\n radius=\"md\"\n size=\"md\"\n />\n \n form.setFieldValue(\"password\", event.currentTarget.value)\n }\n error={form.errors.password}\n radius=\"md\"\n size=\"md\"\n />\n
    \n \n Change Email\n \n
    \n
    \n \n );\n}\n\nfunction DeleteAccount() {\n const [notification, setNotification] = useState(null);\n const form = useForm({\n initialValues: {\n password: \"\",\n },\n validate: {\n password: (val) =>\n val.length >= 6\n ? null\n : \"Password should include at least 6 characters\",\n },\n });\n const handleSubmit = async (e) => {\n try {\n const response = await fetchApi(\"/api/users/delete_account\", \"DELETE\", {\n user: { password: form.values.password },\n });\n\n if (response.ok) {\n const msg = (await response.json()).message;\n setNotification({ type: \"success\", content: msg });\n window.location.href = \"/\";\n console.log(\"Account Deleted successful!\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Account Deletion failed.\");\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n return (\n handleSubmit())}\n className=\"mx-auto lg:w-2/5 lg:mt-5\"\n >\n \n \n Once you delete an account, there is no going back. Please be certain.\n \n \n \n form.setFieldValue(\"password\", event.currentTarget.value)\n }\n error={form.errors.password}\n radius=\"md\"\n size=\"md\"\n className=\"w-full\"\n />\n \n Delete this account\n \n \n \n \n );\n}\n\nexport default function Settings() {\n const [firstTab, setFirstTab] = useState(\"password\");\n return (\n
    \n
    \n \n \n }>\n Password\n \n }>\n Language\n \n }>\n Account\n \n \n\n \n \n \n Password Change\n \n \n \n \n \n \n \n \n \n Language\n \n \n
    \n \n \n Select a language of your choice\n \n \n \n
    \n
    \n
    \n
    \n \n \n \n Change your email\n \n \n \n \n \n Delete Account\n \n \n \n \n \n \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport { Routes, Route } from \"react-router-dom\";\nimport Layout from \"../Lib/Layout\";\nimport UserProvider from \"../Lib/UserContext\";\nimport QueryProvider from \"../Lib/QueryClientProvider\";\nimport UserProfileContainer from \"../Profile/UserProfile\";\n\nexport default function UserProfilePage() {\n return (\n \n \n \n \n } />\n \n \n \n \n );\n}\n","import React, { memo, useContext, useEffect, useState } from \"react\";\n\nimport fetchApi from \"../../Lib/api\";\nimport { useParams } from \"react-router-dom\";\nimport {\n Alert,\n Avatar,\n Button,\n Collapse,\n Grid,\n Group,\n Skeleton,\n} from \"@mantine/core\";\nimport { IconAlertCircle, IconMessage } from \"@tabler/icons-react\";\nimport { TopicListItem } from \"./TopicsList\";\nimport HeaderAndSidebar from \"../../Lib/HeaderAndSidebar\";\nimport Markdown from \"../../Lib/Markdown\";\nimport moment from \"moment\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport { CreateTopic } from \"../../Dashbaord/DashboardPages/Forums/Topics\";\nimport useUserStore from \"../../../stores/userStore\";\n\nconst MemoTopics = memo(Posts);\n\nexport default function postsContainer({ project }) {\n return (\n }>\n \n \n );\n}\n\nfunction Posts() {\n const { channel_type, post } = useParams();\n const [topic, setTopic] = useState(null);\n const [posts, setPosts] = useState([]);\n const [replyContent, setReplyContent] = useState(\"\");\n const [channelName, setChannelName] = useState(\"\");\n\n const { user } = useUserStore((state) => state.user);\n\n useEffect(() => {\n // Parse query parameters from the location object\n const searchParams = new URLSearchParams(location.search);\n const param1 = searchParams.get(\"channel\");\n setChannelName(param1);\n\n // Use param1 and param2 as needed...\n }, []);\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetchApi(`/hub/${channel_type}/${post}`, \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n setTopic(res.topic);\n setPosts(res.posts);\n console.log(res.posts);\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n fetchData(); // Call the async function immediately\n }, []);\n\n const handleReply = async (postId) => {\n try {\n const response = await fetchApi(`/hub/${channel_type}/${post}`, \"POST\", {\n post: { content: replyContent },\n });\n\n if (response.ok) {\n const res = await response.json();\n setPosts((p) => [\n ...p,\n { ...res, first_unread_in_page: false, first_in_page: false },\n ]);\n console.log(res);\n\n setReplyContent(\"\");\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n const handleDeletePost = async (id) => {\n try {\n const response = await fetchApi(\n `/hub/${channel_type}/${topic.slug}/${id}`,\n \"DELETE\"\n );\n\n if (response.status === 204) {\n setPosts((prev) => prev.filter((p) => p.post.id !== id));\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n };\n\n const handleEditPost = async (id, content, toggle) => {\n try {\n const response = await fetchApi(\n `/hub/${channel_type}/${topic.slug}/${id}`,\n \"PATCH\",\n { post: { content } }\n );\n\n if (response.ok) {\n // window.location.href = \"/dashboard/#/forums\";\n setPosts((prev) =>\n prev.map((p) =>\n p.post.id == id\n ? { ...p, post: { ...p.post, content: content } }\n : p\n )\n );\n toggle();\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n };\n if (!topic) return <>;\n\n return (\n
    \n
    \n \n
  • \n \n Channels\n \n \n \n \n
  • \n
  • \n \n {channelName}\n \n \n \n \n
  • \n
  • \n {channel_type.replaceAll(\"-\", \" \")}\n \n \n \n
  • \n \n {post.replaceAll(\"-\", \" \")}\n \n \n\n \n \n \n
    \n {posts.map((post) => (\n \n ))}\n
    \n {user.thredded_user_detail.moderation_state === \"approved\" ||\n user.admin ? (\n
    \n
    \n {\n setReplyContent(e);\n }}\n />\n
    \n handleReply(null)}\n variant=\"default\"\n fullWidth\n className=\"w-fit\"\n leftIcon={}\n >\n Post reply\n \n
    \n ) : (\n } color=\"indigo\">\n You are not allowed to create a new post. Please contact the\n administrator.\n \n )}\n
    \n \n \n Lorem ipsum dolor sit amet...\n \n \n
    \n
    \n
    \n );\n}\n\nconst Post = ({\n user_id,\n is_admin,\n post,\n handleDeletePost,\n handleEditPost,\n}) => {\n const [opened, { toggle, open }] = useDisclosure(false);\n const [content, setContent] = useState(post.post.content);\n return (\n
    \n
    \n
    \n \n
    \n

    \n {post.post.user.first_name} {post.post.user.last_name}\n

    \n

    \n {moment(post.post.created_at).fromNow()}\n

    \n
    \n
    \n\n
    \n \n\n {(user_id == post.post.user_id || is_admin) && (\n <>\n \n ✏️ Edit\n \n handleDeletePost(post.post.id)}\n className=\"text-blue-500 hover:text-blue-700 text-sm\"\n >\n 🗑 Delete\n \n \n )}\n
    \n
    \n {opened ? (\n <>\n {\n setContent(e);\n }}\n />\n handleEditPost(post.post.id, content, toggle)}\n variant=\"default\"\n fullWidth\n className=\"w-fit\"\n disabled={!content}\n leftIcon={}\n >\n Edit Content\n \n \n ) : (\n \n )}\n
    \n );\n};\n\nconst Topic = ({ topic, follow, channel_type }) => {\n const [opened, { toggle, open }] = useDisclosure(false);\n const [following, setFollowing] = useState(!!follow);\n const [title, setTitle] = useState(topic.title);\n const { user } = useUserStore((state) => state.user);\n\n const handleFollow = async () => {\n try {\n const response = await fetchApi(\n `/hub/${channel_type}/${topic.slug}/${follow ? \"unfollow\" : \"follow\"}`,\n \"POST\"\n );\n\n if (response.ok) {\n const res = await response.json();\n setFollowing(!following);\n console.log(res);\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n };\n\n const handleDelete = async () => {\n try {\n const response = await fetchApi(\n `/hub/${channel_type}/${topic.slug}`,\n \"DELETE\"\n );\n\n if (response.status === 204) {\n window.location.href = \"/dashboard/#/forums\";\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n };\n\n const handleEdit = (title) => {\n setTitle(title);\n close();\n };\n\n return (\n <>\n
    \n

    {title}

    \n
    \n

    \n Started by:{\" \"}\n \n {topic.user.first_name} {topic.user.last_name}\n {\" \"}\n on {moment(topic.created_at).fromNow()}\n

    \n
    \n {(user.admin ||\n (topic.user_id === user.id &&\n user.thredded_user_detail.moderation_state === \"approved\")) && (\n <>\n \n ✏️ Edit Topic\n \n \n 🗑 Delete Topic\n \n \n )}\n \n {following ? \"🔕 Stop following\" : \"🔔 Follow this topic\"}\n \n
    \n
    \n\n {opened && (\n \n )}\n
    \n \n );\n};\n","// app/javascript/stores/userStore.js\nimport { create } from 'zustand';\n\nconst useUserStore = create((set, get) => ({\n user: null,\n selectedUser: null,\n intervalIdRef: null,\n\n // Function to update specific fields in the user object\n setUser: (updatedFields) => {\n const currentUser = get().user;\n set({\n user: { ...currentUser, ...updatedFields },\n });\n },\n\n setSelectedUser: (selectedUser) => set({ selectedUser }),\n\n // Set up the interval for updating the \"last seen\" time\n setUpdateInterval: (updateLastSeen) => {\n const { intervalIdRef } = get();\n\n // Ensure there's no duplicate interval\n if (intervalIdRef) return;\n\n const intervalId = setInterval(() => {\n updateLastSeen();\n }, 10 * 60 * 1000); // 10 minutes\n\n set({ intervalIdRef: intervalId });\n },\n\n // Clear the interval when no longer needed\n clearUpdateInterval: () => {\n const { intervalIdRef } = get();\n if (intervalIdRef) {\n clearInterval(intervalIdRef);\n set({ intervalIdRef: null });\n }\n },\n}));\n\nexport default useUserStore;\n","// import {\n// ActionIcon,\n// Anchor,\n// Button,\n// Group,\n// HoverCard,\n// Menu,\n// Text,\n// TextInput,\n// rem,\n// } from \"@mantine/core\";\n\n// import { IconInfoCircle, IconTrash } from \"@tabler/icons-react\";\n// import React, { useEffect, useMemo, useState, useCallback } from \"react\";\n// import fetchApi from \"../Lib/api\";\n// import { IconPencil } from \"@tabler/icons-react\";\n// import { IconCheck } from \"@tabler/icons-react\";\n// import moment from \"moment\";\n// import roadmapIcon from \"../../stories/assets/roadmap-icon.svg\";\n// import styled from \"styled-components\";\n// import Calendar from \"react-calendar\";\n// import useStartupStore from \"../../stores/startupStore\";\n\n// const RoadmapItem = styled.li`\n// display: flex;\n// align-items: flex-start;\n// justify-content: space-between;\n// transition: all 0.3s ease;\n// padding-right: 4px;\n// position: relative;\n\n// &:hover {\n// background-color: #f0f0f0;\n// }\n\n// &:hover .icon-pencil {\n// visibility: visible;\n// }\n// `;\n\n// const IconPencilStyled = styled(IconPencil)`\n// visibility: hidden; // Initially hidden\n// cursor: pointer;\n// width: 15px;\n// height: 15px;\n// transition: visibility 0.3s ease;\n// `;\n\n// const RoadmapIcon = styled.img`\n// width: 24px;\n// height: 24px;\n// background-color: var(--color-button-accent);\n// padding: 5px;\n// border-radius: 4px;\n// margin-top: 4px;\n// `;\n\n// const RoadmapInfo = styled.div`\n// margin-left: 4px;\n// white-space: nowrap;\n\n// ${(props) =>\n// props.collapsed &&\n// `\n// display: none;\n// `}\n// `;\n\n// const RoadmapName = styled.span`\n// cursor: pointer;\n// font-weight: var(--font-weight-h3);\n// font-size: 13px;\n// color: var(--color-background-card);\n// `;\n\n// const RoadmapDate = styled.span`\n// color: var(--color-background-main);\n// font-size: var(--font-size-body-1);\n// `;\n\n// function PremiumAlert() {\n// return (\n// \n// \n// \n// \n// \n// \n// These field is only available to premium members.{\" \"}\n// visit here for more information.\n// \n// \n// \n// );\n// }\n\n// const CategoryDate = ({ start_date, cId, member }) => {\n// const [opened, setOpened] = useState(false);\n// const [date, setDate] = useState(start_date);\n// const [newStartDate, setNewStartDate] = useState(null);\n// const [newEndDate, setNewEndDate] = useState(null);\n// const [step, setStep] = useState(1); // Step to control calendar view (1: Start date, 2: End date)\n\n// const handleUpdate = async () => {\n// try {\n// const response = await fetchApi(\n// `/categories/update_dates/${cId}`,\n// \"PATCH\",\n// { category: { start_date: newStartDate, end_date: newEndDate } }\n// );\n// if (response.ok) {\n// setDate(newStartDate); // Update the displayed date\n// } else {\n// const msg = (await response.json()).error;\n// console.error(msg);\n// }\n// } catch (error) {\n// console.error(\"Error during date change:\", error);\n// }\n// };\n\n// return (\n//
    \n// {moment(start_date).format(\"MMM Do, YYYY\")}\n// {member && (\n// \n// \n// \n// \n// \n// {step === 1 && (\n// <>\n//

    Start date

    \n// \n// setStep(2)} // Move to the next calendar (end date)\n// >\n// Next\n// \n// \n// )}\n// {step === 2 && (\n// <>\n//

    End date

    \n// \n// {\n// handleUpdate();\n// setOpened(false); // Close the menu after update\n// setStep(1); // Reset to the first step\n// }}\n// >\n// Update\n// \n// \n// )}\n//
    \n// \n// )}\n//
    \n// );\n// };\n\n// export function CategoryWithSubcategories({\n// category,\n// index,\n// setSelectedPrograms,\n// owner,\n// member,\n// enableEdit,\n// setCategory,\n// isCollapsed,\n// }) {\n// const [showSubcategories, setShowSubcategories] = useState(false);\n// const [switchToEdit, setSwitchToEdit] = useState(false);\n// const [categoryName, setCategoryName] = useState(category.name);\n// const [newSubcategoryNames, setNewSubcategoryNames] = useState([]);\n// const [subcategoriesToDelete, setSubcategoriesToDelete] = useState([]);\n// const [subcategoryNames, setSubcategoryNames] = useState([]);\n\n// const { setEditorState } = useStartupStore((state) => ({\n// setEditorState: state.setEditorState,\n// }));\n\n// useEffect(() => {\n// // setEditorState();\n// }, []);\n\n// useEffect(() => {\n// setSubcategoryNames(\n// category.sub_categories.map((s) => ({\n// name: s.name,\n// response: s.response,\n// id: s.id,\n// privacy: s.privacy,\n// is_active: s.is_active,\n// is_editable: s.is_editable,\n// }))\n// );\n// }, [category]);\n\n// const handleAddNewField = () => {\n// setNewSubcategoryNames((prevNewSubcategoryNames) => [\n// ...prevNewSubcategoryNames,\n// \"\",\n// ]);\n// };\n\n// const handleRemoveNewField = (indexToRemove) => {\n// setNewSubcategoryNames((prevNewSubcategoryNames) =>\n// prevNewSubcategoryNames.filter((_, index) => index !== indexToRemove)\n// );\n// };\n\n// const toggleSubcategories = () => {\n// setSwitchToEdit(false);\n// setShowSubcategories(!showSubcategories);\n// };\n\n// const handleSwitchingToEdit = () => {\n// setShowSubcategories(true);\n// setSwitchToEdit(!switchToEdit);\n// };\n\n// const handleCategoryNameChange = (event) => {\n// console.log(event.target.value);\n// setCategoryName(event.target.value);\n// };\n\n// const handleSubcategoryNameChange = useCallback(\n// (index, event) => {\n// console.log(index);\n// setSubcategoryNames((prevSubcategoryNames) => {\n// const newSubcategoryNames = [...prevSubcategoryNames];\n// newSubcategoryNames[index] = {\n// ...newSubcategoryNames[index],\n// name: event.target.value,\n// };\n// return newSubcategoryNames;\n// });\n// },\n// [subcategoryNames]\n// );\n\n// const handleNewSubcategoryNameChange = useCallback(\n// (index, event) => {\n// setNewSubcategoryNames((prevNewSubcategoryNames) => {\n// const newSubcategoryNames = [...prevNewSubcategoryNames];\n// newSubcategoryNames[index] = event.target.value;\n// return newSubcategoryNames;\n// });\n// },\n// [newSubcategoryNames]\n// );\n\n// const handleSubcategoryDelete = useCallback(\n// (index) => {\n// setSubcategoriesToDelete((prevSubcategoriesToDelete) => [\n// ...prevSubcategoriesToDelete,\n// subcategoryNames[index].id,\n// ]);\n\n// console.log(subcategoriesToDelete);\n\n// setSubcategoryNames((prevSubcategoryNames) =>\n// prevSubcategoryNames.filter((_, idx) => idx !== index)\n// );\n// },\n// [subcategoryNames, setSubcategoriesToDelete, setSubcategoryNames]\n// );\n\n// const handleUpdate = async () => {\n// const updatedData = {\n// category: {\n// name: categoryName,\n// sub_categories_attributes: subcategoryNames.map(\n// ({ is_active, is_editable, ...rest }) => ({\n// ...rest,\n// })\n// ),\n// new_sub_categories_attributes: newSubcategoryNames\n// .filter((name) => name.trim() !== \"\")\n// .map((name) => ({\n// name,\n// })),\n// deleted_sub_category_ids: subcategoriesToDelete,\n// },\n// };\n\n// try {\n// const response = await fetchApi(\n// `/categories/update_names/${category.id}`,\n// \"PATCH\",\n// updatedData\n// );\n\n// if (response.ok) {\n// const res = await response.json();\n// setSwitchToEdit(false);\n// const updatedCategory = res.category;\n// setCategory(updatedCategory);\n// setNewSubcategoryNames([]);\n// console.log(res);\n// } else {\n// const msg = (await response.json()).error;\n// // setNotification({ type: \"failure\", content: msg });\n// console.error(msg);\n// }\n// } catch (error) {\n// console.error(\"Error during password change:\", error);\n// } finally {\n// setShowSubcategories(false);\n// }\n// };\n\n// const timelineItems = useMemo(() => {\n// const items = [];\n\n// if (showSubcategories) {\n// subcategoryNames.forEach((subcategory, idx) => {\n// items.push(\n//
  • \n// {enableEdit && switchToEdit ? (\n// \n// handleSubcategoryNameChange(idx, event)}\n// />\n// handleSubcategoryDelete(idx)}\n// >\n// \n// \n// \n// ) : (\n// \n// setSelectedPrograms((p) => ({\n// ...p,\n// cid: index,\n// sid: idx,\n// switch: true,\n// }))\n// }\n// >\n// \n// {subcategory.name}\n// {!subcategory.is_active && }\n// \n//

    \n// )}\n//
  • \n// );\n// });\n\n// {\n// enableEdit && switchToEdit && (\n// <>\n// {newSubcategoryNames.forEach((name, index) => {\n// items.push(\n// \n// \n// handleNewSubcategoryNameChange(index, event)\n// }\n// />\n// handleRemoveNewField(index)}\n// >\n// \n// \n// \n// );\n// })}\n// \n// );\n// }\n\n// if (\n// enableEdit &&\n// switchToEdit &&\n// newSubcategoryNames.length + subcategoryNames.length < 5\n// )\n// items.push(\n// \n// Create new field\n// \n// );\n// }\n\n// return items;\n// }, [\n// newSubcategoryNames,\n// subcategoryNames,\n// category,\n// enableEdit,\n// showSubcategories,\n// switchToEdit,\n// ]);\n\n// return (\n// \n// \n// \n//
    \n// {!isCollapsed && (\n// \n// {enableEdit && switchToEdit ? (\n// \n// ) : (\n// <>\n// {\n// setSelectedPrograms({\n// cid: index,\n// sid: 0,\n// switch: true,\n// });\n// // setEditorState();\n// toggleSubcategories();\n// }}\n// >\n// {category.name}\n// \n// {category.start_date && (\n// \n// )}\n// \n// )}\n// \n// )}\n// {!isCollapsed &&
      {timelineItems}
    }\n//
    \n// \n// {!isCollapsed && enableEdit && (\n// <>\n// {switchToEdit ? (\n// \n// \n// \n// ) : (\n// \n// \n// \n// )}\n// \n// )}\n//
    \n// );\n// }\n\n\nimport {\n ActionIcon,\n Anchor,\n Button,\n Group,\n HoverCard,\n Menu,\n Text,\n TextInput,\n Drawer,\n rem,\n} from \"@mantine/core\";\nimport { IconInfoCircle, IconTrash, IconPencil, IconCheck } from \"@tabler/icons-react\";\nimport React, { useEffect, useMemo, useState, useCallback } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport moment from \"moment\";\nimport roadmapIcon from \"../../stories/assets/roadmap-icon.svg\";\nimport styled from \"styled-components\";\nimport useStartupStore from \"../../stores/startupStore\";\nimport { DatePicker } from \"@mantine/dates\";\n\n// Styled components (unchanged)\nconst RoadmapItem = styled.li`\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n transition: all 0.3s ease;\n padding-right: 4px;\n position: relative;\n\n &:hover {\n background-color: #f0f0f0;\n }\n\n &:hover .icon-pencil {\n visibility: visible;\n }\n`;\n\nconst IconPencilStyled = styled(IconPencil)`\n visibility: hidden;\n cursor: pointer;\n width: 15px;\n height: 15px;\n transition: visibility 0.3s ease;\n`;\n\nconst RoadmapIcon = styled.img`\n width: 24px;\n height: 24px;\n background-color: var(--color-button-accent);\n padding: 5px;\n border-radius: 4px;\n margin-top: 4px;\n`;\n\nconst RoadmapInfo = styled.div`\n margin-left: 4px;\n white-space: nowrap;\n\n ${(props) =>\n props.collapsed &&\n `\n display: none;\n `}\n`;\n\nconst RoadmapName = styled.span`\n cursor: pointer;\n font-weight: var(--font-weight-h3);\n font-size: 13px;\n color: var(--color-background-card);\n`;\n\nconst RoadmapDate = styled.span`\n color: var(--color-background-main);\n font-size: var(--font-size-body-1);\n`;\n\n// PremiumAlert component (unchanged)\nfunction PremiumAlert() {\n return (\n \n \n \n \n \n \n These field is only available to premium members.{\" \"}\n visit here for more information.\n \n \n \n );\n}\n\n// Main component with Drawer for editing subcategories and dates\nexport function CategoryWithSubcategories({\n category,\n index,\n setSelectedPrograms,\n owner,\n member,\n enableEdit,\n setCategory,\n isCollapsed,\n}) {\n const [showSubcategories, setShowSubcategories] = useState(false);\n const [categoryName, setCategoryName] = useState(category.name);\n const [newSubcategoryNames, setNewSubcategoryNames] = useState([]);\n const [subcategoriesToDelete, setSubcategoriesToDelete] = useState([]);\n const [subcategoryNames, setSubcategoryNames] = useState([]);\n const [drawerOpened, setDrawerOpened] = useState(false); // State for drawer\n\n // Date-related state\n const [newStartDate, setNewStartDate] = useState(category.start_date ? new Date(category.start_date) : null);\n const [newEndDate, setNewEndDate] = useState(category.end_date ? new Date(category.end_date) : null);\n const [dateStep, setDateStep] = useState(1); \n\n const { setEditorState } = useStartupStore((state) => ({\n setEditorState: state.setEditorState,\n }));\n\n useEffect(() => {\n setSubcategoryNames(\n category.sub_categories.map((s) => ({\n name: s.name,\n response: s.response,\n id: s.id,\n privacy: s.privacy,\n is_active: s.is_active,\n is_editable: s.is_editable,\n }))\n );\n }, [category]);\n\n const handleAddNewField = () => {\n setNewSubcategoryNames((prev) => [...prev, \"\"]);\n };\n\n const handleRemoveNewField = (indexToRemove) => {\n setNewSubcategoryNames((prev) => prev.filter((_, index) => index !== indexToRemove));\n };\n\n const toggleSubcategories = () => {\n setShowSubcategories(!showSubcategories);\n };\n\n const handleCategoryNameChange = (event) => {\n setCategoryName(event.target.value);\n };\n\n const handleSubcategoryNameChange = useCallback(\n (index, event) => {\n setSubcategoryNames((prev) => {\n const newSubcategoryNames = [...prev];\n newSubcategoryNames[index] = {\n ...newSubcategoryNames[index],\n name: event.target.value,\n };\n return newSubcategoryNames;\n });\n },\n [subcategoryNames]\n );\n\n const handleSubcategoryDelete = useCallback(\n (index) => {\n setSubcategoriesToDelete((prev) => [...prev, subcategoryNames[index].id]);\n setSubcategoryNames((prev) => prev.filter((_, idx) => idx !== index));\n },\n [subcategoryNames]\n );\n\n const handleUpdateDates = async () => {\n try {\n const response = await fetchApi(\n `/categories/update_dates/${category.id}`,\n \"PATCH\",\n { category: { start_date: newStartDate, end_date: newEndDate } }\n );\n if (response.ok) {\n const res = await response.json();\n setCategory(res.category); // Update the category with new dates\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during date change:\", error);\n }\n };\n\n const handleUpdate = async () => {\n const updatedData = {\n category: {\n name: categoryName,\n sub_categories_attributes: subcategoryNames.map(({ is_active, is_editable, ...rest }) => ({\n ...rest,\n })),\n new_sub_categories_attributes: newSubcategoryNames\n .filter((name) => name.trim() !== \"\")\n .map((name) => ({\n name,\n })),\n deleted_sub_category_ids: subcategoriesToDelete,\n },\n };\n\n try {\n const response = await fetchApi(\n `/categories/update_names/${category.id}`,\n \"PATCH\",\n updatedData\n );\n\n if (response.ok) {\n const res = await response.json();\n setCategory(res.category);\n setNewSubcategoryNames([]);\n setDrawerOpened(false); // Close drawer after update\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during update:\", error);\n }\n };\n\n // Render subcategories list in the main component\n const renderSubcategories = () => {\n return subcategoryNames.map((subcategory, idx) => (\n
  • \n \n setSelectedPrograms((p) => ({\n ...p,\n cid: index,\n sid: idx,\n switch: true,\n }))\n }\n >\n \n {subcategory.name}\n {!subcategory.is_active && }\n \n

    \n
  • \n ));\n };\n\n return (\n \n \n \n
    \n {!isCollapsed && (\n \n {\n setSelectedPrograms({\n cid: index,\n sid: 0,\n switch: true,\n });\n toggleSubcategories();\n }}\n >\n {category.name}\n \n {category.start_date && (\n \n {moment(category.start_date).format(\"MMM Do, YYYY\")}\n \n )}\n \n )}\n {!isCollapsed && showSubcategories &&
      {renderSubcategories()}
    }\n
    \n \n {!isCollapsed && enableEdit && (\n setDrawerOpened(true)} // Open drawer on click\n mt={10}\n >\n \n \n )}\n\n {/* Drawer for editing subcategories and dates */}\n setDrawerOpened(false)}\n title=\"Edit Category\"\n position=\"right\"\n size=\"md\"\n >\n {/* Category Name */}\n \n\n {/* Date Picker */}\n {dateStep === 1 ? (\n <>\n \n Start Date\n \n \n setDateStep(2)} // Move to end date selection\n disabled={!newStartDate}\n >\n Next: End Date\n \n \n ) : (\n <>\n \n End Date\n \n \n {\n handleUpdateDates(); // Update dates\n setDateStep(1); // Reset to start date\n }}\n disabled={!newEndDate}\n >\n Save Dates\n \n \n )}\n\n {/* Subcategories */}\n \n Subcategories\n \n {subcategoryNames.map((subcategory, idx) => (\n
    \n handleSubcategoryNameChange(idx, event)}\n style={{ flex: 1 }}\n />\n handleSubcategoryDelete(idx)}\n variant=\"outline\"\n color=\"red\"\n >\n \n \n
    \n ))}\n {newSubcategoryNames.map((name, index) => (\n
    \n {\n const newNames = [...newSubcategoryNames];\n newNames[index] = event.target.value;\n setNewSubcategoryNames(newNames);\n }}\n style={{ flex: 1 }}\n />\n handleRemoveNewField(index)}\n variant=\"outline\"\n color=\"red\"\n >\n \n \n
    \n ))}\n \n\n {/* Save Changes */}\n \n \n
    \n );\n}","import React, { useState, useEffect, useRef } from \"react\";\nimport { useForm } from \"@mantine/form\";\nimport { countriesData, industriesData } from \"../components/Onboarding/data\";\nimport fetchApi from \"../components/Lib/api\";\nimport { cleanText } from \"../components/Lib/profanityCleaner\";\nimport styled, { keyframes } from \"styled-components\";\nimport { DatePicker } from \"@mantine/dates\";\n\nconst morphRotate = keyframes`\n 0% {\n border-radius: 20%;\n transform: rotate(0deg);\n }\n 50% {\n border-radius: 50%;\n transform: rotate(180deg);\n }\n 100% {\n border-radius: 20%;\n transform: rotate(360deg);\n }\n`;\n\n// Styled component for the loader\nconst LoaderS = styled.div`\n width: 80px;\n height: 80px;\n background-color: var(--color-button-accent);\n margin: 0 auto;\n animation: ${morphRotate} 2s infinite;\n`;\n\n// Styled container for the loading screen\nconst Container = styled.div`\n text-align: center;\n padding: 2rem;\n`;\n\n// Styled component for the live update message\nconst Message = styled.p`\n margin-top: 1.5rem;\n`;\n\n// Base Styled Components\nconst FormContainer = styled.div`\n max-width: 1024px;\n margin: 0 auto;\n padding: 2rem;\n`;\n\nconst HeaderContainer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 2rem;\n`;\n\nconst HeaderContent = styled.div`\n flex: 1;\n`;\n\nconst Caption = styled.a`\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: #4338ca;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 1rem;\n`;\n\nconst Title = styled.h1`\n font-size: 32px;\n color: ${(props) => (props.darkMode ? \"white\" : \"#1E1B4B\")};\n margin: 0;\n margin-bottom: 0.75rem;\n font-weight: 600;\n`;\n\nconst Description = styled.p`\n color: ${(props) => (props.darkMode ? \"#666\" : \"#6B7280\")};\n font-size: 14px;\n margin: 0;\n margin-bottom: 2rem;\n`;\n\n// Form Fields Components (Step 2)\nconst FormGrid = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n margin-bottom: 2rem;\n`;\n\nconst FormField = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n`;\n\nconst Label = styled.label`\n font-size: 14px;\n color: ${(props) => (props.darkMode ? \"white\" : \"#1E1B4B\")};\n font-weight: 500;\n`;\n\nconst Input = styled.input`\n padding: 0.75rem;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n font-size: 14px;\n color: #6b7280;\n width: 100%;\n\n &::placeholder {\n color: #9ca3af;\n }\n`;\n\nconst StyledTextArea = styled.textarea`\n padding: 0.75rem;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n font-size: 14px;\n color: #6b7280;\n width: 100%;\n background: transparent;\n\n &::placeholder {\n color: #9ca3af;\n }\n`;\n\nconst Select = styled.select`\n padding: 0.75rem;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n font-size: 14px;\n color: #6b7280;\n width: 100%;\n background: white;\n appearance: none;\n background-image: url(\"path-to-your-chevron-down.svg\");\n background-repeat: no-repeat;\n background-position: right 1rem center;\n`;\n\n// Security Cards Components (Step 4)\nconst SecurityGrid = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 1rem;\n margin-bottom: 2rem;\n`;\n\nconst SecurityCard = styled.div`\n background: #f3f4f6;\n border: 1px solid ${(props) => (props.selected ? \"#4338CA\" : \"transparent\")};\n border-radius: 12px;\n padding: 1.5rem;\n cursor: pointer;\n transition: border-color 0.2s ease;\n\n &:hover {\n border-color: #4338ca;\n }\n`;\n\nconst CardHeader = styled.div`\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.75rem;\n\n img {\n width: 20px;\n height: 20px;\n }\n`;\n\nconst CardTitle = styled.h3`\n color: #1e1b4b;\n font-size: 16px;\n margin: 0;\n`;\n\nconst CardDescription = styled.p`\n font-size: 14px;\n margin: 0;\n line-height: 1.5;\n`;\n\n// Pricing Components (Step 5)\nconst Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 2rem;\n padding-top: 1rem;\n border-top: 1px solid ${(props) => (props.darkMode ? \"#333\" : \"#E5E7EB\")};\n`;\n\nconst StepCounter = styled.span`\n color: ${(props) => (props.darkMode ? \"#666\" : \"#6B7280\")};\n font-size: 14px;\n`;\n\nconst ButtonGroup = styled.div`\n display: flex;\n gap: 1rem;\n`;\n\nconst Button = styled.button`\n padding: 0.75rem 1.5rem;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n\n ${(props) =>\n props.variant === \"primary\"\n ? `\n background: #4338CA;\n color: white;\n border: none;\n \n &:hover {\n background: #3730A3;\n }\n `\n : `\n background: transparent;\n color: #4338CA;\n border: none;\n \n &:hover {\n background: #F8FAFC;\n }\n `}\n`;\n\nconst PricingContainer = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 2rem;\n align-items: start;\n`;\n\nconst EmailSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n`;\n\nconst CheckboxGroup = styled.label`\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n margin-top: 1rem;\n`;\n\nconst Checkbox = styled.input`\n cursor: pointer;\n`;\n\nconst CheckboxLabel = styled.span`\n color: #666;\n font-size: 14px;\n`;\nstyled.span`\n color: #666;\n font-size: 14px;\n`;\n\nconst HelperText = styled.p`\n color: #666;\n font-size: 14px;\n margin: 1rem 0;\n line-height: 1.5;\n`;\n\nexport const LoadingScreen = () => {\n const messages = [\n \"We are setting up your workspace...\",\n \"Your data is being optimized...\",\n \"Almost there...\",\n ];\n\n const [currentMessageIndex, setCurrentMessageIndex] = useState(0);\n\n useEffect(() => {\n const timer = setInterval(() => {\n setCurrentMessageIndex((prevIndex) =>\n prevIndex === messages.length - 1 ? 0 : prevIndex + 1\n );\n }, 30000);\n\n return () => clearInterval(timer);\n }, [messages.length]);\n\n return (\n \n \n {messages[currentMessageIndex]}\n \n );\n};\n\nconst MultiStepForm = () => {\n const [currentStep, setCurrentStep] = useState(1); // Start directly from step 1\n const [loading, setLoading] = useState(false);\n const [notification, setNotification] = useState(null);\n const [roadmapChunks, setRoadmapChunks] = useState([]);\n\n // A ref attached to the container of the current step so we can auto-focus its first input.\n const stepContainerRef = useRef(null);\n\n const form = useForm({\n initialValues: {\n name: \"\",\n description: \"\",\n industry: \"\",\n stage: \"\",\n project_type: \"\",\n country: \"\",\n city: \"\",\n website: \"\",\n linkedin: \"\",\n social_media: \"\",\n public_listed: true,\n start_date: null,\n end_date: null,\n details:\"\"\n },\n // Basic validations defined here for immediate feedback (plus extra URL checks)\n validate: {\n name: (value) =>\n !value || value.trim() === \"\" ? \"Name is required\" : null,\n description: (value) =>\n !value || value.trim() === \"\" ? \"Description is required\" : null,\n industry: (value) => (!value ? \"Industry is required\" : null),\n country: (value) => (!value ? \"Country is required\" : null),\n city: (value) =>\n !value || value.trim() === \"\" ? \"City is required\" : null,\n website: (value) => {\n if (value && !/^https?:\\/\\//i.test(value)) {\n return \"Please enter a valid URL (starting with http:// or https://)\";\n }\n return null;\n },\n linkedin: (value) => {\n if (value && !/^https?:\\/\\//i.test(value)) {\n return \"Please enter a valid URL (starting with http:// or https://)\";\n }\n return null;\n },\n social_media: (value) => {\n if (value && !/^https?:\\/\\//i.test(value)) {\n return \"Please enter a valid URL (starting with http:// or https://)\";\n }\n return null;\n },\n details: (value) =>{\n !value || value.trim() === \"\" ? \"Details are required\" : null;\n }\n },\n });\n\n // When the current step changes, try to focus the first input/select/textarea element.\n useEffect(() => {\n if (stepContainerRef.current) {\n const focusable = stepContainerRef.current.querySelector(\n \"input, select, textarea\"\n );\n if (focusable) {\n focusable.focus();\n }\n }\n }, [currentStep]);\n\n // Define which fields are required on each step.\n // Step 6 (social links) is optional.\n const requiredFields = {\n 1: [\"name\"],\n 2: [\"description\"],\n 3:[\"details\"],\n 4: [\"stage\"],\n 5: [\"start_date\", \"end_date\"],\n 6: [\"industry\", \"country\", \"city\"],\n 7: [], // Social links are optional\n };\n\n // Validate the fields for the current step.\n const validateCurrentStep = () => {\n let isValid = true;\n const fields = requiredFields[currentStep] || [];\n\n // Clear previous errors for these fields.\n fields.forEach((field) => form.setFieldError(field, null));\n\n fields.forEach((field) => {\n const value = form.values[field];\n\n if (field === \"start_date\" || field === \"end_date\") {\n if (!value) {\n form.setFieldError(field, \"This field is required\");\n isValid = false;\n }\n } else if (typeof value === \"string\" && value.trim() === \"\") {\n form.setFieldError(field, \"This field is required\");\n isValid = false;\n } else if (!value) {\n form.setFieldError(field, \"This field is required\");\n isValid = false;\n }\n });\n\n // Extra validation for dates (step 5)\n if (currentStep === 5) {\n const { start_date, end_date } = form.values;\n if (start_date && end_date) {\n // Check that end_date is at least 7 days after start_date.\n const diffTime = new Date(end_date) - new Date(start_date);\n const diffDays = diffTime / (1000 * 60 * 60 * 24);\n if (diffDays < 7) {\n form.setFieldError(\n \"end_date\",\n \"End date must be at least 7 days after start date\"\n );\n isValid = false;\n }\n }\n }\n\n if (!isValid) {\n setNotification({\n type: \"failure\",\n content: \"Please fill all required fields before continuing.\",\n });\n }\n return isValid;\n };\n\n const handleSubmit = async () => {\n setLoading(true);\n setCurrentStep(8);\n try {\n const response = await fetchApi(\"/startup_entities\", \"POST\", {\n startup_entity: {\n ...form.values,\n description: cleanText(form.values.description),\n details: cleanText(form.values.details),\n },\n });\n\n if (response.ok) {\n const res = await response.json();\n\n // Store roadmap_payload in sessionStorage\n sessionStorage.setItem(\n \"roadmap_payload\",\n JSON.stringify(res.roadmap_payload)\n );\n\n // Redirect to new page\n window.location.assign(res.redirect_path);\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n setLoading(false);\n setCurrentStep(6);\n }\n } catch (error) {\n console.error(\"Error during submission:\", error);\n setNotification({ type: \"failure\", content: \"An error occurred\" });\n setLoading(false);\n setCurrentStep(6);\n }\n };\n\n const handleKeyPress = (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n handleNext();\n }\n };\n\n const handleNext = () => {\n if (currentStep < 7) {\n if (!validateCurrentStep()) {\n return;\n }\n // Clear any notification once the current step is valid.\n setNotification(null);\n setCurrentStep((prev) => prev + 1);\n } else {\n // For step 6, submit the form directly (social links are optional)\n handleSubmit();\n }\n };\n\n const addDays = (date, days) => {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n };\n\n const renderStepOne = () => (\n <>\n \n \n Name Your Vision\n \n This helps us understand your focus and set the foundation.\n \n \n \n \n \n \n \n {form.errors.name && (\n
    \n {form.errors.name}\n
    \n )}\n
    \n
    \n \n );\n\n const renderStepTwo = () => (\n <>\n \n \n Describe It in a Sentence\n \n Keep it simple. We'll use this as description of your project on the dashboard\n \n \n \n \n \n \n \n {form.errors.description && (\n
    \n {form.errors.description}\n
    \n )}\n
    \n
    \n \n );\n\n const renderStepThree = () => (\n <>\n \n \n Additional Details\n \n Please provide all the nitty-gritty details about your project so we can better understand it, personalize our approach, and create the perfect roadmap that matches your vision.\n \n \n \n \n \n \n \n {form.errors.details && (\n
    \n {form.errors.details}\n
    \n )}\n
    \n
    \n \n );\n const renderStepFour = () => (\n <>\n \n \n What Stage Are You At?\n Select your current stage\n \n \n \n {[\n {\n stage: \"Start-up\",\n description:\n \"The initial phase of launching a business and entering the market.\",\n },\n {\n stage: \"Project\",\n description:\n \"Focusing efforts on achieving specific objectives and milestones.\",\n },\n {\n stage: \"Proposal\",\n description:\n \"Formulating and presenting structured plans for approval or funding.\",\n },\n ].map(({ stage, description }) => (\n form.setFieldValue(\"stage\", stage)}\n >\n \n {stage}\n \n {description}\n \n ))}\n {form.errors.stage && (\n
    \n {form.errors.stage}\n
    \n )}\n
    \n \n );\n\n const renderStepFive = () => (\n <>\n \n \n When Will You Start?\n Select your timeline\n \n \n \n \n \n \n {\n form.setFieldValue(\"start_date\", date);\n // Auto-set end date to 7 days later if not already set\n if (!form.values.end_date) {\n form.setFieldValue(\"end_date\", addDays(date, 1));\n }\n }}\n error={form.errors.start_date}\n />\n \n \n \n \n \n form.setFieldValue(\"end_date\", date)}\n minDate={\n form.values.start_date\n ? addDays(form.values.start_date, 1)\n : new Date()\n }\n error={form.errors.end_date}\n disabled={!form.values.start_date}\n />\n \n \n {form.errors.start_date && (\n
    \n {form.errors.start_date}\n
    \n )}\n
    \n \n );\n\n const renderStepSix = () => (\n <>\n \n \n Location Information\n \n This helps us tailor your journey with relevant guides, tools, and\n templates.\n \n \n \n \n \n \n \n form.setFieldValue(\"industry\", e.target.value)}\n error={form.errors.industry}\n >\n \n {industriesData.map((industry) => (\n \n ))}\n \n \n \n \n form.setFieldValue(\"country\", e.target.value)}\n error={form.errors.country}\n >\n \n {countriesData.map((country) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n form.setFieldValue(\"public_listed\", e.target.checked)\n }\n />\n Make it available to everyone\n \n \n When Private, Only Owners and Members can have access to it.\n \n \n \n );\n \n\n const renderStepSeven = () => (\n <>\n \n \n Social Links (Optional)\n \n Add these for collaborators to explore your project better.\n \n \n \n \n \n \n \n \n {form.errors.website && (\n
    \n {form.errors.website}\n
    \n )}\n
    \n \n \n \n {form.errors.linkedin && (\n
    \n {form.errors.linkedin}\n
    \n )}\n
    \n \n \n \n {form.errors.social_media && (\n
    \n {form.errors.social_media}\n
    \n )}\n
    \n
    \n
    \n \n );\n\n const renderCurrentStep = () => {\n if (loading) {\n return ;\n }\n switch (currentStep) {\n case 1:\n return renderStepOne();\n case 2:\n return renderStepTwo();\n case 3:\n return renderStepThree();\n case 4:\n return renderStepFour();\n case 5:\n return renderStepFive();\n case 6:\n return renderStepSix();\n case 7:\n return renderStepSeven();\n default:\n return null;\n }\n };\n\n return (\n \n {notification && (\n
    \n {notification.content}\n
    \n )}\n\n Go back\n\n {/* Wrap the current step with a container that has the ref attached */}\n
    \n {renderCurrentStep()}\n
    \n\n
    \n {!loading && (\n <>\n {currentStep}/7\n \n {currentStep > 1 && (\n \n )}\n \n \n \n )}\n
    \n
    \n );\n};\n\nexport default MultiStepForm;\n","import { useForm } from \"@mantine/form\";\nimport React, { useEffect, useState } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport { cleanText } from \"../Lib/profanityCleaner\";\nimport StartupCreate from \"../../stories/StartupCreate\";\n\nconst getSubdomain = () => {\n const hostname = window.location.hostname; // e.g., 'subdomain.example.com'\n const parts = hostname.split(\".\");\n\n // Assuming 'example.com' is your main domain\n if (parts.length > 2) {\n return parts[0]; // The subdomain is the first part\n }\n return null; // No subdomain found\n};\n\nexport default function CreateStartup({ project }) {\n const [notification, setNotification] = useState(null);\n const [loading, setLoading] = useState(false);\n const [token, setToken] = useState(null);\n const [isProject, setIsProject] = useState(false);\n const form = useForm({\n initialValues: {\n name: \"\",\n description: \"\",\n industry: \"\",\n stage: \"\",\n project_type: \"\",\n country: \"\",\n city: \"\",\n website: \"\",\n linkedin: \"\",\n social_media: \"\",\n public_listed: true,\n },\n validate: {\n name: (value) => {\n if (!value) {\n return \"Name is required\";\n }\n return null;\n },\n description: (value) => {\n if (!value) {\n return \"Description is required\";\n }\n return null;\n },\n industry: (value) => {\n if (!value) {\n return \"Industry is required\";\n }\n return null;\n },\n country: (value) => {\n if (!value) {\n return \"Country is required\";\n }\n return null;\n },\n city: (value) => {\n if (!value) {\n return \"City is required\";\n }\n return null;\n },\n },\n });\n\n const subdomain = getSubdomain();\n\n useEffect(() => {\n if (project) return;\n\n // Get the current path\n const path = window.location.pathname;\n\n // Split the path and extract the last part (the token)\n const parts = path.split(\"/\");\n const capturedToken = parts.pop() || parts.pop(); // Handle possible trailing slash\n\n setToken(capturedToken);\n }, []);\n\n const handleSubmit = async (e) => {\n const url = isProject ? \"/project_entities\" : \"/startup_entities\";\n const key = isProject ? \"project_entity\" : \"startup_entity\";\n setLoading(true);\n\n try {\n const response = await fetchApi(\"/startup_entities\", \"POST\", {\n startup_entity: {\n ...form.values,\n\n description: cleanText(form.values.description),\n },\n token,\n });\n\n if (response.ok) {\n const res = (await response.json()).startup_entity;\n // setNotification({ type: \"success\", content: msg });\n console.log(res);\n window.location.href = `${url}/${res.slug}`;\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n } finally {\n setLoading(false);\n }\n };\n\n return ;\n}\n","import React, { useState, useEffect } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport TagsInput from \"../Lib/TagsInput\";\n\nconst CorporateSignUpForm = () => {\n const [formData, setFormData] = useState({\n company_name: \"\",\n company_website: \"\",\n phone: \"\",\n contact_person: \"\",\n email: \"\",\n industry_sector: \"\",\n desired_expertise: \"\",\n project_description: \"\",\n terms_and_policy: false,\n });\n\n const [notification, setNotification] = useState(\"\");\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [selectedSectors, setSelectedSectors] = useState([]);\n const [isSubmitted, setIsSubmitted] = useState(false);\n\n\n useEffect(() => {\n console.log(\"Corporate Signup Controller connected\");\n }, []);\n\n const handleChange = (e) => {\n const { name, value, type, checked } = e.target;\n setFormData((prevData) => ({\n ...prevData,\n [name]: type === \"checkbox\" ? checked : value,\n }));\n };\n\n const handleMultiSelectChange = (selected) => {\n setSelectedSectors(selected);\n setFormData((prevData) => ({\n ...prevData,\n industry_sector: selected.map((option) => option),\n }));\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n\n const formDataToSend = new FormData();\n for (const [key, value] of Object.entries(formData)) {\n formDataToSend.append(key, value);\n }\n\n try {\n const response = await fetchApi(\"/corporate_signups\", \"POST\", {\n corporate_signup: {\n ...formData,\n industry_sector: formData.industry_sector.join(\", \"),\n },\n });\n\n const data = await response.json();\n\n if (response.ok) {\n setNotification(\n
    \n

    {data.message}

    \n

    \n Thank you for joining NowCollab! We appreciate your interest and\n will review your information shortly. Our team will reach out to\n you within 3 business days with the next steps.\n

    \n

    \n While you wait, feel free to connect with us on social media or\n check out some useful links.\n

    \n
    \n \n \n
    \n
    \n );\n setFormData({\n company_name: \"\",\n company_website: \"\",\n phone: \"\",\n contact_person: \"\",\n email: \"\",\n industry_sector: \"\",\n desired_expertise: \"\",\n project_description: \"\",\n terms_and_policy: false,\n });\n setSelectedSectors([]);\n setIsSubmitted(true);\n } else {\n setNotification(\n
    \n

    \n {data.message ||\n \"There was an error with the sign-up form. Please try again.\"}\n

    \n
    \n );\n }\n } catch (error) {\n setNotification(\n
    \n

    \n An error occurred. Please try again later.\n

    \n
    \n );\n }\n };\n\n const openModal = () => {\n setIsModalOpen(true);\n };\n\n const closeModal = () => {\n setIsModalOpen(false);\n setIsSubmitted(false);\n setNotification(\"\");\n };\n\n return (\n <>\n \n\n {isModalOpen && (\n {\n if (e.target.id === \"formModal\") closeModal();\n }}\n >\n
    \n
    \n \n {isSubmitted ? (\n
    {notification}
    \n ) : (\n <>\n {notification && !isSubmitted && (\n
    {notification}
    \n )}\n
    \n

    \n Business Sign-Up Form\n

    \n
    \n
    \n {/* Company Name Input */}\n
    \n \n \n
    \n\n {/* Company Website Input */}\n
    \n \n \n
    \n\n {/* Phone Number Input */}\n
    \n \n \n
    \n
    \n\n {/* Contact Person's Full Name Input */}\n
    \n \n \n

    \n Full name of the user applying to sign in or sign up\n (e.g., Sam John).\n

    \n
    \n\n
    \n {/* Email Address Input */}\n
    \n \n \n

    \n Email associated with your corporation.\n

    \n
    \n\n {/* Industry Sector Select */}\n
    \n \n \n

    \n Type, press Enter to save and to add more sectors\n

    \n
    \n
    \n\n {/* Desired Expertise Textarea */}\n
    \n \n \n

    \n Optional field to specify specific expertise you are\n seeking.\n

    \n
    \n\n {/* Project Description Textarea */}\n
    \n \n \n

    \n Briefly describe your project or area of collaboration.\n

    \n
    \n\n {/* Terms and Policy Checkbox */}\n\n\n
    \n \n \n
    \n\n {/* Submit Button */}\n
    \n \n Submit\n \n
    \n \n )}\n \n
    \n
    \n \n )}\n \n );\n};\n\nexport default CorporateSignUpForm;\n","import {\n ActionIcon,\n Avatar,\n Button,\n Card,\n Group,\n Indicator,\n Menu,\n Modal,\n Text,\n UnstyledButton,\n rem,\n} from \"@mantine/core\";\nimport React, { useEffect, useState } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport {\n IconCheck,\n IconTrash,\n IconUsersGroup,\n IconX,\n} from \"@tabler/icons-react\";\nimport Notification from \"../Lib/Notification\";\nimport FeatureButton from \"../../stories/FeatureButton\";\nimport useStartupStore from \"../../stores/startupStore\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function ManageRequestToJoinTeam() {\n const [opened, { open, close }] = useDisclosure(false);\n const [users, setUsers] = useState([]);\n const [loading, setLoading] = useState(false);\n const [notification, setNotification] = useState(null);\n const { t } = useTranslation();\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n if (params.has(\"manage_request\")) fetchData();\n }, [open, close]);\n\n const {\n isOwner,\n isMember,\n slug,\n entity,\n role,\n setMembers,\n removeMembers,\n pendingJoinRequest,\n } = useStartupStore((state) => ({\n slug: state.slug,\n isOwner: state.isOwner,\n isMember: state.isMember,\n role: state.role,\n setMembers: state.setMembers,\n removeMembers: state.removeMembers,\n entity: state.entity,\n pendingJoinRequest: state.pendingJoinRequest,\n }));\n\n const fetchData = async () => {\n setLoading(true);\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/join_requests/pending_requests_for_startup`,\n \"GET\"\n );\n\n if (response.ok) {\n const res = await response.json();\n // setNotification({ type: \"success\", content: msg });\n console.log(res);\n setUsers(res);\n open();\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n } finally {\n setLoading(false);\n }\n };\n\n const handleRequest = async (accepted, index) => {\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/join_requests/${\n users.pending_requests[index].join_request_id\n }/${accepted ? \"accept\" : \"reject\"}_request`,\n \"PATCH\"\n );\n\n if (response.ok) {\n const res = await response.json();\n setNotification({ type: \"success\", content: res.message });\n\n if (accepted) {\n setMembers(res.user);\n setUsers((u) => ({\n not_pending_requests: [\n ...u.not_pending_requests,\n u.pending_requests[index],\n ],\n pending_requests: u.pending_requests.filter((_, i) => i !== index),\n }));\n } else\n setUsers((u) => ({\n ...u,\n pending_requests: u.pending_requests.filter((_, i) => i !== index),\n }));\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n const handleRole = async (membershipId, newRoleIndex) => {\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/update_role`,\n \"PUT\", // Use PUT method to update the role\n { membership_id: membershipId, new_role: newRoleIndex }\n );\n\n if (response.ok) {\n const res = await response.json();\n setNotification({ type: \"success\", content: res.message });\n } else {\n const { error } = await response.json();\n setNotification({ type: \"failure\", content: error });\n console.error(error);\n }\n } catch (error) {\n console.error(\"Error during role update:\", error);\n }\n };\n\n const removeMember = async (user_id, index) => {\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/remove_member`,\n \"DELETE\", // Use PUT method to update the role\n { user_id }\n );\n\n if (response.ok) {\n const res = await response.json();\n setNotification({ type: \"success\", content: res.message });\n console.log(res);\n removeMembers(user_id || res.user_id);\n if (index !== undefined) {\n setUsers((p) => {\n const newRequests = [\n ...p.not_pending_requests.slice(0, index),\n ...p.not_pending_requests.slice(index + 1),\n ];\n return { ...p, not_pending_requests: newRequests };\n });\n }\n } else {\n const { error } = await response.json();\n setNotification({ type: \"failure\", content: error });\n console.error(error);\n }\n } catch (error) {\n console.error(\"Error during role update:\", error);\n }\n };\n\n return (\n <>\n {opened && (\n {\n setNotification(null);\n close();\n }}\n withCloseButton={false}\n >\n {notification && }\n \n \n {t(\"startups_page.manage_team.pending\")}\n \n
    \n \n {users.pending_requests.map(({ user }, i) => (\n
  • \n
    \n
    \n \n
    \n\n \n\n
    \n \n handleRequest(true, i)}\n >\n \n \n handleRequest(false, i)}\n >\n \n \n \n
    \n
    \n
  • \n ))}\n \n
    \n \n {t(\"startups_page.manage_team.all\")}\n \n
    \n \n {users.not_pending_requests.map(({ user }, i) => (\n
  • \n
    \n
    \n \n
    \n\n \n\n
    \n \n \n removeMember(user.id, i)}\n >\n \n \n \n
    \n
    \n
  • \n ))}\n \n
    \n
    \n \n )}\n {!(isOwner || role < 1) ? (\n <>\n {isMember ? (\n \n ) : (\n <>\n )}\n \n ) : (\n \n \n \n \n \n \n

    \n {t(\"startups_page.members.manage_team\")}\n

    \n
    \n
    \n \n )}\n \n );\n}\n\nconst LeaveStartup = ({ removeMember, entity }) => {\n const [opened, { close, open }] = useDisclosure(false);\n return (\n <>\n {opened && (\n \n
    \n

    \n You are about to leave this {entity.toLowerCase()}. You will loose\n all access a member have.\n

    \n
    \n
    \n \n removeMember(null, undefined)}\n variant=\"default\"\n className=\"text-red-700 px-12\"\n >\n Proceed anyway\n \n
    \n \n )}\n \n \n );\n};\n\nconst CustomDropdown = ({ id, handleRole, role }) => {\n const [isOpen, setIsOpen] = useState(false);\n const [selectedRoleIndex, setSelectedRoleIndex] = useState(role); // Default to the index of the first role\n\n const roles = [\n \"Founding Team\",\n \"Contributor\",\n \"Intern/Volunteer\",\n \"Consultant\",\n \"Investor\",\n ];\n\n const toggleDropdown = () => {\n setIsOpen(!isOpen);\n };\n\n const handleRoleChange = (index) => {\n setSelectedRoleIndex(index);\n setIsOpen(false);\n handleRole(id, index);\n };\n\n return (\n
    \n \n \n \n \n\n \n
      \n {roles.map((role, index) => (\n \n handleRoleChange(index)}\n className=\"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-700 dark:focus:ring-offset-gray-700 focus:ring-2 dark:bg-gray-600 dark:border-gray-500\"\n />\n \n {role}\n \n \n ))}\n
    \n
    \n \n
    \n );\n};\n","import {\n ActionIcon,\n Avatar,\n Card,\n Group,\n Menu,\n Modal,\n SimpleGrid,\n Button,\n Stack,\n Text,\n ThemeIcon,\n Title,\n rem,\n Badge,\n Loader,\n} from \"@mantine/core\";\nimport React, { useEffect, useState, useMemo, memo, useRef } from \"react\";\nimport { DropDownSelect, InputWithButton } from \"./Startups\";\nimport fetchApi from \"../../Lib/api\";\nimport {\n IconDots,\n IconUserPlus,\n IconUsers,\n IconUsersGroup,\n IconUserMinus,\n IconMessages,\n} from \"@tabler/icons-react\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport Notification from \"../../Lib/Notification\";\nimport { countries, industries, skills } from \"../../Onboarding/data\";\nimport { useLocation } from \"react-router-dom\";\nimport { DisplayMessages } from \"./Messages\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useTranslation } from \"react-i18next\";\nimport { useFilterStore } from \"../../../stores/useFilterStore\";\n\nconst experienceRanges = [\n { label: \"All\", value: \"All\" },\n { label: \"Junior Level (0-2 years)\", value: \"Junior Level\" },\n { label: \"Mid-Level (2-4 years)\", value: \"Mid-Level\" },\n { label: \"Senior Level (4-6 years)\", value: \"Senior Level\" },\n { label: \"Expert Level (6+ years)\", value: \"Expert Level\" },\n];\n\nconst MembersFilters = ({ count }) => {\n const location = useLocation();\n const { t } = useTranslation();\n const setFilterParam = useFilterStore((state) => state.setFilterParam);\n\n const memoizedSelectTypes = useMemo(() => {\n const searchParams = new URLSearchParams(location.search);\n const keys = Array.from(searchParams.keys());\n\n return {\n location: { label: \"Location (All)\" },\n industry: {\n label: keys.includes(\"industries\")\n ? searchParams.get(\"industries\")\n : \"Industry (All)\",\n },\n experience: {\n label: keys.includes(\"q\")\n ? \"Expert Level (6+ years)\"\n : \"Experience (All)\",\n },\n expert: {\n label: keys.includes(\"expert_in\")\n ? searchParams.get(\"expert_in\")\n : \"Expert in (All)\",\n },\n skills: {\n label: keys.includes(\"skills\")\n ? searchParams.get(\"skills\")\n : \"Skills (All)\",\n },\n };\n }, [location.search]);\n\n // Memoize the selectData props for DropDownSelect components\n const memoizedSelectData = useMemo(\n () => ({\n countries: countries,\n industries: [{ label: \"All\", value: \"All\" }, ...industries],\n experienceRanges: experienceRanges,\n expertInObj: [{ label: \"All\", value: \"All\" }, ...skills],\n skillsObj: [{ label: \"All\", value: \"All\" }, ...skills],\n }),\n []\n );\n\n return (\n
    \n
    \n \n \n \n \n \n \n Members\n \n \n {/* The search bar is now in the header */}\n \n \n setFilterParam(\"address_country_eq\", value)\n }\n />\n \n setFilterParam(\"industries\", value)\n }\n />\n \n setFilterParam(\"experience_range\", value)\n }\n />\n \n setFilterParam(\"expert_in\", value)\n }\n />\n \n setFilterParam(\"skills\", value)\n }\n />\n \n \n
    \n
    \n );\n};\n\nconst MemoMembersFilters = memo(MembersFilters);\n\nconst useUsers = (paramsObject) => {\n return useQuery({\n queryKey: [\"users\", JSON.stringify(paramsObject)],\n queryFn: async () => {\n const params = new URLSearchParams();\n for (const key in paramsObject) {\n params.append(`q[${key}]`, paramsObject[key]);\n }\n const queryString = params.toString();\n console.log(\"Query:\", queryString);\n\n const response = await fetchApi(`/api/users?${queryString}`, \"GET\");\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || \"Failed to fetch users\");\n }\n return await response.json();\n },\n retry: 1,\n staleTime: 5 * 60 * 1000,\n cacheTime: 30 * 60 * 1000,\n });\n};\n\n\nexport default function Members() {\n // Use the filterParams from the global store\n const filterParams = useFilterStore((state) => state.filterParams);\n const location = useLocation();\n const searchParamsExecuted = useRef(false);\n const [users, setUsers] = React.useState([]);\n\n // Merge URL search params into the filterParams once\n const paramsObject = useMemo(() => {\n const searchParams = new URLSearchParams(location.search);\n const updatedParams = { ...filterParams };\n\n if (!searchParamsExecuted.current) {\n searchParams.forEach((value, key) => {\n if (key !== \"q\") updatedParams[key] = value;\n else updatedParams[\"experience_range\"] = \"Expert Level\";\n });\n searchParamsExecuted.current = true;\n }\n\n console.log(updatedParams)\n\n return updatedParams;\n }, [location.search, filterParams]);\n\n const { data, isLoading, isError, error } = useUsers(paramsObject);\n\n useEffect(() => {\n if (data) {\n setUsers(data);\n }\n }, [data]);\n\n if (isLoading) {\n return (\n \n );\n }\n\n if (isError) {\n return
    Error: {error.message}
    ;\n }\n\n return (\n <>\n \n
    \n
    \n \n \n All Members\n \n \n \n
    \n
    \n \n );\n}\n\nexport async function handleFollowUnfollow(\n userId,\n isFollowing,\n users,\n setUsers\n) {\n try {\n const endpoint = !isFollowing\n ? `/users/${userId}/followings`\n : `/users/${userId}/followings/${userId}`;\n const method = !isFollowing ? \"POST\" : \"DELETE\";\n const response = await fetchApi(endpoint, method);\n\n if (response.ok) {\n const res = await response.json();\n if (Array.isArray(users)) {\n const updatedUsers = users.map((user) => {\n if (user.id === userId) {\n return { ...user, is_following: !isFollowing };\n }\n return user;\n });\n setUsers(updatedUsers);\n } else setUsers({ ...users, is_following: !isFollowing });\n } else {\n const { error } = await response.json();\n console.error(error);\n }\n } catch (error) {\n console.error(\"Error during follow/unfollow:\", error);\n }\n}\n\nexport function Users({ users, setUsers }) {\n const [opened, { open, close }] = useDisclosure(false);\n const [chatId, setChatId] = useState(undefined);\n const [startups, setStartups] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [notification, setNotification] = useState(null);\n const fetchData = async () => {\n try {\n const response = await fetchApi(\"/user_startup_entities\", \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n // setNotification({ type: \"success\", content: msg });\n console.log(res);\n setStartups(res);\n open();\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n } finally {\n }\n };\n\n const handleSubmit = async (id) => {\n try {\n const response = await fetchApi(\"/invitations\", \"POST\", {\n email: selectedUser,\n inviteable_type: \"StartupEntity\",\n inviteable_id: id,\n });\n\n if (response.ok) {\n const msg = (await response.json()).message;\n setNotification({ type: \"success\", content: msg });\n console.log(\"Invited successful!\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Invitation failed.\");\n }\n } catch (error) {\n console.error(\"Error during Invitation\", error);\n }\n };\n\n return (\n <>\n {opened && (\n \n {notification && }\n \n \n Startups available\n \n \n
    \n
      \n {startups.map((startup, i) => (\n
    • \n
      \n
      \n \n
      \n\n
      \n

      \n {startup.name}\n

      \n

      \n {startup.description}\n

      \n
      \n\n
      \n \n handleSubmit(startup.id)}\n >\n \n \n \n
      \n
      \n
    • \n ))}\n
    \n
    \n \n )}\n\n {chatId && (\n setChatId(undefined)}\n withCloseButton={false}\n >\n \n \n )}\n \n {users.map(\n ({\n first_name,\n last_name,\n job_title,\n avatar_url,\n email,\n id,\n github,\n linkedin,\n twitter,\n is_following,\n industries,\n level_name,\n }) => (\n \n
    \n \n {level_name}\n \n
    \n
    \n \n \n \n \n \n \n \n {\n setSelectedUser(email);\n fetchData();\n }}\n icon={\n \n }\n >\n Invite to a team\n \n \n \n
    \n
    \n \n {avatar_url ? (\n \n ) : (\n
    \n {((first_name && first_name[0]) || \"\") +\n ((last_name && last_name[0]) || \"\").toUpperCase()}\n
    \n )}\n
    \n {first_name} {last_name}\n
    \n \n {job_title || \"Student\"}\n \n
    \n
    \n
      \n
    • \n \n \n \n \n \n \n
    • \n\n
    • \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    • \n
    • \n \n \n \n \n \n \n
    • \n
    \n
    \n \n {industries.slice(0, 2).map((industry, index) => (\n \n {industry}\n \n ))}\n {industries.length > 2 && (\n \n {`+${industries.length - 2} more`}\n \n )}\n \n\n
    \n \n handleFollowUnfollow(id, is_following, users, setUsers)\n }\n fullWidth\n className=\"inline-flex items-center px-4 py-2 text-sm font-medium text-center text-white bg-blue-900 rounded-lg hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 \"\n leftIcon={\n is_following ? (\n \n ) : (\n \n )\n }\n >\n {is_following ? \"Unfollow\" : \"Follow\"}\n \n \n
    \n
    \n \n )\n )}\n \n \n );\n}\n\nexport function MessageUser({ id, setChatId }) {\n const handleSubmit = async () => {\n try {\n const response = await fetchApi(`/chats/start_chat`, \"POST\", {\n other_user_id: id,\n });\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setChatId(res.chat_id);\n } else {\n const msg = (await response.json()).error;\n }\n } catch (error) {\n console.error(\"Error during Invitation\", error);\n }\n };\n return (\n }\n >\n Message\n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport { DropDownListComponent } from \"@syncfusion/ej2-react-dropdowns\";\nimport {\n ScheduleComponent,\n ViewsDirective,\n ViewDirective,\n Inject,\n Day,\n Week,\n WorkWeek,\n Month,\n Resize,\n DragAndDrop\n} from \"@syncfusion/ej2-react-schedule\";\nimport { DialogUtility } from '@syncfusion/ej2-popups';\nimport { IconCalendar } from \"@tabler/icons-react\";\nimport fetchApi from '../../Lib/api';\n\nexport default function Calendar() {\n const scheduleObj = useRef(null);\n const [events, setEvents] = useState([]);\n const [currentView, setCurrentView] = useState(\"Week\");\n const [dateRange, setDateRange] = useState({\n start: new Date(new Date().setDate(1)), // First day of current month\n end: new Date(new Date().setMonth(new Date().getMonth() + 1, 0)) // Last day of current month\n });\n\n // Fetch events when component mounts or date range changes\n useEffect(() => {\n fetchEvents(dateRange.start, dateRange.end);\n }, [dateRange]);\n\n // Handle navigation and fetch events for the visible date range\n const onNavigating = (args) => {\n const currentDate = args.currentDate || new Date();\n let startDate, endDate;\n \n // Determine date range based on current view\n switch(args.currentView || currentView) {\n case 'Day':\n startDate = new Date(currentDate);\n endDate = new Date(currentDate);\n break;\n case 'Week':\n case 'WorkWeek':\n startDate = new Date(currentDate);\n startDate.setDate(startDate.getDate() - startDate.getDay());\n endDate = new Date(startDate);\n endDate.setDate(endDate.getDate() + 6);\n break;\n case 'Month':\n default:\n startDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n endDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n }\n \n setDateRange({ start: startDate, end: endDate });\n };\n\n const fetchEvents = async (startDate, endDate) => {\n try {\n // Format dates for the API\n const start = startDate.toISOString().split('T')[0];\n const end = endDate.toISOString().split('T')[0];\n \n const response = await fetchApi(`/events?start_date=${start}&end_date=${end}`);\n const data = await response.json();\n\n // Transform events to match SyncFusion's expected schema\n const transformedEvents = data.map(event => ({\n Id: event.id,\n Subject: event.title,\n Description: event.description,\n StartTime: new Date(event.start_time),\n EndTime: new Date(event.end_time),\n Location: event.location,\n // Handle recurrence properties\n RecurrenceRule: event.recurrence_rule,\n RecurrenceID: event.recurrence_id,\n RecurrenceException: event.recurrence_exception_dates,\n // Store original data for reference\n isRecurring: event.is_recurring,\n parentId: event.parent_id\n }));\n\n setEvents(transformedEvents);\n } catch (err) {\n console.error(\"Failed to fetch events\", err);\n }\n };\n\n // Create a new event\n const createEvent = async (values) => {\n try {\n const eventData = {\n title: values.Subject,\n description: values.Description || '',\n start_time: values.StartTime,\n end_time: values.EndTime,\n location: values.Location || '',\n recurrence_rule: values.RecurrenceRule || null\n };\n \n const response = await fetchApi('/events', 'POST', { event: eventData });\n \n if (!response.ok) {\n throw new Error('Failed to create event');\n }\n \n await response.json();\n fetchEvents(dateRange.start, dateRange.end);\n } catch (err) {\n console.error(\"Error creating event\", err);\n throw err;\n }\n };\n\n // Update an existing event\n const updateEvent = async (id, values, recurrenceAction = null) => {\n try {\n const eventData = {\n title: values.Subject,\n description: values.Description || '',\n start_time: values.StartTime,\n end_time: values.EndTime,\n location: values.Location || '',\n recurrence_rule: values.RecurrenceRule || null\n };\n \n // Add occurrence date for recurring event actions\n let url = `/events/${id}`;\n if (recurrenceAction) {\n url += `?recurrence_action=${recurrenceAction}`;\n if (values.isRecurring) {\n url += `&occurrence_date=${values.StartTime.toISOString()}`;\n }\n }\n \n const response = await fetchApi(url, 'PUT', { event: eventData });\n \n if (!response.ok) {\n throw new Error('Failed to update event');\n }\n \n await response.json();\n fetchEvents(dateRange.start, dateRange.end);\n } catch (err) {\n console.error(\"Error updating event\", err);\n throw err;\n }\n };\n\n // Delete an event\n// In Calendar.js - modify the deleteEvent function\nconst deleteEvent = async (id, recurrenceAction = null, startTime = null) => {\n try {\n let url = `/events/${id}`;\n if (recurrenceAction) {\n // Make sure this matches the backend expectation\n url += `?recurrence_action=${recurrenceAction}`;\n if (startTime) {\n // Ensure proper date formatting for Rails\n const formattedDate = startTime.toISOString();\n url += `&occurrence_date=${formattedDate}`;\n }\n }\n \n // Add logging to debug the URL\n console.log(\"Delete URL:\", url);\n \n const response = await fetchApi(url, 'DELETE');\n \n if (!response.ok) {\n throw new Error('Failed to delete event');\n }\n \n fetchEvents(dateRange.start, dateRange.end);\n } catch (err) {\n console.error(\"Error deleting event\", err);\n throw err;\n }\n};\n\n // Handle recurring event actions\n const handleRecurringEvent = (eventData, action) => {\n if (!eventData.RecurrenceRule && !eventData.isRecurring) {\n return Promise.resolve(null); // Not a recurring event\n }\n \n return new Promise((resolve) => {\n DialogUtility.confirm({\n title: 'Recurring Event',\n content: `Do you want to ${action} only this occurrence, all future occurrences, or the entire series?`,\n okButton: { text: 'Entire Series' },\n cancelButton: { text: 'Cancel' },\n beforeClose: (args) => {\n if (args.event.target.textContent === 'Entire Series') {\n resolve('all');\n } else if (args.event.target.textContent === 'Only This Occurrence') {\n resolve('single');\n } else if (args.event.target.textContent === 'All Future Occurrences') {\n resolve('future');\n } else {\n resolve(null); // Cancel\n }\n },\n showCloseIcon: true,\n closeOnEscape: true,\n position: { X: 'center', Y: 'center' },\n buttons: [\n { click: () => resolve('single'), buttonModel: { content: 'Only This Occurrence' } },\n { click: () => resolve('future'), buttonModel: { content: 'All Future Occurrences' } }\n ]\n });\n });\n };\n\n // Intercept built-in CRUD actions\n const onActionBegin = async (args) => {\n if (args.requestType === 'eventCreate') {\n // Built-in modal has been used to create a new event\n const newEvent = args.data[0];\n try {\n await createEvent(newEvent);\n } catch (err) {\n args.cancel = true;\n }\n } \n else if (args.requestType === 'eventChange') {\n // An event is updated via the built-in modal\n const updatedEvent = args.data;\n \n try {\n if (updatedEvent.RecurrenceRule || updatedEvent.isRecurring) {\n // This is a recurring event, ask how to update\n const recurrenceAction = await handleRecurringEvent(updatedEvent, 'update');\n \n if (!recurrenceAction) {\n args.cancel = true;\n return;\n }\n \n // Use the relevant ID for the update\n const id = updatedEvent.isRecurring ? updatedEvent.parentId : updatedEvent.Id;\n await updateEvent(id, updatedEvent, recurrenceAction);\n } else {\n // Regular event update\n await updateEvent(updatedEvent.Id, updatedEvent);\n }\n } catch (err) {\n args.cancel = true;\n fetchEvents(dateRange.start, dateRange.end);\n }\n } \n else if (args.requestType === 'eventRemove') {\n // An event is deleted via the built-in modal\n const eventToDelete = args.data[0];\n \n try {\n if (eventToDelete.RecurrenceRule || eventToDelete.isRecurring) {\n // This is a recurring event, ask how to delete\n const recurrenceAction = await handleRecurringEvent(eventToDelete, 'delete');\n \n if (!recurrenceAction) {\n args.cancel = true;\n return;\n }\n \n // Use the relevant ID for the deletion\n const id = eventToDelete.isRecurring ? eventToDelete.parentId : eventToDelete.Id;\n await deleteEvent(id, recurrenceAction, eventToDelete.StartTime);\n } else {\n // Regular event deletion\n await deleteEvent(eventToDelete.Id);\n }\n } catch (err) {\n args.cancel = true;\n fetchEvents(dateRange.start, dateRange.end);\n }\n }\n };\n\n // Handle view changes from the dropdown\n const onViewChange = (args) => {\n setCurrentView(args.value);\n scheduleObj.current?.dataBind();\n };\n\n const viewOptions = [\n { text: \"Day\", value: \"Day\" },\n { text: \"Week\", value: \"Week\" },\n { text: \"WorkWeek\", value: \"WorkWeek\" },\n { text: \"Month\", value: \"Month\" }\n ];\n \n const fields = { text: \"text\", value: \"value\" };\n\n return (\n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n
    \n );\n}","import {\n Anchor,\n Avatar,\n Group,\n Loader,\n SimpleGrid,\n Stack,\n ThemeIcon,\n Title,\n} from \"@mantine/core\";\n\nimport React, { useEffect, useState } from \"react\";\nimport parse from \"html-react-parser\";\nimport fetchApi from \"../../Lib/api\";\nimport { IconArrowLeft, IconSocial } from \"@tabler/icons-react\";\nimport { Users } from \"./Members\";\nimport StartupCard from \"./Card\";\nimport useUserStore from \"../../../stores/userStore\";\nimport { useQuery } from \"@tanstack/react-query\";\n\nconst useActivities = () => {\n return useQuery({\n queryKey: ['activities'], // Unique query key for caching\n queryFn: async () => {\n const response = await fetchApi('/activities/index', 'GET');\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'Failed to fetch activities');\n }\n\n return await response.json(); // Return the parsed JSON data\n },\n retry: 1, // Retry once on failure\n staleTime: 5 * 60 * 1000, // Data is fresh for 5 minutes\n cacheTime: 30 * 60 * 1000, // Cache inactive data for 30 minutes\n });\n};\n\n\nexport default function Activity() {\n const [stats, setStats] = useState({});\n const [activity, setActivity] = useState([]);\n const [view, setView] = useState(\"activity\");\n\n const setUser = useUserStore((state) => state.setUser);\n\n const { data, isLoading, isError, error } = useActivities();\n\n useEffect(() => {\n if (data) {\n setStats(data.counts || []);\n setActivity(data.activities || []);\n setUser((prevUser) => ({\n ...prevUser,\n recent_activities_count: 0, // Reset the count\n }));\n }\n }, [data, setStats, setActivity, setUser]);\n\n if (isLoading) {\n return (\n \n );\n }\n\n if (isError) {\n return
    Error: {error.message}
    ;\n }\n\n return (\n
    \n
    \n \n \n \n \n \n \n Activity\n \n \n
    \n \n setView(\"followers\")}\n className=\"bg-white hover:bg-gray-100 overflow-hidden shadow sm:rounded-lg w-full cursor-pointer\"\n >\n
    \n
    \n
    \n No of Followers\n
    \n
    \n
    \n {stats.followers_count || 0}\n
    \n \n \n \n
    \n
    \n
    \n
    \n setView(\"followings\")}\n className=\"bg-white hover:bg-gray-100 overflow-hidden shadow sm:rounded-lg w-full cursor-pointer\"\n >\n
    \n
    \n
    \n Following\n
    \n\n
    \n
    \n {stats.followings_count || 0}\n
    \n \n \n \n
    \n
    \n
    \n
    \n setView(\"startups\")}\n className=\"bg-white hover:bg-gray-100 overflow-hidden shadow sm:rounded-lg w-full cursor-pointer\"\n >\n
    \n
    \n
    \n Projects Following\n
    \n\n
    \n
    \n {stats.followed_startups_count || 0}\n
    \n \n \n \n
    \n
    \n
    \n \n \n \n\n {view !== \"activity\" && (\n setView(\"activity\")}>\n \n \n Go back to activities\n \n \n )}\n\n {view === \"activity\" && (\n <>\n {activity.map((ac) => (\n \n \n
      \n {ac.activities.map(\n ({\n id,\n actor,\n message,\n description,\n sub_message,\n view,\n url,\n }) => (\n
    1. \n \n \n
      \n
      \n {parse(description || message || \"\")}\n
      \n {sub_message && (\n
      \n {sub_message}\n
      \n )}\n {view === \"Private\" ? (\n \n \n \n \n \n \n Private\n \n ) : (\n \n \n \n \n Public\n \n )}\n
      \n \n
    2. \n )\n )}\n
    \n \n ))}\n \n )}\n\n {view === \"followers\" && }\n\n {view === \"followings\" && }\n\n {view === \"startups\" && }\n \n \n
    \n );\n}\n\nconst Followers = ({}) => {\n const [users, setUsers] = useState([]);\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetchApi(`/api/users/followers`, \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setUsers(res);\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during fetching activities:\", error);\n }\n };\n\n fetchData();\n }, []);\n return (\n \n \n People You are Following\n \n \n \n );\n};\n\nconst Followings = ({}) => {\n const [users, setUsers] = useState([]);\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetchApi(`/api/users/followings`, \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setUsers(res);\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during fetching activities:\", error);\n }\n };\n\n fetchData();\n }, []);\n return (\n \n \n People Following You\n \n \n \n );\n};\n\nconst Startups = ({}) => {\n const [startups, setStartups] = useState([]);\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetchApi(`/api/users/followed_startups`, \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setStartups(res);\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during fetching activities:\", error);\n }\n };\n\n fetchData();\n }, []);\n return (\n \n \n Startups You Are Following\n \n \n {startups.map(({ startup_entity, openings_length, members }) => (\n \n ))}\n \n \n );\n};\n","import { create } from 'zustand';\n\nconst useLayoutStore = create((set) => ({\n isToggle: false, // Initial state\n workMode: false,\n setIsWorkMode: (value) => set({ workMode: value }), // Setter function\n setIsToggle: (value) => set({ isToggle: value }), // Setter function\n}));\n\nexport default useLayoutStore;\n","import React from \"react\";\nimport { MantineProvider } from \"@mantine/core\";\nimport { HashRouter as Router, Routes, Route } from \"react-router-dom\";\n\nexport default function HashLayout({ children }) {\n return (\n \n \n {children}\n \n \n );\n}\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport FeatureButton from \"./FeatureButton\";\n\nconst FeatureCardContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n background-color: var(--color-container-card-default);\n padding: 20px;\n border: 1px solid #dee8e7;\n border-radius: 10px;\n text-align: left;\n width: 100%;\n`;\n\nconst FeatureCardContent = styled.div`\n display: flex;\n gap: 16px;\n\n @media (max-width: 1280px) {\n flex-direction: column;\n align-items: center;\n }\n\n @media (max-width: 1024px) {\n flex-direction: row;\n }\n`;\n\nconst FeatureImage = styled.img`\n // width: 180px;\n height: 100px;\n object-fit: contain;\n`;\n\nconst FeatureDetails = styled.div`\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin-bottom: 10px;\n`;\n\nconst FeatureTitle = styled.h3`\n color: var(--color-background-card);\n font-weight: var(--font-weight-h4);\n line-height: 18px;\n`;\n\nconst FeatureDescription = styled.p`\n font-size: var(--font-size-body-1);\n color: var(--color-background-main);\n`;\n\nconst FeatureCard = ({ title, description, imageUrl, buttonText, action }) => {\n return (\n \n \n \n {title}\n {description}\n \n {action && }\n \n );\n};\n\nexport default FeatureCard;\n","import {\n ActionIcon,\n Button,\n Collapse,\n Group,\n Modal,\n Select,\n Stack,\n Text,\n TextInput,\n Textarea,\n Title,\n rem,\n} from \"@mantine/core\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport { IconEye, IconPencilPlus, IconTrash } from \"@tabler/icons-react\";\nimport React, { useState } from \"react\";\nimport Notification from \"../Lib/Notification\";\nimport fetchApi from \"../Lib/api\";\nimport Markdown from \"../Lib/Markdown\";\nimport styled from \"styled-components\";\nimport FeatureButton from \"../../stories/FeatureButton\";\nimport roleIcon from \"../../stories/assets/roadmap-icon.svg\";\nimport CreateRoleImage from \"../../stories/assets/create-role.png\";\nimport FeatureCard from \"../../stories/FeatureCard\";\nimport useStartupStore from \"../../stores/startupStore\";\nimport { useTranslation } from \"react-i18next\";\n\n// Styled Components\nconst OpenRolesContainer = styled.div`\n background-color: var(--color-container-card-default);\n padding: 20px;\n border: 1px solid #dee8e7;\n border-radius: 10px;\n text-align: left;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 30px;\n`;\n\nconst FeatureTitle = styled.h3`\n color: var(--color-background-card);\n font-weight: var(--font-weight-h4);\n line-height: 18px;\n`;\n\nconst RolesList = styled.ul`\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: 20px;\n`;\n\nconst RoleItem = styled.li`\n display: flex;\n align-items: flex-start;\n gap: 16px;\n`;\n\nconst RoleIcon = styled.img`\n width: 28px;\n height: 28px;\n background-color: var(--color-button-accent);\n padding: 5px;\n border-radius: 4px;\n`;\n\nconst RoleContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-right: 24px;\n width: 100%;\n`;\n\nconst RoleHeader = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst RoleTitle = styled.h4`\n color: var(--color-background-card);\n font-weight: 500;\n`;\n\nconst RoleStatus = styled.span`\n background-color: var(--color-background-card);\n color: var(--color-background-light);\n font-size: var(--font-size-body-1);\n padding: 2px;\n border-radius: 4px;\n margin-left: 10px;\n`;\n\nexport default function OpeningRoles({}) {\n const [opened, { open, close }] = useDisclosure(false);\n const [userRole, setUserRole] = useState(\"\");\n const [status, setStatus] = useState(\"\");\n const [requirements, setRequirements] = useState(\"\");\n const [notification, setNotification] = useState(null);\n const { t } = useTranslation();\n\n const { isOwner, id, role, setOpenings, removeOpenings, openings } =\n useStartupStore((state) => ({\n id: state.slug,\n isOwner: state.isOwner,\n role: state.role,\n openings: state.openings,\n setOpenings: state.setOpenings,\n removeOpenings: state.removeOpenings,\n }));\n\n const handleCreate = async () => {\n try {\n const response = await fetchApi(\n `/startup_entities/${id}/openings`,\n \"POST\",\n {\n opening: {\n role: userRole,\n status,\n requirements,\n },\n }\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setNotification({ type: \"success\", content: res.message });\n setOpenings(res.opening);\n setUserRole(\"\");\n setStatus(\"\");\n setRequirements(\"\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n const handleDelete = async (roleId) => {\n try {\n const response = await fetchApi(\n `/startup_entities/${id}/openings/${roleId}`,\n \"Delete\"\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n removeOpenings(res.opening.id);\n } else {\n const msg = (await response.json()).error;\n\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n return (\n <>\n {opened && (\n \n {notification && }\n \n setUserRole(event.currentTarget.value)}\n />\n \n \n \n {t(\"startups_page.roles.m_requirements\")}\n \n {\n setRequirements(e);\n }}\n />\n \n\n {notification ? (\n {\n close();\n setNotification(null);\n }}\n variant=\"default\"\n fullWidth\n className=\"w-full px-12\"\n >\n {t(\"startups_page.roles.m_continue\")}\n \n ) : (\n \n {t(\"startups_page.roles.m_add_role\")}\n \n )}\n \n \n )}\n\n {openings.length ? (\n \n {t(\"startups_page.roles.header\")}\n\n \n {openings.map((op) => (\n \n ))}\n \n {(isOwner || role < 2) && (\n \n )}\n \n ) : (\n \n )}\n \n );\n}\n\nfunction Openings({ startupId, op, handleDelete, canAddRole }) {\n const [opened, { open, close }] = useDisclosure(false);\n const [notification, setNotification] = useState(null);\n const { t } = useTranslation();\n\n return (\n \n {opened && (\n \n {notification && }\n \n {t(\"startups_page.roles.m_requirements\")}\n \n\n {}}\n height={200}\n />\n\n {!!canAddRole && (\n \n )}\n \n )}\n \n \n \n {op.role}\n {op.status}\n
    \n \n \n \n {canAddRole && (\n handleDelete(op.id)}\n >\n \n \n )}\n
    \n
    \n

    {op.requirements}

    \n
    \n
    \n );\n}\n\nconst ApplyForRole = ({\n startupId,\n openingId,\n setNotification,\n notification,\n status,\n}) => {\n const [opened, { toggle }] = useDisclosure(false);\n const [reason, setReason] = useState(\"\");\n const { t } = useTranslation();\n\n const handleInvite = async () => {\n try {\n const response = await fetchApi(\n `/startup_entities/${startupId}/join_requests/create_for_opening`,\n \"POST\",\n {\n opening_id: openingId,\n join_request: { reason, role: status },\n }\n );\n\n if (response.ok) {\n const msg = (await response.json()).message;\n setNotification({ type: \"success\", content: msg });\n console.log(\"Request sent successful!\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Request failed.\");\n }\n } catch (error) {\n console.error(\"Error during Sending request\", error);\n }\n };\n return (\n <>\n \n \n \n \n \n setReason(event.currentTarget.value)}\n />\n \n {!notification ? (\n \n {t(\"startups_page.roles.m_a_request\")}\n \n ) : (\n {\n setNotification(null);\n close();\n }}\n variant=\"default\"\n fullWidth\n className=\"w-full px-12\"\n disabled={!reason}\n >\n {t(\"startups_page.roles.m_a_close\")}\n \n )}\n \n \n \n );\n};\n","import React, { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst LanguageDropdown = () => {\n const { i18n } = useTranslation();\n const [dropdownOpen, setDropdownOpen] = useState(false);\n\n // Retrieve the language from localStorage or default to 'en'\n const [selectedLanguage, setSelectedLanguage] = useState(\n localStorage.getItem(\"appLanguage\") || i18n.language || \"en\"\n );\n\n useEffect(() => {\n // Apply the language on component mount\n i18n.changeLanguage(selectedLanguage);\n }, [selectedLanguage, i18n]);\n\n const toggleDropdown = () => {\n setDropdownOpen(!dropdownOpen);\n };\n\n const changeLanguage = (lang) => {\n i18n.changeLanguage(lang);\n setSelectedLanguage(lang);\n localStorage.setItem(\"appLanguage\", lang); // Save to localStorage\n setDropdownOpen(false);\n };\n\n const languages = [\n { code: \"en\", label: \"English\" },\n { code: \"fr\", label: \"Français\" },\n { code: \"es\", label: \"Español\" },\n ];\n\n return (\n
    \n \n {languages.find((lang) => lang.code === selectedLanguage)?.label}\n \n \n \n \n\n {dropdownOpen && (\n \n {languages.map((language) => (\n changeLanguage(language.code)}\n >\n
    \n changeLanguage(language.code)}\n className=\"shrink-0 border-gray-200 rounded-full text-blue-600 focus:ring-blue-500 dark:bg-neutral-800 dark:border-neutral-700 dark:checked:bg-blue-500\"\n />\n
    \n \n
    \n ))}\n \n )}\n \n );\n};\n\nexport default LanguageDropdown;\n","import React, { useRef, useState } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport TagsInput from \"../Lib/TagsInput\";\nimport AddphotoIcon from \"../../stories/assets/add-photo.svg\";\nimport styled from \"styled-components\";\n\nconst UploadBox = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 150px;\n border: 1px dashed var(--color-button-accent);\n background-color: var(--color-background-light);\n border-radius: 4px;\n cursor: pointer;\n`;\n\nconst UploadIcon = styled.img`\n width: 30px;\n height: 30px;\n margin-bottom: 16px;\n`;\n\nconst CombinedSignUpForm = () => {\n const [formType, setFormType] = useState(\"expert\");\n const [notification, setNotification] = useState(\"\");\n const [isSubmitted, setIsSubmitted] = useState(false);\n const [file, setFile] = useState(null);\n\n const fileInputRef = useRef(null);\n\n // Expert form state\n const [expertFormData, setExpertFormData] = useState({\n full_name: \"\",\n email: \"\",\n phone: \"\",\n linkedin: \"\",\n terms_and_policy: false,\n });\n\n // Company form state\n const [companyFormData, setCompanyFormData] = useState({\n company_name: \"\",\n company_website: \"\",\n phone: \"\",\n contact_person: \"\",\n email: \"\",\n industry_sector: [],\n desired_expertise: \"\",\n project_description: \"\",\n terms_and_policy: false,\n });\n const [selectedSectors, setSelectedSectors] = useState([]);\n\n const handleExpertChange = (e) => {\n const { name, value, type, checked } = e.target;\n setExpertFormData((prevData) => ({\n ...prevData,\n [name]: type === \"checkbox\" ? checked : value,\n }));\n };\n\n const handleFileChange = (event) => {\n if (event.target.files && event.target.files[0]) {\n const selectedFile = event.target.files[0];\n setFile(selectedFile); // Save the file to state\n console.log(\"Selected file:\", selectedFile);\n }\n };\n\n const handleCompanyChange = (e) => {\n const { name, value, type, checked } = e.target;\n setCompanyFormData((prevData) => ({\n ...prevData,\n [name]: type === \"checkbox\" ? checked : value,\n }));\n };\n\n const handleCompanySectorsChange = (selected) => {\n setSelectedSectors(selected);\n setCompanyFormData((prevData) => ({\n ...prevData,\n industry_sector: selected,\n }));\n };\n\n const handleExpertSubmit = async (e) => {\n e.preventDefault();\n\n if (!file) {\n setNotification(\n
    \n

    Please select a file before submitting.

    \n
    \n );\n return;\n }\n\n const formData = new FormData();\n formData.append(\"expert_signup[file]\", file); // Append the file to FormData\n\n Object.entries(expertFormData).forEach(([key, value]) => {\n formData.append(`expert_signup[${key}]`, value);\n });\n\n try {\n const response = await fetchApi(\n \"/expert_signups\",\n \"POST\",\n formData,\n true\n );\n\n const data = await response.json();\n\n if (response.ok) {\n setNotification(\n
    \n

    {data.message}

    \n
    \n

    \n Thank you for joining NowCollab! We appreciate your interest and\n will review your information shortly. Our team will reach out to\n you within 3 business days with the next steps.\n

    \n

    \n While you wait, feel free to connect with us on social media or\n check out some useful links.\n

    \n
    \n \n
    \n
    \n
    \n );\n resetExpertForm();\n setIsSubmitted(true);\n } else {\n setNotification(\n
    \n

    {data.message || \"There was an error. Please try again.\"}

    \n
    \n );\n }\n } catch (error) {\n console.error(\"Submission error:\", error);\n setNotification(\n
    \n

    An error occurred. Please try again later.

    \n
    \n );\n }\n };\n\n const handleCompanySubmit = async (e) => {\n e.preventDefault();\n\n try {\n const response = await fetchApi(\"/corporate_signups\", \"POST\", {\n corporate_signup: {\n ...companyFormData,\n industry_sector: companyFormData.industry_sector.join(\", \"),\n },\n });\n\n const data = await response.json();\n\n if (response.ok) {\n setNotification(\n
    \n

    {data.message}

    \n
    \n

    \n Thank you for joining NowCollab! We appreciate your interest and\n will review your information shortly. Our team will reach out to\n you within 3 business days with the next steps.\n

    \n

    \n While you wait, feel free to connect with us on social media or\n check out some useful links.\n

    \n
    \n \n
    \n
    \n
    \n );\n resetCompanyForm();\n setIsSubmitted(true);\n } else {\n setNotification(\n
    \n

    {data.message || \"There was an error. Please try again.\"}

    \n
    \n );\n }\n } catch (error) {\n console.error(\"Submission error:\", error);\n setNotification(\n
    \n

    An error occurred. Please try again later.

    \n
    \n );\n }\n };\n\n const resetExpertForm = () => {\n setExpertFormData({\n full_name: \"\",\n email: \"\",\n phone: \"\",\n position: \"\",\n linkedin: \"\",\n phd: \"No\",\n institution: \"\",\n expertise: [],\n bio: \"\",\n terms_and_policy: false,\n });\n setFile(null)\n };\n\n const resetCompanyForm = () => {\n setCompanyFormData({\n company_name: \"\",\n company_website: \"\",\n phone: \"\",\n contact_person: \"\",\n email: \"\",\n industry_sector: [],\n desired_expertise: \"\",\n project_description: \"\",\n terms_and_policy: false,\n });\n setSelectedSectors([]);\n };\n\n const handleSetForm = (e) => {\n setNotification(\"\");\n setFormType(e);\n };\n\n return (\n
    \n \n {formType === \"expert\" ? (\n
    \n ) : (\n
    \n )}\n\n
    \n {formType === \"expert\" ? (\n

    For Experts and Professors

    \n ) : (\n

    For Businesses

    \n )}\n
    \n handleSetForm(\"expert\")}\n className={`btn ${\n formType !== \"expert\" ? \"btn-primary\" : \"bg-gray-200\"\n }`}\n >\n FOR EXPERT\n \n handleSetForm(\"company\")}\n className={`btn ${\n formType !== \"company\" ? \"bg-green-500\" : \"bg-gray-200\"\n }`}\n >\n FOR BUSINESSES\n \n
    \n\n {notification ? (\n
    {notification}
    \n ) : (\n <>\n {\" \"}\n {formType === \"expert\" ? (\n
    \n
    \n {/* Full Name */}\n
    \n \n \n
    \n {/* Email */}\n
    \n \n \n
    \n
    \n\n
    \n {/* LinkedIn */}\n
    \n \n \n
    \n\n {/* Phone */}\n
    \n \n \n
    \n
    \n\n
    \n \n {!file ? (\n fileInputRef.current.click()}>\n \n

    \n Click to upload or Drag and Drop\n resume\n

    \n

    \n Maximum file size 2MB\n

    \n
    \n ) : (\n
    \n
    \n
    \n \n \n \n
    \n\n

    \n {file.name}\n

    \n\n
    \n
    \n )}\n
    \n\n {/* Terms */}\n
    \n \n \n
    \n\n \n Submit as Expert\n \n \n ) : (\n
    \n {/* Company Name */}\n
    \n \n \n
    \n
    \n {/* Company Website */}\n
    \n \n \n
    \n\n {/* Phone Number */}\n
    \n \n \n
    \n
    \n\n {/* Contact Person */}\n
    \n \n \n

    \n Full name of the person applying (e.g., Sam John).\n

    \n
    \n\n
    \n {/* Email */}\n
    \n \n \n

    \n Email associated with your corporation.\n

    \n
    \n\n {/* Industry Sector */}\n
    \n \n \n

    \n Type, press Enter to save and to add more sectors\n

    \n
    \n
    \n\n {/* Project Description */}\n
    \n \n \n

    \n Briefly describe your project or area of collaboration.\n

    \n
    \n\n {/* Terms */}\n
    \n \n \n
    \n\n
    \n \n Submit as Company\n \n
    \n
    \n )}\n \n )}\n
    \n
    \n \n \n );\n};\n\nexport default CombinedSignUpForm;\n","import React from \"react\";\nimport { Button } from \"@mantine/core\";\n\nconst handleSignIn = (provider) => {\n const railsButton = document.getElementById(`oauth-sign-in-linkedin`);\n if (railsButton) {\n railsButton.click();\n }\n};\n\nfunction LinkedInIcon(props) {\n return (\n \n \n \n );\n}\n\nexport function LinkedInButton(props) {\n return (\n }\n variant=\"default\"\n {...props}\n onClick={handleSignIn}\n />\n );\n}\n","import React, { useState } from \"react\";\nimport { useForm } from \"@mantine/form\";\nimport { PasswordInput, Button, Group, Stack } from \"@mantine/core\";\nimport fetchApi from \"../Lib/api\";\nimport Notification from \"../Lib/Notification\";\n\nexport default function UpdatePasswordForm() {\n const [notification, setNotification] = useState(null);\n\n const form = useForm({\n initialValues: {\n old_password: \"\",\n password: \"\",\n password_confirmation: \"\",\n },\n validate: {\n old_password: (val) =>\n val.length >= 6 ? null : \"Old password can't be less than 6\",\n password: (val) =>\n val.length >= 6\n ? null\n : \"Password should include at least 6 characters\",\n password_confirmation: (val) =>\n val === form.values.password ? null : \"Passwords do not match\",\n },\n });\n\n const handleSubmit = async (e) => {\n try {\n const response = await fetchApi(\"/api/users/update_password\", \"PUT\", {\n user: {\n new_password: form.values.password,\n old_password: form.values.old_password,\n },\n });\n\n if (response.ok) {\n const msg = (await response.json()).message;\n setNotification({ type: \"success\", content: msg });\n console.log(\"Password change successful!\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Password change failed.\");\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n return (\n \n \n {notification && setNotification(\"\")} />}\n\n {[\"old_password\", \"password\", \"password_confirmation\"].map(\n (fieldName) => (\n \n \n form.setFieldValue(fieldName, event.currentTarget.value)\n }\n error={form.errors[fieldName]}\n radius=\"md\"\n />\n \n )\n )}\n\n \n \n Change Password\n \n \n \n \n );\n}\n","import React from \"react\";\nimport { Link, NavLink } from \"react-router-dom\";\n\nconst CustomNavLink = ({ to, children, ...rest }) => {\n \n // Check if the router type is HashRouter or BrowserRouter\n const isHashRouter = window.location.hash && window.location.hash !== \"\";\n\n // Use Link for BrowserRouter and NavLink for HashRouter\n const NavLinkComponent = isHashRouter ? NavLink : Link;\n\n return isHashRouter && to.hash ? (\n \n {children}\n \n ) : (\n \n {children}\n \n );\n};\n\nexport default CustomNavLink;\n","import React, { useState } from \"react\";\nimport { Group, createStyles, rem, getStylesRef } from \"@mantine/core\";\nimport {\n IconSettings,\n IconLogout,\n IconId,\n IconHome,\n IconSocial,\n IconStack3,\n} from \"@tabler/icons-react\";\nimport { NavLink } from \"react-router-dom\";\n\nconst useStyles = createStyles((theme) => ({\n header: {\n width: \"200px\",\n paddingBottom: theme.spacing.md,\n marginBottom: `calc(${theme.spacing.md} * 1.5)`,\n borderBottom: `${rem(1)} solid ${\n theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2]\n }`,\n },\n\n footer: {\n width: \"200px\",\n paddingTop: theme.spacing.md,\n marginTop: theme.spacing.md,\n borderTop: `${rem(1)} solid ${\n theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2]\n }`,\n },\n\n link: {\n ...theme.fn.focusStyles(),\n display: \"flex\",\n alignItems: \"center\",\n textDecoration: \"none\",\n fontSize: theme.fontSizes.sm,\n cursor: \"pointer\",\n color:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[1]\n : theme.colors.gray[7],\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\n borderRadius: theme.radius.sm,\n fontWeight: 700,\n width: \"200px\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n color: theme.colorScheme === \"dark\" ? theme.white : theme.black,\n\n [`& .${getStylesRef(\"icon\")}`]: {\n color: theme.colorScheme === \"dark\" ? theme.white : theme.black,\n },\n },\n },\n\n linkIcon: {\n ref: getStylesRef(\"icon\"),\n color:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[2]\n : theme.colors.dark[6],\n marginRight: theme.spacing.sm,\n },\n\n linkActive: {\n \"&, &:hover\": {\n backgroundColor: theme.fn.variant({\n variant: \"light\",\n color: \"green\",\n }).background,\n color: theme.fn.variant({ variant: \"light\", color: theme.primaryColor })\n .color,\n [`& .${getStylesRef(\"icon\")}`]: {\n color: theme.fn.variant({ variant: \"light\", color: theme.primaryColor })\n .color,\n },\n },\n },\n\n user: {\n display: \"block\",\n width: \"100%\",\n padding: theme.spacing.md,\n marginBlockEnd: theme.spacing.lg,\n\n \"&:hover\": {\n backgroundColor: theme.colors.gray[0],\n },\n },\n}));\n\nconst data = [\n { link: \"/\", label: \"Profile\", icon: IconId },\n { link: \"/workspace\", label: \"My Workspace\", icon: IconStack3 },\n { link: \"/activity\", label: \"Activity\", icon: IconSocial },\n { link: \"/settings\", label: \"Settings\", icon: IconSettings },\n];\n\nexport default function NavbarSimple({ handleSidebarToggle }) {\n const { classes, cx } = useStyles();\n const [active, setActive] = useState(\"Profile\");\n\n const links = data.map((item) => (\n {\n setActive(item.label);\n handleSidebarToggle(false);\n }}\n >\n \n {item.label}\n \n ));\n\n return (\n \n );\n}\n","import React, { useRef } from \"react\";\nimport { Menu } from \"@mantine/core\";\nimport {\n IconBrandGoogleDrive,\n IconFilePlus,\n IconStack3,\n} from \"@tabler/icons-react\";\nimport useGoogleDrive from \"./GoogleDriveOperations\";\nimport useDropbox from \"./DropboxOperations\";\nimport FileList from \"./FilesDisplay\";\nimport useStartupStore from \"../../stores/startupStore\";\nimport AddphotoIcon from \"../../stories/assets/add-photo.svg\";\nimport styled from \"styled-components\";\n\nconst UploadBox = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: fit-content;\n border: 1px dashed var(--color-button-accent);\n background-color: var(--color-background-light);\n border-radius: 4px;\n cursor: pointer;\n padding: 2px;\n`;\n\nconst UploadIcon = styled.img`\n width: 22px;\n height: 22px;\n margin-bottom: 16px;\n`;\n\nconst GoogleDrivePickerAndUploader = ({ appId }) => {\n // Using global store only for file state.\n const {\n files,\n setFiles,\n selectedProgram: { cid: pageId, sid: index },\n program,\n isOwner,\n isMember,\n submitPendingChanges,\n } = useStartupStore((state) => ({\n files: state.files,\n setFiles: state.setFiles,\n selectedProgram: state.selectedProgram,\n program: state.program,\n isOwner: state.isOwner,\n isMember: state.isMember,\n submitPendingChanges: state.submitPendingChanges,\n }));\n\n const fileInputRef = useRef(null);\n\n // Configuration values.\n const clientId =\n \"646888565719-k2u21847fotu41ud9eagk3rcs18hk9v5.apps.googleusercontent.com\";\n const apiKey = \"AIzaSyAyrRvP9x6xqL8v3LS82O6AYjvlBvNnsJE\";\n const dropboxAppKey = \"7u7qdb2r7djclry\";\n const dropboxRedirectUri = \"http://localhost:3000/dashboard\";\n\n // Initialize hooks for Google Drive and Dropbox.\n const { isGoogleAuthenticated, createPicker, silentAuthenticate } =\n useGoogleDrive({ clientId, apiKey, appId });\n const {\n authenticateDropbox,\n openDropboxChooser,\n isDropboxAuthenticated,\n fetchDropboxThumbnail,\n } = useDropbox(dropboxAppKey, dropboxRedirectUri);\n\n // Helper functions to build preview URLs.\n const getGoogleDrivePreviewUrl = (docId) =>\n `https://drive.google.com/file/d/${docId}/preview`;\n const getDropboxPreviewUrl = (link) => link.replace(\"?dl=0\", \"?raw=1\");\n\n // Handler for local file selection.\n const handleFileChange = (event) => {\n const selectedFilesArray = Array.from(event.target.files);\n const validFiles = selectedFilesArray.filter((file) => {\n if (file.size <= 10 * 1024 * 1024) {\n return true;\n } else {\n alert(\n `File \"${file.name}\" exceeds the 10MB limit and will not be added.`\n );\n return false;\n }\n });\n const newFiles = validFiles.map((file) => ({\n file,\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n url: URL.createObjectURL(file),\n source: \"local\",\n }));\n const existingFiles = files[pageId]?.[index] || [];\n setFiles([...existingFiles, ...newFiles]);\n submitPendingChanges()\n };\n\n // Handler for Google Drive file selection.\n const handleGoogleDrivePick = () => {\n createPicker((data) => {\n if (\n data[window.google.picker.Response.ACTION] ===\n window.google.picker.Action.PICKED\n ) {\n const pickedFiles = data[window.google.picker.Response.DOCUMENTS].map(\n (doc) => {\n const thumbnailUrl = `https://drive.google.com/thumbnail?authuser=0&sz=w320&id=${doc.id}`;\n return {\n id: doc.id,\n name: doc.name,\n size_bytes: doc.sizeBytes || 0,\n mimeType: doc.mimeType,\n icon: doc.iconUrl,\n url: getGoogleDrivePreviewUrl(doc.id),\n source: \"drive\",\n isNew: true,\n thumbnail: thumbnailUrl,\n };\n }\n );\n const existingFiles = files[pageId]?.[index] || [];\n setFiles([...existingFiles, ...pickedFiles]);\n submitPendingChanges()\n }\n });\n };\n\n // Handler for Dropbox file selection.\n const handleDropboxPick = () => {\n openDropboxChooser(async (filesFromDropbox) => {\n const selectedFiles = await Promise.all(\n filesFromDropbox.map(async (file) => {\n let thumbnailUrl = null;\n if (file.path_lower) {\n try {\n thumbnailUrl = await fetchDropboxThumbnail(file.path_lower);\n } catch (error) {\n console.error(\n \"Error fetching thumbnail for Dropbox file:\",\n file.name,\n error\n );\n thumbnailUrl = file.icon;\n }\n } else {\n thumbnailUrl = file.icon;\n }\n return {\n id: file.id,\n name: file.name,\n size_bytes: file.bytes,\n isNew: true,\n url: getDropboxPreviewUrl(file.link),\n source: \"dropbox\",\n icon: file.icon,\n thumbnail: thumbnailUrl || file.icon,\n };\n })\n );\n const existingFiles = files[pageId]?.[index] || [];\n setFiles([...existingFiles, ...selectedFiles]);\n submitPendingChanges()\n });\n };\n\n return (\n <>\n {/* Upload box is always visible */}\n {(isOwner || isMember) && (\n \n \n \n \n

    \n Click to upload or drag and drop a document\n

    \n

    \n Maximum file size 10MB per file\n

    \n
    \n
    \n\n \n Connected apps\n {/* Google Drive Option */}\n {!isGoogleAuthenticated ? (\n }\n onClick={silentAuthenticate}\n >\n

    Authenticate with Google Drive

    \n \n ) : (\n }\n onClick={handleGoogleDrivePick}\n >\n

    Choose from Google Drive

    \n \n )}\n\n {/* Dropbox Option */}\n {!isDropboxAuthenticated ? (\n }\n onClick={authenticateDropbox}\n >\n

    Authenticate with Dropbox

    \n \n ) : (\n }\n onClick={handleDropboxPick}\n >\n

    Choose from Dropbox

    \n \n )}\n\n \n\n {/* Local File Upload */}\n }\n onClick={() => fileInputRef.current.click()}\n >\n

    Upload From Computer

    \n \n
    \n \n )}\n\n {/* File list displayed below the upload box */}\n \n \n \n\n \n \n );\n};\n\nexport default GoogleDrivePickerAndUploader;\n","import React, { useState } from \"react\";\nimport { useToggle } from \"@mantine/hooks\";\nimport { useForm } from \"@mantine/form\";\nimport {\n Group,\n Button,\n Divider,\n Checkbox,\n Anchor,\n Stack,\n Center,\n Box,\n rem,\n} from \"@mantine/core\";\nimport { GoogleButton } from \"./GoogleButton\";\nimport { IconArrowLeft } from \"@tabler/icons-react\";\nimport fetchApi from \"../Lib/api\";\nimport Notification from \"../Lib/Notification\";\nimport { LinkedInButton } from \"./LinkedInButton\";\n\nconst getValidationRules = (type) => {\n const commonRules = {\n email: (val) => (/^\\S+@\\S+$/.test(val) ? null : \"Invalid email\"),\n password: (val) =>\n val.length >= 6 ? null : \"Password should include at least 6 characters\",\n };\n\n const typeRules = {\n login: {},\n register: {\n first_name: (val) =>\n val.trim() !== \"\" ? null : \"First name is required\",\n last_name: (val) => (val.trim() !== \"\" ? null : \"Last name is required\"),\n confirm_password: (val, values) =>\n val === values.password ? null : \"Passwords do not match\",\n terms: (val) => (val ? null : \"You must accept the terms\"),\n },\n reset: { password: (val) => null },\n };\n\n return { ...commonRules, ...typeRules[type] };\n};\n\nexport default function AuthenticationForm(props) {\n const [type, toggle] = useToggle([\"login\", \"register\"]);\n const [resetMode, setResetMode] = useState(false);\n const [notification, setNotification] = useState(null);\n const [loading, setLoading] = useState(false);\n\n const form = useForm({\n initialValues: {\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n password: \"\",\n confirm_password: \"\",\n terms: false,\n },\n validate: getValidationRules(resetMode ? \"reset\" : type),\n });\n\n const handleSubmit = async (e) => {\n setNotification(false);\n setLoading(true);\n let endpoint, userData;\n\n try {\n if (resetMode) {\n endpoint = \"/users/password\";\n userData = { email: form.values.email };\n } else if (type === \"login\") {\n endpoint = \"/users/sign_in\";\n userData = { email: form.values.email, password: form.values.password };\n } else if (type === \"register\") {\n endpoint = \"/users\";\n userData = (({ confirm_password, terms, ...userData }) => userData)(\n form.values\n );\n }\n\n const response = await fetchApi(endpoint, \"POST\", { user: userData });\n\n if (response.ok) {\n const data = await response.json();\n const msg = data.message;\n setNotification({ type: \"success\", content: msg });\n\n if (resetMode) {\n console.log(\"Password reset request sent!\");\n } else if (type === \"login\") {\n console.log(\"Login successful!\");\n window.location.href = data.redirect_to;\n } else if (type === \"register\") {\n console.log(\"Registration successful!\");\n }\n } else {\n const msg = (await response.json()).error;\n console.log(msg);\n setNotification({ type: \"failure\", content: msg });\n }\n } catch (error) {\n console.error(\"Error:\", error);\n }\n\n setLoading(false);\n };\n\n\n return (\n <>\n {notification && }\n\n
    \n {resetMode ? (\n <>\n
    \n \n
    \n \n \n \n \n \n \n form.setFieldValue(\"email\", event.currentTarget.value)\n }\n id=\"email\"\n name=\"email\"\n placeholder=\"Email\"\n className=\"py-3 px-4 block w-full border-gray-200 shadow-sm rounded-e-lg text-sm focus:z-10 focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none\"\n />\n
    \n
    \n\n \n {\n setNotification(null);\n setResetMode(false);\n }}\n >\n
    \n \n Login\n
    \n \n \n Reset Password\n \n \n \n ) : (\n <>\n \n {type === \"register\" && (\n \n
    \n \n
    \n \n \n \n \n \n \n form.setFieldValue(\n \"first_name\",\n event.currentTarget.value\n )\n }\n id=\"first_name\"\n name=\"first_name\"\n placeholder=\"First Name\"\n className=\"py-3 px-4 block w-full border-gray-200 shadow-sm rounded-e-lg text-sm focus:z-10 focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none\"\n />\n
    \n
    \n\n
    \n \n
    \n \n \n \n \n \n \n form.setFieldValue(\n \"last_name\",\n event.currentTarget.value\n )\n }\n id=\"last_name\"\n name=\"last_name\"\n placeholder=\"Last Name\"\n className=\"py-3 px-4 block w-full border-gray-200 shadow-sm rounded-e-lg text-sm focus:z-10 focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none\"\n />\n
    \n
    \n \n )}\n\n
    \n \n
    \n \n \n \n \n \n \n form.setFieldValue(\"email\", event.currentTarget.value)\n }\n id=\"email\"\n name=\"email\"\n placeholder=\"Email\"\n className=\"py-3 px-4 block w-full border-gray-200 shadow-sm rounded-e-lg text-sm focus:z-10 focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none\"\n />\n
    \n
    \n\n \n
    \n \n
    \n \n \n \n \n \n \n form.setFieldValue(\n \"password\",\n event.currentTarget.value\n )\n }\n id=\"password\"\n name=\"password\"\n placeholder=\"Password\"\n className=\"py-3 px-4 block w-full border-gray-200 shadow-sm rounded-e-lg text-sm focus:z-10 focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none\"\n />\n
    \n
    \n\n {type === \"register\" && (\n
    \n \n
    \n \n \n \n \n \n \n form.setFieldValue(\n \"confirm_password\",\n event.currentTarget.value\n )\n }\n id=\"confirm_password\"\n name=\"confirm_password\"\n placeholder=\"Confirm Password\"\n className=\"py-3 px-4 block w-full border-gray-200 shadow-sm rounded-e-lg text-sm focus:z-10 focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none\"\n />\n
    \n
    \n )}\n \n\n {type === \"register\" && (\n \n I accept nowcollab{\" \"}\n \n terms and conditions\n \n \n }\n checked={form.values.terms}\n onChange={(event) =>\n form.setFieldValue(\"terms\", event.currentTarget.checked)\n }\n />\n )}\n\n \n \n {type === \"register\" ? \"Create account\" : \"Log in\"}\n \n \n
    \n\n \n\n \n Google\n LinkedIn\n \n\n \n {\n setNotification(null);\n toggle();\n }}\n >\n {type === \"register\" ? \"Login\" : \"Signup\"}\n \n\n {type === \"login\" && (\n {\n setNotification(null);\n setResetMode(true);\n }}\n >\n Reset password\n \n )}\n \n \n )}\n \n \n );\n}\n","import React, { useContext } from \"react\";\nimport { useState } from \"react\";\nimport {\n IconUserCheck,\n IconShieldCheck,\n IconCircleCheck,\n IconListDetails,\n} from \"@tabler/icons-react\";\nimport { Button, Center, Group, Paper, Stepper, rem } from \"@mantine/core\";\nimport Category from \"./Category\";\nimport UserDetails from \"./Details\";\nimport AboutMe from \"./About\";\nimport { validations } from \"./validations\";\nimport { useForm } from \"@mantine/form\";\nimport fetchApi from \"../Lib/api\";\nimport { useMediaQuery } from \"@mantine/hooks\";\nimport useUserStore from \"../../stores/userStore\";\n\nconst onSubmit = async (data, setFunction, user_id) => {\n try {\n const formData = new FormData();\n console.log(data);\n\n if (user_id) formData.append(`user[id]`, user_id);\n\n Object.entries(data).forEach(([key, value]) => {\n formData.append(`user[${key}]`, value);\n });\n\n const response = await fetchApi(\n \"/api/users/onboard\",\n \"POST\",\n formData,\n true\n );\n\n if (response.ok) {\n console.log(\"Success:\", response.user);\n\n const responseData = await response.json();\n console.log(\"Success:\", responseData.user);\n if (setFunction) {\n setFunction((p) => ({ ...p, user: responseData.user }));\n return true;\n } else if (!user_id) window.location.href = \"/profile\";\n } else {\n console.error(\"HTTP error! Failed to submit form\");\n }\n } catch (error) {\n console.error(\"Error:\", error.message);\n }\n};\n\nexport default function Onboarding() {\n const isMobile = useMediaQuery(\"(max-width: 50rem)\");\n const { user } = useUserStore((state) => state.user);\n const [active, setActive] = useState(0);\n const [showError, setShowError] = useState(false);\n\n const form = useForm({\n initialValues: {\n avatar: null,\n first_name: user.first_name || \"\",\n last_name: user.last_name || \"\",\n user_type: user.user_type || 0,\n company: user.company || \"\",\n job_title: user.job_title || \"\",\n year_of_experience: user.year_of_experience || 0,\n work_type: user.work_type || \"\",\n university: user.university || \"\",\n degree: user.degree || \"\",\n country: user.address?.country || \"\",\n city: user.address?.city || \"\",\n about_me: user.about_me || \"\",\n expert_in: user.expert_in || \"\",\n skills: user.skills || \"\",\n industries: user.industries || \"\",\n },\n\n validate: validations(active),\n });\n\n return (\n
    \n \n }\n >\n }\n description={isMobile ? \"\" : \"Account type\"}\n >\n \n \n }\n description={isMobile ? \"\" : \"Personal Information\"}\n >\n \n \n }\n description={isMobile ? \"\" : \"Skills and Expertise\"}\n >\n \n \n \n\n \n {active > 0 ? (\n {\n if (active > 0) setActive((current) => current - 1);\n }}\n variant=\"default\"\n >\n Go back\n \n ) : (\n
    \n )}\n {\n console.log(form.validate());\n if (!form.validate().hasErrors)\n if (active < 2) setActive((current) => current + 1);\n else onSubmit(form.values);\n else setShowError(true);\n }}\n variant=\"default\"\n >\n Save and continue\n \n
    \n
    \n );\n}\n\nexport { onSubmit };\n","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport fetchApi from \"../components/Lib/api\";\n\n// Styled Components\nconst UserButtonContainer = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst UserButtonStyled = styled.button`\n display: flex;\n align-items: center;\n border: none;\n cursor: pointer;\n`;\n\nconst UserInfoWrapper = styled.div`\n display: flex;\n align-items: baseline;\n gap: 10px;\n`;\n\nconst Avatar = styled.img`\n width: 30px;\n height: 30px;\n border-radius: 50%;\n margin-right: 10px;\n`;\n\nconst UserInitials = styled.div`\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background: #e5f2a2;\n color: #717945;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: bold;\n margin-right: 10px;\n`;\n\nconst UserInfo = styled.div`\n flex: 1;\n text-align: left;\n`;\n\nconst UserName = styled.span`\n display: block;\n color: #48504b;\n font-weight: var(--font-weight-h3);\n font-size: var(--font-size-h4);\n`;\n\nconst UserEmail = styled.span`\n display: block;\n font-size: 12px;\n color: #888;\n`;\n\nconst DropdownIcon = styled.span`\n margin-left: 10px;\n display: flex;\n align-items: center;\n`;\n\nconst DropdownMenu = styled.div`\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n background-color: #fff;\n border: 1px solid #ccc;\n border-radius: 8px;\n margin-top: 5px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n`;\n\nconst DropdownLink = styled.a`\n display: block;\n padding: 10px;\n text-decoration: none;\n color: #333;\n font-size: 14px;\n\n &:hover {\n background-color: #f2f2f2;\n }\n`;\n\nconst DropdownButton = styled.button`\n display: block;\n padding: 10px;\n text-decoration: none;\n color: #333;\n font-size: 14px;\n width: 100%;\n text-align: left;\n\n &:hover {\n background-color: #f2f2f2;\n }\n`;\n\nexport const handleLogout = async () => {\n try {\n localStorage.removeItem(\"feedbackDismissed\")\n const response = await fetchApi(\"/users/sign_out\", \"DELETE\", {});\n\n if (response) {\n // Redirect using JavaScript after successful logout\n window.location.href = \"/connect\"; // Redirect to the homepage\n } else {\n console.error(\"Logout error:\", \"Failed to log out\");\n }\n } catch (error) {\n console.error(\"Logout error:\", error.message);\n }\n};\n\nconst UserButton = ({\n userName = \"\",\n userEmail = \"\",\n userImage = null,\n dashboard = false\n}) => {\n const [dropdownOpen, setDropdownOpen] = useState(false);\n\n const toggleDropdown = () => {\n setDropdownOpen(!dropdownOpen);\n };\n\n const getInitials = (name) => {\n const nameArray = name.split(\" \");\n const initials = nameArray.map((n) => n[0]).join(\"\");\n return initials.toUpperCase();\n };\n\n return (\n \n \n {userImage ? (\n \n ) : (\n {getInitials(userName)}\n )}\n \n \n {userName}\n {userEmail}\n \n \n {!dropdownOpen ? (\n \n \n \n ) : (\n \n \n \n )}\n \n \n \n\n {dropdownOpen && (\n \n {dashboard && Go to Dashboard}\n {!dashboard && <>Profile\n Settings}\n Sign Out\n \n )}\n \n );\n};\n\nexport default UserButton;\n","import React, { useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport WarningIcon from \"./assets/wAlert.svg\";\nimport UserImage from \"./assets/userIcon.png\";\nimport CancelIcon from \"./assets/wCancel.svg\";\nimport useUserStore from \"../stores/userStore\";\nimport moment from \"moment\";\nimport { Indicator } from \"@mantine/core\";\nimport { IconPencil } from \"@tabler/icons-react\";\nimport fetchApi from \"../components/Lib/api\";\n\nconst WarningBanner = styled.div`\n border-radius: 6px;\n border: 1px solid #ffd2d2;\n display: flex;\n padding: 10px 19px;\n margin-bottom: 20px;\n align-items: flex-start;\n gap: 10px;\n align-self: stretch;\n background: #fdecec;\n color: #815454;\n font-size: 12px;\n\n a {\n color: #3566fd;\n text-decoration: none;\n font-weight: bold;\n\n &:hover {\n color: #0056b3;\n }\n }\n`;\n\nconst UserProfile = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 20px;\n`;\n\nconst Avatar = styled.img`\n border-radius: 10px;\n background: #ffd013;\n width: 100px;\n height: 100px;\n padding: 10px;\n`;\n\nconst UserName = styled.div`\n display: flex;\n flex-direction: column;\n\n h3 {\n font-size: 24px;\n color: #000;\n margin-block: 8px;\n }\n\n p {\n font-size: 12px;\n color: #494949;\n width: 80ch;\n margin-block: 2px;\n }\n`;\n\nconst UserHeader = () => {\n const fileInputRef = useRef(null);\n const [userImage, setUserImage] = useState(null);\n const { user } = useUserStore((state) => state.user);\n const { setUser } = useUserStore((state) => state.setUser);\n const [showWarning, setShowWarning] = useState(!user.profile_complete);\n const currentDate = moment().format(\"dddd, MMMM Do YYYY\");\n\n const handleFileChange = async (event) => {\n // Handle file changes here\n const selectedFile = event.target.files[0];\n console.log(selectedFile);\n setUserImage(URL.createObjectURL(selectedFile));\n\n try {\n const formData = new FormData();\n formData.append(`user[avatar]`, selectedFile);\n const response = await fetchApi(\n `/api/users/update_image`,\n \"PUT\",\n formData,\n true\n );\n\n if (response.ok) {\n const responseData = await response.json();\n console.log(\"Success:\", responseData);\n } else {\n console.error(\"HTTP error! Failed to submit form\");\n }\n } catch (error) {\n console.error(\"Error:\", error.message);\n }\n };\n\n return (\n
    \n {showWarning && (\n \n \"Warning\"\n Your profile is partially completed, you need to complete your profile\n first to get access to most of the features in the dashboard.{\" \"}\n Complete Your Profile Now\n setShowWarning(false)}\n />\n \n )}\n \n }\n size={30}\n onClick={() => fileInputRef.current.click()}\n >\n fileInputRef.current.click()}\n alt=\"User Avatar\"\n />\n \n \n

    Welcome Back, {user.first_name}!

    \n

    \n Keep collaborating, creating, and bringing your ideas to life. Let’s\n dive into your projects!\n

    \n

    {currentDate}

    \n
    \n
    \n \n
    \n );\n};\n\nexport default UserHeader;\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport ShareIcon from \"./assets/share.svg\";\nimport StarIcon from \"./assets/star.svg\";\nimport LocIcon from \"./assets/loc.svg\";\nimport noImage from \"./assets/noImage.jpeg\";\n\n// Modified CardGrid to be responsive\nconst CardGrid = styled.div`\n display: grid;\n gap: 10px;\n padding: 20px;\n background-color: #fff;\n border-radius: 10px;\n transition: all 0.3s ease;\n\n @media (min-width: 1204px) {\n grid-template-columns: repeat(4, 1fr);\n }\n\n @media (min-width: 768px) and (max-width: 1203px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 767px) {\n grid-template-columns: repeat(1, 1fr);\n }\n`;\n\nconst Card = styled.a`\n position: relative;\n overflow: hidden;\n border-radius: 10px;\n transition: transform 0.3s ease, box-shadow 0.3s ease;\n cursor: pointer;\n\n &:hover {\n transform: translateY(-8px);\n }\n`;\n\nconst ImageWrapper = styled.div`\n position: relative;\n height: 380px;\n background-size: cover;\n background-position: center;\n padding: 10px;\n border-radius: 6px;\n`;\n\nconst Content = styled.div`\n position: absolute;\n bottom: 10px;\n left: 10px;\n right: 10px;\n padding: 15px;\n background-color: rgba(255, 255, 255, 0.8);\n backdrop-filter: blur(5px);\n z-index: 1;\n border-radius: 6px;\n`;\n\nconst TagWrapper = styled.div`\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n`;\n\nconst Tag = styled.span`\n background-color: rgba(255, 255, 255, 0.8);\n backdrop-filter: blur(5px);\n color: #1e293b;\n font-size: 10px;\n\n border-radius: 50px;\n padding: 4px 10px;\n`;\n\nconst Title = styled.h3`\n font-size: 14px;\n line-height: 18px;\n margin: 8px 0;\n color: #111827;\n font-weight: 700;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n\nconst Description = styled.p`\n font-size: 11px;\n color: #494949;\n margin-bottom: 8px;\n line-height: 16.5px;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n\nconst Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-block: 10px;\n font-size: 11px;\n color: #494949;\n`;\n\nconst FooterLeft = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n`;\n\nconst Location = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\nconst FooterRight = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\nconst Actions = styled.div`\n display: flex;\n gap: 8px;\n opacity: 0;\n max-height: 0;\n overflow: hidden;\n transition: all 0.3s ease;\n\n ${Card}:hover & {\n opacity: 1;\n max-height: 40px; /* Adjust based on your button height */\n margin-top: 16px;\n }\n`;\n\nconst ActionButton = styled.button`\n background-color: rgba(255, 255, 255, 0.8);\n backdrop-filter: blur(5px);\n border-radius: 4px;\n padding: 6px;\n\n &:hover {\n background: #2563eb;\n }\n`;\n\nconst PrimaryButton = styled.button`\n border-radius: 4px;\n background: #3566fd;\n color: #fff;\n padding: 4px 10px;\n font-size: 11px;\n width: 100%;\n z-index: 100;\n &:hover {\n background-color: #fff;\n color: #007bff;\n }\n`;\n\nconst SecondaryButton = styled.button`\n border-radius: 4px;\n border: 1px solid #d0d5e5;\n background: #fff;\n padding: 4px 10px;\n font-size: 11px;\n color: #3566fd;\n width: 100%;\n &:hover {\n background-color: #007bff;\n color: #ffffff;\n }\n`;\n\n// Container needs to be responsive\nconst Container = styled.div`\n position: relative;\n display: flex;\n gap: 20px;\n\n @media (max-width: 767px) {\n flex-direction: column;\n }\n`;\n\n// Wrapper for cards section\nconst CardsSection = styled.div`\n flex: 1;\n overflow: hidden;\n`;\n\nconst SliderWrapper = styled.div`\n display: flex;\n transition: transform 0.5s ease;\n transform: translateX(-${(props) => props.slideIndex * 100}%);\n`;\n\nconst NavigationButton = styled.button`\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n background: white;\n border: none;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);\n z-index: 2;\n opacity: ${(props) => (props.disabled ? 0.5 : 1)};\n pointer-events: ${(props) => (props.disabled ? \"none\" : \"auto\")};\n\n ${(props) =>\n props.direction === \"left\"\n ? `\n left: -20px;\n `\n : `\n right: -20px;\n `}\n`;\n\n// Adjust pagination wrapper for mobile\nconst PaginationWrapper = styled.div`\n position: absolute;\n right: -60px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n flex-direction: column;\n gap: 8px;\n opacity: ${(props) => (props.expanded ? 1 : 0)};\n transition: opacity 0.3s ease;\n\n @media (max-width: 767px) {\n position: static;\n transform: none;\n flex-direction: row;\n justify-content: center;\n margin-top: 20px;\n }\n`;\n\nconst PaginationButton = styled.button`\n width: 32px;\n height: 32px;\n border: 1px solid #3566fd;\n background: ${(props) => (props.active ? \"#3566fd\" : \"white\")};\n color: ${(props) => (props.active ? \"white\" : \"#3566fd\")};\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.3s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n background: ${(props) => (props.active ? \"#2563eb\" : \"#f0f0f0\")};\n }\n`;\n\nconst ViewMoreButton = styled.button`\n margin: 20px auto;\n display: block;\n padding: 4px 12px;\n background: #3566fd;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 14px;\n transition: background-color 0.3s ease;\n\n &:hover {\n background: #2563eb;\n }\n`;\n\nconst GridContainer = styled.div`\n display: grid;\n gap: 10px;\n transition: all 0.3s ease;\n`;\n\nconst StartupCards = ({ allCards = [] }) => {\n const [expanded, setExpanded] = useState(false);\n const [currentPage, setCurrentPage] = useState(1);\n const [slideIndex, setSlideIndex] = useState(0);\n const [cardsPerRow, setCardsPerRow] = useState(4);\n\n console.log(allCards);\n\n useEffect(() => {\n const updateCardsPerRow = () => {\n if (window.innerWidth >= 1204) {\n setCardsPerRow(4);\n } else if (window.innerWidth >= 768) {\n setCardsPerRow(3);\n } else {\n setCardsPerRow(1);\n }\n };\n\n updateCardsPerRow();\n window.addEventListener(\"resize\", updateCardsPerRow);\n return () => window.removeEventListener(\"resize\", updateCardsPerRow);\n }, []);\n\n // Duplicate your cards array for demonstration\n // const allCards = [...Array(16)].map((_, index) => ({\n // ...cards[index % cards.length],\n // title: cards[index % cards.length] .title+ \" \" + index,\n // id: index\n // }));\n\n const cardsPerPage = expanded ? cardsPerRow * 2 : cardsPerRow;\n const totalPages = Math.ceil(allCards.length / cardsPerPage);\n\n const handlePrevSlide = () => {\n if (!expanded && slideIndex > 0) {\n setSlideIndex(slideIndex - 1);\n }\n };\n\n const handleNextSlide = () => {\n if (\n !expanded &&\n slideIndex < Math.ceil(allCards.length / cardsPerRow) - 1\n ) {\n setSlideIndex(slideIndex + 1);\n }\n };\n\n const handlePageChange = (page) => {\n setCurrentPage(page);\n };\n\n const handleViewMoreClick = () => {\n setExpanded(!expanded);\n setSlideIndex(0);\n setCurrentPage(1);\n };\n\n const visibleCards = expanded\n ? allCards.slice(\n (currentPage - 1) * cardsPerPage,\n currentPage * cardsPerPage\n )\n : allCards.slice(slideIndex * cardsPerRow, (slideIndex + 1) * cardsPerRow);\n\n return (\n
    \n \n \n {!expanded && (\n <>\n \n ←\n \n = Math.ceil(allCards.length / cardsPerRow) - 1\n }\n >\n →\n \n \n )}\n\n \n \n {visibleCards.map((card, index) => (\n {\n // If we didn't click a button, navigate to the main card link\n if (!e.target.closest('button')) {\n window.location.href = `${\n card.entity === \"Project\" ? \"/project_entities\" : \"/startup_entities\"\n }/${card.slug}`;\n }\n }}\n key={card.id}\n >\n \n \n \n {[\n card.entity,\n card.industry ? card.industry : card.project_type,\n ].map((tag, i) => (\n {tag}\n ))}\n \n \n \"Share\"\n \n
    \n \n {card.name}\n {card.description}\n \n {card.is_owner ? (\n {\n e.stopPropagation();\n window.location.href = `${\n card.entity === \"Project\"\n ? \"/project_entities\"\n : \"/startup_entities\"\n }/${card.slug}?invite_open=true`;\n }}\n >\n Invite Collaborators\n \n ) : (\n <>\n {\n e.stopPropagation();\n window.location.href = `${\n card.entity === \"Project\"\n ? \"/project_entities\"\n : \"/startup_entities\"\n }/${card.slug}?manage_request=true`;\n }}\n >\n Join {card.entity}\n \n {\n e.stopPropagation();\n // Add your follow handler here\n }}\n >\n Follow\n \n \n )}\n \n \n \n
    \n \n {card.openings_length + \" Open positions\"}\n \n \n {card.city + \" \" + card.country}\n \n \n \n \n {4}\n \n
    \n \n ))}\n \n \n \n\n \n {[...Array(totalPages)].map((_, index) => (\n handlePageChange(index + 1)}\n >\n {index + 1}\n \n ))}\n \n \n\n \n {expanded ? \"Show Less\" : \"View More\"}\n \n \n );\n};\n\nexport default StartupCards;\n\n// const cards = [\n// {\n// image: s1,\n// tags: [\"Startup\", \"Founding Team\"],\n// category: \"Art and Design\",\n// title: \"Sed et lacus justo. Pellentesque quis magna.\",\n// description:\n// \"Donec sed sapien eu mi elementum vestibulum ut at quam. Integer at...\",\n// positions: \"4 Open positions\",\n// location: \"Rhône-Alpes, France\",\n// rating: 4.0,\n// status: \"Join StartUp\",\n// },\n// {\n// image: s2,\n// tags: [\"Project\", \"Contributor\"],\n// category: \"Art and Design\",\n// title: \"Aenean gravida urna eget libero tincidunt vulputate.\",\n// description:\n// \"Donec sed sapien eu mi elementum vestibulum ut at quam. Integer at...\",\n// positions: \"No seats available\",\n// location: \"Notre Dame Du Laus, Canada\",\n// rating: 4.0,\n// status: \"View Project\",\n// },\n// {\n// image: s1,\n// tags: [\"Idea\", \"Intern\"],\n// category: \"Industrial Design\",\n// title: \"Pellentesque habitant morbi.\",\n// description:\n// \"Donec sed sapien eu mi elementum vestibulum ut at quam. Integer at...\",\n// positions: \"6 Open positions\",\n// location: \"Vancouver, Canada\",\n// rating: 4.0,\n// status: \"Apply Now\",\n// },\n// {\n// image: s2,\n// tags: [\"Prototype\", \"Renewable Energy\"],\n// category: \"Construction\",\n// title: \"Etiam pretium tellus in sem.\",\n// description:\n// \"Donec sed sapien eu mi elementum vestibulum ut at quam. Integer at...\",\n// positions: \"2 Open positions\",\n// location: \"Tirana, Albania\",\n// rating: 4.0,\n// status: \"View Prototype\",\n// },\n// ];\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport FinancialIcon from \"./assets/tags.svg\";\n// import CraftIcon from \"./assets/craft.svg\";\n// import MusicIcon from \"./assets/music.svg\";\n// import EnergyIcon from \"./assets/energy.svg\";\n// import ResearchIcon from \"./assets/research.svg\";\n// import DesignIcon from \"./assets/design.svg\";\n// import SolutionsIcon from \"./assets/solutions.svg\";\n// import HistoryIcon from \"./assets/history.svg\";\n\nconst TagsWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n justify-content: center;\n`;\n\nconst Tag = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n background-color: #fff;\n border: 1px solid #e2e8f0;\n border-radius: 24px;\n padding: 10px 20px;\n font-size: 11px;\n color: #334155;\n font-weight: 500;\n white-space: nowrap;\n transition: background-color 0.3s ease;\n\n &:hover {\n background-color: #e2e8f0;\n }\n\n img {\n width: 16px;\n height: 16px;\n }\n`;\n\nconst SearchTags = () => {\n const tags = [\n { icon: FinancialIcon, label: \"Financial\" },\n { icon: FinancialIcon, label: \"Traditional Art & Craft\" },\n { icon: FinancialIcon, label: \"Traditional Classical Music\" },\n { icon: FinancialIcon, label: \"Renewable Energy\" },\n { icon: FinancialIcon, label: \"Startup Research\" },\n { icon: FinancialIcon, label: \"Industrial Design\" },\n { icon: FinancialIcon, label: \"Sustainable Solutions\" },\n { icon: FinancialIcon, label: \"Ancient History & Philosophy\" },\n ];\n\n return (\n \n {tags.map((tag, index) => (\n \n {tag.label}\n {tag.label}\n \n ))}\n \n );\n};\n\nexport default SearchTags;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport Logo from \"./Logo\";\nimport HelpIcon from \"./assets/help.svg\"; \nimport AccountIcon from \"./assets/settings.svg\";\n\nconst Footer = styled.footer`\n display: grid;\n grid-template-columns: 1fr 2fr;\n background-color: unset;\n padding: 20px;\n margin: 80px auto;\n width: 100%;\n`;\n\nconst FooterLeft = styled.div`\n display: flex;\n`;\n\nconst FooterRight = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n\n > div {\n display: flex;\n justify-content: space-around;\n }\n\n`;\n\nconst FooterLinks = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n a {\n text-decoration: none;\n color: var(--color-background-main);\n\n &:hover {\n color: #6c45e7;\n }\n }\n`;\n\nconst HelpSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nconst HelpItem = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n\n .help-text p {\n font-weight: var(--font-weight-h5);\n }\n\n .help-text a {\n color: var(--color-background-main);\n\n &:hover {\n text-decoration: underline;\n }\n }\n`;\n\nconst FooterIcon = styled.img`\n width: 20px;\n height: 20px;\n`;\n\nconst FooterRights = styled.p`\n font-size: 12px;\n color: #48504b;\n margin-top: 10px;\n margin-inline: auto;\n`;\n\nconst StartupFooter = () => {\n return (\n \n );\n};\n\nexport default StartupFooter;\n","import {\n UnstyledButton,\n Menu,\n rem,\n Button,\n Group,\n Stack,\n createStyles,\n ScrollArea,\n Modal,\n Loader,\n Select,\n} from \"@mantine/core\";\nimport {\n IconBrain,\n IconChevronDown,\n IconRocket,\n} from \"@tabler/icons-react\";\n\nimport React, { useEffect, useMemo, useState } from \"react\";\n\nimport fetchApi from \"../../Lib/api\";\nimport {\n countries,\n industries,\n sorting,\n stages,\n tags,\n} from \"../../Onboarding/data\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport { DatePicker } from \"@mantine/dates\";\nimport moment from \"moment\";\nimport { useTranslation } from \"react-i18next\";\nimport useUserStore from \"../../../stores/userStore\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport UserHeader from \"../../../stories/UserHeader\";\nimport SidebarAction from \"../../../stories/SidebarAction\";\nimport StartupCards from \"../../../stories/StartupCards\";\nimport SearchTags from \"../../../stories/SearchTags\";\nimport styled from \"styled-components\";\nimport StartupFooter from \"../../../stories/StartupFooter\";\nimport { useFilterStore } from \"../../../stores/useFilterStore\";\n\nconst HeadTitle = styled.h3`\n font-size: 20px;\n font-weight: bold;\n color: #333333;\n margin-bottom: 6px;\n`;\n\nconst Subtitle = styled.p`\n font-size: 12px;\n color: #666666;\n margin-bottom: 16px;\n max-width: 80ch;\n`;\n\nconst useStyles = createStyles((theme) => ({\n control: {\n minWidth: rem(150),\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: [theme.spacing.xs, theme.spacing.md],\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n transition: \"background-color 150ms ease\",\n backgroundColor: \"white\",\n \"&[data-expanded]\": {\n backgroundColor: theme.colors.gray[2],\n },\n \"&:hover\": {\n backgroundColor: theme.colors.gray[2],\n },\n },\n label: {\n fontWeight: 600,\n fontSize: theme.fontSizes.sm,\n color: theme.colors.gray[6],\n marginRight: theme.spacing.md,\n },\n icon: {\n transition: \"transform 150ms ease\",\n transform: \"rotate(0deg)\",\n \"[data-expanded] &\": {\n transform: \"rotate(180deg)\",\n },\n },\n}));\n\n// export function DropDownSelect({\n// selectType,\n// selectData,\n// setFilterParams,\n// filterKey,\n// date,\n// }) {\n// const [opened, setOpened] = useState(false);\n// const [selected, setSelected] = useState(selectType);\n// const { classes, cx } = useStyles();\n\n// const handleSelect = (item) => {\n// if (item.label === \"All\") {\n// setSelected(selectType);\n// setFilterParams((prevParams) => {\n// const { [filterKey]: _, ...updatedParams } = prevParams;\n\n// return updatedParams;\n// });\n// return;\n// }\n// setSelected(item);\n// setFilterParams((p) => ({ ...p, [filterKey]: item.value || item.label }));\n// console.log({ [filterKey]: item.label });\n// };\n\n// const items = selectData.map((item, index) => (\n// handleSelect(item)} key={item.label + index}>\n// {item.label}\n// \n// ));\n\n// return (\n// setOpened(true)}\n// onClose={() => setOpened(false)}\n// radius=\"md\"\n// width={date ? \"unset\" : \"target\"}\n// withArrow\n// withinPortal\n// >\n// \n// \n// \n// {selected.label}\n// \n// \n// \n// \n// \n// {!date ? (\n// <>\n// {selected.label}\n// {items}\n// \n// ) : (\n// \n// handleSelect({ label: \"All\" })}\n// >\n// Reset\n// \n// \n// handleSelect({ label: moment(d).format(\"YYYY-MM-DD\") })\n// }\n// />\n// \n// )}\n// \n// \n// );\n// }\n\nexport function DropDownSelect({ selectType, selectData, filterKey, date }) {\n // Get the setter and the current filterParams from the global store\n const setFilterParam = useFilterStore((state) => state.setFilterParam);\n const filterParams = useFilterStore((state) => state.filterParams);\n\n // Use the current value from the global store, falling back to the default provided by selectType\n const currentValue = filterParams[filterKey] || (selectType?.value || \"\");\n\n // Transform selectData to the shape expected by Mantine's Select:\n // an array of objects with { value, label }\n const data = selectData.map((item) => ({\n value: item.value || item.label,\n label: item.label,\n }));\n\n // Handle changes from the Select component\n const handleChange = (value) => {\n if (value === \"All\" || !value) {\n // If \"All\" or an empty value is selected, remove the filter\n setFilterParam(filterKey, undefined);\n } else {\n setFilterParam(filterKey, value);\n }\n };\n\n return (\n \n );\n}\n\nexport function InputWithButton({ placeholder, setFilterParams, buttonText }) {\n const [value, setValue] = useState(\"\");\n return (\n
    \n
    \n \n \n \n
    \n setValue(e.target.value)}\n onKeyDown={(e) => {\n if (e.target.value.trim() === \"\") {\n setFilterParams((prevParams) => {\n const { search_term: _, ...updatedParams } = prevParams;\n\n return updatedParams;\n });\n return;\n }\n if (e.key === \"Enter\" && e.target.value.trim() !== \"\") {\n setFilterParams((p) => ({\n ...p,\n search_term: e.target.value.trim(),\n }));\n }\n }}\n />\n {\n if (value.trim() === \"\") {\n setFilterParams((prevParams) => {\n const { search_term: _, ...updatedParams } = prevParams;\n\n return updatedParams;\n });\n return;\n }\n setFilterParams((p) => ({\n ...p,\n search_term: value.trim(),\n }));\n }}\n className=\"text-white absolute end-2.5 inset-y-2.5 bg-blue-800 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2 \"\n >\n {buttonText}\n \n
    \n );\n}\n\nexport function CreateAction({}) {\n const [opened, { close, open }] = useDisclosure(false);\n const { user } = useUserStore((state) => state.user);\n const { t } = useTranslation();\n\n return (\n <>\n {opened && (\n \n
    \n

    \n {t(\"modal.profile_access_message\")}\n

    \n
    \n
    \n \n \n {t(\"modal.complete_profile_button\")}\n \n
    \n \n )}\n \n }\n size=\"xl\"\n >\n {t(\"startups.validate_and_create\")}\n \n }\n size=\"xl\"\n component={user.profile_complete ? \"a\" : \"button\"}\n href={user.profile_complete ? \"/project_entities/new\" : undefined}\n onClick={!user.profile_complete ? open : undefined}\n >\n {t(\"startups.create_project\")}\n \n \n \n );\n}\n\nconst useFilteredStartups = (filterParams) => {\n // Convert filterParams to query string\n const params = new URLSearchParams();\n for (const key in filterParams) {\n params.append(`q[${key}]`, filterParams[key]);\n }\n const queryString = params.toString();\n\n return useQuery({\n queryKey: [\"filtered-startups\", queryString], // Query key includes filter params\n queryFn: async () => {\n const response = await fetchApi(\n `/startup_entities?${queryString}`,\n \"GET\"\n );\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || \"Failed to fetch startups\");\n }\n\n return await response.json();\n },\n retry: 1, // Retry once on failure\n staleTime: 5 * 60 * 1000, // Data is fresh for 5 minutes\n cacheTime: 30 * 60 * 1000, // Cache inactive data for 30 minutes\n });\n};\n\nexport default function Startups() {\n const [startups, setStartups] = useState([]);\n const [similarStartups, setSimilarStartups] = useState([]);\n const [searchStartups, setSearchStartups] = useState([]);\n const [filterParams, setFilterParams] = useState({});\n\n const { t, i18n } = useTranslation();\n\n const memoizedSelectData = useMemo(\n () => ({\n countries: [{ label: \"All\", value: \"All\" }, ...countries],\n industries: [{ label: \"All\", value: \"All\" }, ...industries],\n tags: [{ label: \"All\", value: \"All\" }, ...tags],\n stages: [{ label: \"All\", value: \"All\" }, ...stages],\n sorting: [{ label: \"All\", value: \"All\" }, ...sorting],\n }),\n []\n );\n\n const { data, isLoading, isError, error } = useFilteredStartups(filterParams);\n\n console.log(data);\n\n useEffect(() => {\n if (data) {\n setStartups(data);\n setSimilarStartups(data[\"Similar Startups\"] || []);\n setSearchStartups(data[\"Exact Matches\"] || []);\n }\n }, [data, setStartups, setSimilarStartups, setSearchStartups]);\n\n if (isLoading) {\n return (\n \n );\n }\n\n if (isError) {\n return
    Error: {error.message}
    ;\n }\n\n return (\n <>\n
    \n \n \n
    \n Recently Viewed Projects\n \n Easily revisit and manage the projects you’ve recently viewed.\n \n \n
    \n\n \n\n
    \n Explore Projects Tailored for You\n \n Discover projects aligned with your passions and skill set. Let’s\n make a difference together.\"\n \n \n
    \n\n
    \n Local Collaborations Near You\n \n Join nearby projects and connect with teams in your community or\n region.\n \n \n
    \n\n \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport {\n Button,\n TextInput,\n PasswordInput,\n Group,\n MantineProvider,\n Divider,\n} from \"@mantine/core\";\nimport { useForm } from \"@mantine/form\";\nimport fetchApi from \"../Lib/api\";\nimport Notification from \"../Lib/Notification\";\nimport { GoogleButton } from \"./GoogleButton\";\nimport { LinkedInButton } from \"./LinkedInButton\";\n\nexport default function SignUpModal({ token, tenant_name, tenant_logo }) {\n const [notification, setNotification] = useState(null);\n const [loading, setLoading] = useState(false);\n\n const form = useForm({\n initialValues: {\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n password: \"\",\n password_confirmation: \"\",\n },\n validate: {\n first_name: (val) =>\n val.trim().length > 0 ? null : \"First name is required\",\n last_name: (val) =>\n val.trim().length > 0 ? null : \"Last name is required\",\n email: (val) => (/^\\S+@\\S+$/.test(val) ? null : \"Invalid email\"),\n password: (val) =>\n val.length >= 6\n ? null\n : \"Password should include at least 6 characters\",\n password_confirmation: (val, values) =>\n val === values.password ? null : \"Password confirmation does not match\",\n },\n });\n\n const handleSocialLogin = async (provider) => {\n setNotification(null);\n setLoading(true);\n\n const urlParams = new URLSearchParams(window.location.search);\n const token = urlParams.get(\"token\");\n\n try {\n // Redirect to backend social login endpoint\n const response = await fetchApi(`/users/auth/${provider}?token=${token}`, \"GET\");\n\n if (response.ok) {\n const data = await response.json();\n\n // Redirect to authorization URL or handle successful login\n if (data.redirect_url) {\n window.location.href = data.redirect_url;\n } else {\n setNotification({\n type: \"success\",\n content: `${provider} login initiated`,\n });\n }\n } else {\n const errorData = await response.json();\n setNotification({\n type: \"failure\",\n content: errorData.error || `${provider} login failed`,\n });\n }\n } catch (error) {\n console.error(`${provider} Login Error:`, error);\n setNotification({\n type: \"failure\",\n content: `Network error with ${provider} login`,\n });\n } finally {\n setLoading(false);\n }\n };\n\n const handleSubmit = async (values) => {\n setNotification(null);\n setLoading(true);\n\n try {\n const response = await fetchApi(`/users?redirect_to=${encodeURIComponent('/ai_validation_tool')}`, \"POST\", {\n user: { ...values },\n token,\n });\n\n if (response.ok) {\n const data = await response.json();\n form.reset();\n setNotification({\n type: \"success\",\n content: \"Signup successful. Please check your email to confirm.\",\n });\n // window.location.href = data.redirect_to || \"/dashboard/#/\";\n } else {\n const errorData = await response.json();\n setNotification({\n type: \"failure\",\n content: errorData.error || \"Signup failed\",\n });\n }\n } catch (error) {\n console.error(\"Signup Error:\", error);\n setNotification({\n type: \"failure\",\n content: \"Network error. Please try again.\",\n });\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n
    \n {notification && }\n
    \n {tenant_logo && (\n \n )}\n \n
    \n

    \n Welcome to {tenant_name || \"Nowcollab\"}!\n

    \n
    \n\n \n \n \n \n \n \n\n \n\n \n\n \n handleSocialLogin(\"google\")}>\n Google\n \n handleSocialLogin(\"linkedin\")}\n >\n LinkedIn\n \n \n \n
    \n );\n}\n","import { SimpleGrid, Stack, Title } from \"@mantine/core\";\nimport React, { useEffect, useState } from \"react\";\nimport StartupCard from \"./Card\";\nimport fetchApi from \"../../Lib/api\";\n\nexport default function OwnStartups() {\n const [startups, setStartups] = useState([]);\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await fetchApi(\n `/startup_entities/user_owner_startup_entities`,\n \"GET\"\n );\n\n if (response.ok) {\n const res = await response.json();\n // setNotification({ type: \"success\", content: msg });\n console.log(res);\n setStartups(res);\n // window.location.href = \"/startup_entities/1\";\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n fetchData(); // Call the async function immediately\n }, []);\n\n return (\n
    \n
    \n \n \n Own Projects\n \n \n {startups.map(({ startup_entity, openings_length }) => (\n \n ))}\n \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport PlusIcon from \"./assets/plus.svg\";\nimport UserIcon from \"./assets/radix.svg\";\nimport IdeaIcon from \"./assets/idea.svg\";\nimport BalancedImage from \"./assets/createProject.png\";\nimport { Button, Modal, Tooltip } from \"@mantine/core\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport useUserStore from \"../stores/userStore\";\nimport { useTranslation } from \"react-i18next\";\nimport useLayoutStore from \"../stores/useLayoutStore\";\nimport { IconArrowRightCircle } from \"@tabler/icons-react\";\n\n// ─────────────────────────────────────────────\n// Styled Components\n// ─────────────────────────────────────────────\n\nconst BaseStyles = styled.button`\n border-radius: 4px;\n display: flex;\n padding: ${({ isToggle }) => (isToggle ? \"8px\" : \"10px 20px\")};\n align-items: center;\n justify-content: center;\n gap: 10px;\n align-self: stretch;\n cursor: pointer;\n text-decoration: none;\n border: none;\n font-family: inherit;\n font-size: inherit;\n transition: all 0.2s ease;\n\n img {\n margin-right: ${({ isToggle }) => (isToggle ? \"0\" : \"8px\")};\n width: ${({ isToggle }) => (isToggle ? \"20px\" : \"auto\")};\n height: ${({ isToggle }) => (isToggle ? \"20px\" : \"auto\")};\n }\n\n span {\n display: ${({ isToggle }) => (isToggle ? \"none\" : \"inline\")};\n }\n`;\n\nconst PrimaryButton = styled(BaseStyles)`\n background: #3566fd;\n color: #fff;\n max-width: ${({ isToggle }) => (isToggle ? \"40px\" : \"220px\")};\n\n &:hover {\n background-color: #007bff;\n color: #ffffff;\n }\n`;\n\nconst SecondaryButton = styled(BaseStyles)`\n border: 1px solid #d0d5e5;\n background: transparent;\n max-width: ${({ isToggle }) => (isToggle ? \"40px\" : \"220px\")};\n\n &:hover {\n background-color: #007bff;\n color: #ffffff;\n }\n`;\n\nconst ValidateButton = styled(BaseStyles)`\n border: 1px solid #d0d5e5;\n background: #fff;\n backdrop-filter: blur(3px);\n width: ${({ isToggle }) => (isToggle ? \"40px\" : \"100%\")};\n height: ${({ isToggle }) => (isToggle ? \"40px\" : \"auto\")};\n padding: ${({ isToggle }) => (isToggle ? \"8px\" : \"10px 20px\")};\n\n &:hover {\n background-color: #0056b3;\n color: #ffffff;\n }\n\n img {\n width: ${({ isToggle }) => (isToggle ? \"20px\" : \"auto\")};\n height: ${({ isToggle }) => (isToggle ? \"20px\" : \"auto\")};\n margin-right: ${({ isToggle }) => (isToggle ? \"0\" : \"8px\")};\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ isToggle }) => (isToggle ? \"5px\" : \"10px\")};\n border-radius: 10px;\n background: #fff;\n padding: ${({ isToggle }) => (isToggle ? \"5px\" : \"10px\")};\n`;\n\nconst Header = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 10px;\n`;\n\nconst Content = styled.div`\n border-radius: 10px;\n background: #f6f8ff;\n padding: ${({ isToggle }) => (isToggle ? \"0px\" : \"20px\")};\n text-align: left;\n display: flex;\n flex-direction: ${({ isToggle }) => (isToggle ? \"row\" : \"column\")};\n align-items: ${({ isToggle }) => (isToggle ? \"center\" : \"flex-start\")};\n justify-content: ${({ isToggle }) => (isToggle ? \"center\" : \"flex-start\")};\n`;\n\nconst Title = styled.h3`\n font-size: 14px;\n font-weight: bold;\n color: #333333;\n margin-bottom: 8px;\n display: ${({ isToggle }) => (isToggle ? \"none\" : \"block\")};\n`;\n\nconst Subtitle = styled.p`\n font-size: 12px;\n color: #666666;\n margin-bottom: 16px;\n max-width: 80ch;\n display: ${({ isToggle }) => (isToggle ? \"none\" : \"block\")};\n`;\n\nconst NewUserContainer = styled.div`\n display: flex;\n padding: 20px 21px;\n align-items: center;\n gap: 40px;\n align-self: stretch;\n border-radius: 8px;\n background: #fff;\n`;\n\nconst ImageContainer = styled.img`\n width: 400px;\n height: 200px;\n border-radius: 10px;\n background: #f6f8ff;\n`;\n\nconst NewUserContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\n// ─────────────────────────────────────────────\n// Tooltip Custom Styles\n// ─────────────────────────────────────────────\n\nconst tooltipStyles = {\n tooltip: {\n backgroundColor: \"#F6F8FF\",\n color: \"var(--color-button-accent)\",\n border: \"1px solid var(--color-button-accent)\",\n },\n};\n\n// ─────────────────────────────────────────────\n// StyledButton Component with Tooltip Support\n// ─────────────────────────────────────────────\n\nconst StyledButton = ({\n variant = \"primary\",\n tooltipLabel, // new prop for tooltip text\n href,\n onClick,\n children,\n ...props\n}) => {\n const { isToggle } = useLayoutStore();\n\n const ButtonComponent = {\n primary: PrimaryButton,\n secondary: SecondaryButton,\n validate: ValidateButton,\n }[variant];\n\n // Convert children to an array to extract text and icon\n const childrenArray = React.Children.toArray(children);\n const buttonIcon = childrenArray.find(\n (child) => React.isValidElement(child) && child.type === \"img\"\n );\n const buttonText = childrenArray.find((child) => typeof child === \"string\");\n\n const renderIcon = () => {\n if (!buttonIcon) return null;\n // When collapsed and tooltipLabel is provided, wrap the icon with a tooltip.\n if (isToggle && tooltipLabel) {\n return (\n \n {buttonIcon}\n \n );\n }\n return buttonIcon;\n };\n\n const renderContent = () => (\n <>\n {!isToggle && buttonText && {buttonText}}\n {renderIcon()}\n \n );\n\n if (href) {\n return (\n \n {renderContent()}\n \n );\n }\n\n return (\n \n {renderContent()}\n \n );\n};\n\n// ─────────────────────────────────────────────\n// ValidateSection Component\n// ─────────────────────────────────────────────\n\nconst ValidateSection = () => {\n const { isToggle } = useLayoutStore();\n const { user } = useUserStore((state) => state.user);\n const [opened, { open }] = useDisclosure(false);\n\n return (\n \n Validate Your Idea\n \n Test the strength of your idea and gain actionable feedback.\n \n\n \n {!isToggle && \"Validate\"}\n \"Validate\n \n \n );\n};\n\n// ─────────────────────────────────────────────\n// SidebarAction Component\n// ─────────────────────────────────────────────\n\nconst SidebarAction = ({ sidebar = false }) => {\n const [opened, { close, open }] = useDisclosure(false);\n const { user, startups } = useUserStore((state) => state.user);\n const { t } = useTranslation();\n\n return (\n <>\n \n
    \n

    \n {t(\"modal.profile_access_message\")}\n

    \n
    \n
    \n \n \n {t(\"modal.complete_profile_button\")}\n \n
    \n
    \n\n {!sidebar ? (\n \n \n \n
    \n Kickstart Your Collaboration!\n \n Create a new project with ease—whether it’s for a university assignment, a startup idea, or a collaborative team effort.\n Let's bring your ideas to life!\n \n
    \n \n Create Project\n \"Create\n \n
    \n
    \n ) : (\n \n
    \n \n Create New Project\n \"Create\n \n\n \n Looking for an Expert\n \"Looking\n \n
    \n\n \n
    \n )}\n \n );\n};\n\nexport default SidebarAction;\n","import React from \"react\";\nimport { Routes, Route } from \"react-router-dom\";\nimport HashLayout from \"../Lib/HashLayout\";\nimport QueryProvider from \"../Lib/QueryClientProvider\";\nimport UserProvider from \"../Lib/UserContext\";\nimport Dashboard from \"../Dashbaord/Dashboard\";\nimport Startups from \"../Dashbaord/DashboardPages/Startups\";\nimport Forums from \"../Dashbaord/DashboardPages/Forums\";\nimport Members from \"../Dashbaord/DashboardPages/Members\";\nimport Resources from \"../Dashbaord/DashboardPages/Resources\";\nimport Activity from \"../Dashbaord/DashboardPages/activities\";\nimport Messages from \"../Dashbaord/DashboardPages/Messages\";\nimport Workspace from \"../Dashbaord/DashboardPages/Workspace\";\nimport Settings from \"../Profile/Pages/Settings\";\nimport ProfilePage from \"../Profile/Profile\";\nimport Calender from \"../Dashbaord/DashboardPages/Calender\";\n\nexport default function DashbaordPage() {\n return (\n \n \n \n \n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n \n \n \n \n );\n}\n","import React from \"react\";\nimport MDEditor from \"@uiw/react-md-editor\";\nimport rehypeSanitize from \"rehype-sanitize\";\n\nconst Code = ({ inline, children = [], className, ...props }) => {\n return {children};\n};\n\nexport default function Markdown({\n value,\n setValue,\n visibleDragbar,\n hideToolbar,\n preview,\n height,\n textareaProps,\n placeholder,\n}) {\n // const [value, setValue] = React.useState(mdMermaid);\n return (\n
    \n {!hideToolbar || setValue ? (\n \n ) : (\n \n )}\n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport App from \"../../channels/consumer\";\nimport { Dialog } from \"@mantine/core\";\nimport moment from \"moment\";\nimport useUserStore from \"../../stores/userStore\";\n\nconst ChatComponent = ({ startupId, setOpenChat }) => {\n const [messages, setMessages] = useState([]);\n const [newMessageContent, setNewMessageContent] = useState(\"\");\n const [startupChannel, setStartupChannel] = useState();\n const {\n user: { id },\n } = useUserStore((state) => state.user);\n\n useEffect(() => {\n // Fetch initial messages from the server\n fetchMessages();\n\n // Subscribe to the StartupEntityChannel for real-time updates\n const subscription = App.subscriptions.create(\n { channel: \"StartupEntityChannel\", startup_entity_slug: startupId },\n {\n received: handleReceivedMessage,\n }\n );\n\n setStartupChannel(subscription);\n\n return () => {\n // Unsubscribe from the channel when the component is unmounted\n subscription.unsubscribe();\n };\n }, [startupId]);\n\n const fetchMessages = () => {\n fetch(`/startup_entities/${startupId}/messages`)\n .then((response) => response.json())\n .then((data) => setMessages(data.messages))\n .catch((error) => console.error(\"Error fetching messages:\", error));\n };\n\n const handleReceivedMessage = (data) => {\n // Update state to include the newly received message\n setMessages((prevMessages) => [data.message, ...prevMessages]);\n };\n\n const handleInputChange = (event) => {\n setNewMessageContent(event.target.value);\n };\n\n const sendMessage = () => {\n // Send message via WebSocket\n startupChannel.send({\n content: newMessageContent,\n user_id: id,\n });\n // Clear input field after sending message\n setNewMessageContent(\"\");\n };\n\n return (\n setOpenChat(false)}\n withCloseButton\n className=\"max-h-[63vh]\"\n size=\"xl\"\n radius=\"md\"\n withBorder\n p={0}\n pt={35}\n >\n
    \n
      \n {messages.map((message, index) => {\n return message?.user?.id != id ? (\n
    • \n
    \n\n
    \n
    \n

    \n {message.user.first_name} {message.user.last_name}\n

    \n

    {message.content}

    \n
    \n \n {moment(message.created_at).fromNow()}\n \n
    \n \n ) : (\n \n
    \n
    \n

    {message.content}

    \n
    \n \n {moment(message.created_at).fromNow()}\n \n
    \n \n );\n })}\n \n\n
    \n {\n if (event.key === \"Enter\") {\n sendMessage();\n }\n }}\n />\n
    \n \n \n );\n};\n\nexport default ChatComponent;\n","import {\n Text,\n ActionIcon,\n Tooltip,\n Button,\n Checkbox,\n Group,\n Modal,\n Select,\n Stack,\n TextInput,\n Textarea,\n ThemeIcon,\n Title,\n Grid,\n Collapse,\n rem,\n HoverCard,\n} from \"@mantine/core\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport fetchApi from \"../../Lib/api\";\nimport { IconCategoryPlus, IconPlus } from \"@tabler/icons-react\";\nimport Notification from \"../../Lib/Notification\";\nimport { UserContext } from \"../../Lib/UserContext\";\nimport { IconChevronDown } from \"@tabler/icons-react\";\nimport { emojis } from \"../../Onboarding/data\";\nimport ModerationUsers from \"./Forums/ModerationUsers\";\nimport ModerationActivity from \"./Forums/ModerationActivity\";\nimport ModerationHistory from \"./Forums/ModerationHistory\";\nimport RenderTopics from \"./Forums/Topics\";\nimport moment from \"moment\";\nimport useUserStore from \"../../../stores/userStore\";\n\nfunction InputWithButton({ placeholder, setSearch }) {\n const handleSearch = async (value) => {\n try {\n const response = await fetchApi(`/hub/?q=${value}`, \"GET\");\n\n if (response.ok) {\n const res = await response.json();\n // setNotification({ type: \"success\", content: msg });\n console.log(res);\n setSearch({ value, result: res.topic_views });\n // setUnreadTopics(res.topic_views);\n // setGeneralBoards(res);\n // window.location.href = \"/startup_entities/1\";\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n return (\n
    \n
    \n \n \n \n
    \n {\n if (e.key === \"Enter\" && e.target.value.trim() !== \"\") {\n handleSearch(e.target.value.trim());\n }\n }}\n />\n
    \n );\n}\n\nfunction ChannelsGroup({ collection: { group, messageboards }, setToggle }) {\n const [opened, setOpened] = useState(false);\n\n const items = messageboards.map((mb, i) => (\n \n \n \n setToggle({\n page: \"topics\",\n context: {\n channel: group.name,\n slug: mb.slug || mb.messageboard.slug,\n name: mb.name || mb.messageboard.name,\n },\n })\n }\n >\n {mb.name || mb.messageboard.name}\n \n \n \n
    \n
    \n \n
    \n \n {mb.name || mb.messageboard.name}\n \n
    \n {mb.description || mb.messageboard.description}\n
    \n
    \n
    \n
    \n
    \n Topics: {mb.topics_count}\n
    \n
    \n Posts: {mb.posts_count}\n
    \n
    \n Last activity:{\" \"}\n {moment(mb.updated_at || mb.messageboard.updated_at).fromNow()}\n
    \n
    \n
    \n
    \n \n ));\n\n return (\n <>\n \n \n setToggle({\n page: \"topics\",\n\n context: { id: group.id, channel: group.name },\n })\n }\n key={group.name}\n // className=\"block px-2 py-2 rounded-sm text-xs font-medium text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-dark-600\"\n >\n {group.emoji}\n {group.name}\n \n setOpened(!opened)}\n stroke={1.5}\n style={{\n width: rem(16),\n height: rem(16),\n transform: opened ? \"rotate(180deg)\" : \"none\",\n }}\n />\n \n {items}\n \n );\n}\n\nconst CreateEditCategory = ({ groups, setChannelsGroup }) => {\n const [openCreateCategory, setOpenCategory] = useState(false);\n const [notification, setNotification] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [channelName, setChannelName] = useState(\"\");\n const [channelDesc, setChannelDesc] = useState(\"\");\n const [channelGroup, setChannelGroup] = useState(null);\n const [checked, setChecked] = useState(false);\n\n const handleRequest = async () => {\n try {\n const response = await fetchApi(\"/hub/create_messageboard\", \"POST\", {\n messageboard: {\n name: channelName,\n description: channelDesc,\n messageboard_group_id: channelGroup,\n locked: checked,\n },\n });\n\n if (response.ok) {\n const res = await response.json();\n setChannelsGroup(res.groups);\n setNotification({\n type: \"success\",\n content: channelName + \" Created Successfully\",\n });\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n return (\n <>\n {openCreateCategory && (\n setOpenCategory(false)}\n withCloseButton={false}\n >\n {notification && }\n \n Create a New Channel\n setChannelName(event.currentTarget.value)}\n />\n setChannelDesc(event.currentTarget.value)}\n maxRows={5}\n minRows={3}\n />\n setChannelGroup(value)}\n withinPortal\n />\n setChecked(event.currentTarget.checked)}\n />\n\n {notification ? (\n {\n setOpenCategory(false);\n setNotification(null);\n }}\n >\n Close\n \n ) : (\n \n Create\n \n )}\n \n \n )}\n\n setOpenCategory(true)}\n loading={openCreateCategory && loading}\n >\n Create a sub channel\n \n \n );\n};\n\nconst CreateCategoryGroup = ({ setChannelsGroup }) => {\n const [openCreateCategoryGroup, setOpenCategoryGroup] = useState(false);\n const [notification, setNotification] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [groupName, setGroupName] = useState(\"\");\n const [emoji, setEmoji] = useState(\"\");\n\n const handleRequest = async () => {\n try {\n const response = await fetchApi(\n \"/hub/admin/messageboard_groups\",\n \"POST\",\n {\n messageboard_group: {\n name: groupName,\n emoji: emoji.split(\" \")[0],\n },\n }\n );\n\n if (response.ok) {\n const res = await response.json();\n setChannelsGroup(res.groups);\n setNotification({\n type: \"success\",\n content: groupName + \" Created successfully\",\n });\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n return (\n <>\n {openCreateCategoryGroup && (\n setOpenCategoryGroup(false)}\n withCloseButton={false}\n >\n {notification && }\n \n Create a New Channel Group\n setGroupName(event.currentTarget.value)}\n />\n\n \n\n {notification ? (\n {\n setOpenCategoryGroup(false);\n setNotification(null);\n }}\n >\n Close\n \n ) : (\n \n Create\n \n )}\n \n \n )}\n\n setOpenCategoryGroup(true)}\n loading={openCreateCategoryGroup && loading}\n >\n Create a channel\n \n \n );\n};\n\nfunction SettingsForm({ messageboard }) {\n const [followNewTopics, setFollowNewTopics] = useState(false);\n const [followMentionedTopics, setFollowMentionedTopics] = useState(false);\n const [emailNotificationsForTopics, setEmailNotificationsForTopics] =\n useState([]);\n const [mfollowNewTopics, setMFollowNewTopics] = useState(false);\n const [mfollowMentionedTopics, setMFollowMentionedTopics] = useState(false);\n const [memailNotificationsForTopics, setMEmailNotificationsForTopics] =\n useState(false);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n async function fetchData() {\n let url;\n\n if (messageboard.slug) url = `/hub/${messageboard.slug}/preferences/edit`;\n else url = \"/hub/preferences/edit\";\n try {\n const response = await fetchApi(url, \"GET\");\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setFollowNewTopics(res.user_preferences.auto_follow_topics);\n setFollowMentionedTopics(\n res.user_preferences.follow_topics_on_mention\n );\n setEmailNotificationsForTopics(\n res.user_preferences.notifications_for_followed_topics\n );\n\n if (messageboard.slug) {\n setMFollowNewTopics(res.messageboard_preference.auto_follow_topics);\n setMFollowMentionedTopics(\n res.messageboard_preference.follow_topics_on_mention\n );\n setMEmailNotificationsForTopics(\n res.messageboard_preference.notifications_for_followed_topics\n );\n }\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n } finally {\n setLoading(false);\n }\n }\n fetchData();\n }, [messageboard]);\n\n const handleRequest = async () => {\n let url;\n\n if (messageboard.slug) url = `/hub/${messageboard.slug}/preferences`;\n else url = \"/hub/preferences\";\n\n const requestBody = {\n user_preferences_form: {\n auto_follow_topics: +followNewTopics,\n follow_topics_on_mention: +followMentionedTopics,\n notifications_for_followed_topics_attributes:\n emailNotificationsForTopics,\n },\n };\n\n if (messageboard.slug) {\n requestBody.user_preferences_form.messageboard_auto_follow_topics =\n +mfollowNewTopics;\n requestBody.user_preferences_form.messageboard_follow_topics_on_mention =\n +mfollowMentionedTopics;\n requestBody.user_preferences_form.messageboard_notifications_for_followed_topics_attributes =\n memailNotificationsForTopics;\n }\n\n try {\n const response = await fetchApi(url, \"PATCH\", requestBody);\n\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n // setNotification({\n // type: \"success\",\n // content: groupName + \" Created successfully\",\n // });\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during preference update:\", error);\n }\n };\n\n if (loading) return <>;\n\n return (\n
    \n \n setFollowNewTopics(event.currentTarget.checked)}\n />\n \n setFollowMentionedTopics(event.currentTarget.checked)\n }\n />\n \n setEmailNotificationsForTopics((prev) => {\n const { checked } = event.target;\n const newState = [...prev];\n newState[0] = {\n ...newState[0],\n enabled: checked,\n };\n return newState;\n })\n }\n />\n \n\n {messageboard && messageboard.slug && (\n <>\n \n Settings for {messageboard.name}\n \n\n \n \n setMFollowNewTopics(event.currentTarget.checked)\n }\n />\n \n setMFollowMentionedTopics(event.currentTarget.checked)\n }\n />\n \n setMEmailNotificationsForTopics((prev) => {\n const { checked } = event.target;\n const newState = [...prev];\n newState[0] = {\n ...newState[0],\n enabled: checked,\n };\n return newState;\n })\n }\n />\n \n \n )}\n\n \n
    \n );\n}\n\nexport default function Forums() {\n const [channelsGroup, setChannelsGroup] = useState([]);\n const [groups, setGroups] = useState([]);\n const [toggle, setToggle] = useState({\n page: \"topics\",\n context: {},\n });\n const { user } = useUserStore((state) => state.user);\n\n useEffect(() => {\n async function fetchData() {\n try {\n const response = await fetchApi(\"/hub\", \"GET\");\n if (response.ok) {\n const res = await response.json();\n console.log(res);\n setChannelsGroup(res.groups);\n setGroups(\n res.groups.map((g) => ({\n label: g.group.emoji + \" \" + g.group.name,\n value: g.group.id,\n }))\n );\n } else {\n console.error((await response.json()).error);\n }\n } catch (error) {\n console.error(\"Error during data fetching:\", error);\n }\n }\n fetchData();\n }, []);\n\n const handleToggle = (p) => {\n setToggle(p);\n };\n\n const collectionLinks = channelsGroup.map((cg, i) => (\n \n ));\n\n return (\n
    \n
    \n \n \n \n \n \n Forum\n \n \n\n \n \n \n {user.admin && (\n \n )}\n \n \n \n \n {toggle.page === \"topics\" && (\n \n )}\n\n {toggle.page === \"admin\" && }\n \n \n \n \n \n
    \n
    \n );\n}\n\nfunction Moderation({ context }) {\n return (\n <>\n {context.select === \"users\" && }{\" \"}\n {context.select === \"activity\" && }\n {context.select === \"history\" && }\n \n );\n}\n","import Filter from \"bad-words\";\n\n// List of additional bad words to be filtered\nconst additionalBadWords = [\n \"asshole\",\n \"bastard\",\n \"bitch\",\n \"crap\",\n \"cunt\",\n \"damn\",\n \"dick\",\n \"douchebag\",\n \"fuck\",\n \"fucker\",\n \"fucking\",\n \"motherfucker\",\n \"nigger\",\n \"shit\",\n \"shitty\",\n \"slut\",\n \"whore\",\n \"wanker\",\n \"cock\",\n \"pussy\",\n \"nigga\",\n \"twat\",\n \"dickhead\",\n \"arsehole\",\n \"bollocks\",\n \"bugger\",\n \"faggot\",\n \"prick\",\n \"shithead\",\n \"tit\",\n \"tosser\",\n \"wank\",\n \"wanky\",\n \"cum\",\n \"dildo\",\n \"dyke\",\n \"fag\",\n \"fagg0t\",\n \"fag1t\",\n \"faggit\",\n \"fagz\",\n \"faig\",\n \"faigs\",\n \"farts\",\n \"goddamn\",\n \"hell\",\n \"homo\",\n \"jackoff\",\n \"jerk\",\n \"jizz\",\n \"knob\",\n \"lesbo\",\n \"masturbate\",\n \"nazi\",\n \"nutsack\",\n \"penis\",\n \"phuck\",\n \"queer\",\n \"retard\",\n \"schlong\",\n \"screw\",\n \"semen\",\n \"sh1t\",\n \"sh1tter\",\n \"shiz\",\n \"skank\",\n \"smegma\",\n \"spic\",\n \"spunk\",\n \"tits\",\n \"titties\",\n \"tranny\",\n \"vagina\",\n \"wop\",\n \"wuss\",\n \"anus\",\n \"assface\",\n \"asswipe\",\n \"azzhole\",\n \"biatch\",\n \"blowjob\",\n \"boffing\",\n \"butthole\",\n \"clit\",\n \"clitoris\",\n \"cockhead\",\n \"cocksucker\",\n \"coochie\",\n \"coon\",\n \"cornhole\",\n \"crotch\",\n \"cuck\",\n \"cumshot\",\n \"cunillingus\",\n \"cunnilingus\",\n \"dickhead\",\n \"dicksucker\",\n \"dike\",\n \"dipshit\",\n \"douche\",\n \"dumbass\",\n \"dumbfuck\",\n \"dumbshit\",\n \"dyk\",\n \"fagbag\",\n \"fagtard\",\n \"felching\",\n \"felcher\",\n \"fister\",\n \"flamer\",\n \"foreskin\",\n \"fudgepacker\",\n \"gangbang\",\n \"gook\",\n \"guido\",\n \"handjob\",\n \"hardcoresex\",\n \"headfuck\",\n \"humping\",\n \"jap\",\n \"juggalo\",\n \"junglebunny\",\n \"kike\",\n \"kunt\",\n \"lesbian\",\n \"licker\",\n \"minge\",\n \"muffdiver\",\n \"munging\",\n \"numbnuts\",\n \"orgy\",\n \"piss\",\n \"pissflaps\",\n \"polesmoker\",\n \"poon\",\n \"poonani\",\n \"punani\",\n \"punta\",\n \"rape\",\n \"rapist\",\n \"rimjob\",\n \"scat\",\n \"shitface\",\n \"shitfaced\",\n \"shitfuck\",\n \"shithead\",\n \"shithole\",\n \"shithouse\",\n \"shitspitter\",\n \"shitstain\",\n \"slapper\",\n \"slutbag\",\n \"smeghead\",\n \"spic\",\n \"spick\",\n \"spoog\",\n \"spooge\",\n \"spunkbubble\",\n \"taint\",\n \"titty\",\n \"tosspot\",\n \"twatface\",\n \"twats\",\n \"twunt\",\n \"vaj\",\n \"vulva\",\n \"wang\",\n \"wanker\",\n \"wanky\",\n \"wazoo\",\n \"wetback\",\n \"whorebag\",\n \"whoreface\",\n \"wog\",\n \"wop\",\n \"wussbag\",\n \"wussy\",\n \"wuzzie\",\n // Add more words if needed\n];\n\nconst configureFilter = () => {\n const filter = new Filter();\n filter.addWords(...additionalBadWords);\n return filter;\n};\n\nconst cleanText = (text) => {\n if (!text) return text;\n const filter = configureFilter();\n return filter.clean(text);\n};\n\nexport { cleanText };\n","import React from \"react\";\nimport { Routes, Route } from \"react-router-dom\";\nimport Layout from \"../Lib/Layout\";\nimport AuthenticationForm from \"../Authentication/LoginRegisterForm\";\nimport ChangePasswordForm from \"../Authentication/ChangePasswordForm\";\nimport CreatePasswordForInviteUser from \"../Authentication/CreatePasswordForInviteUser\";\nimport QueryProvider from \"../Lib/QueryClientProvider\";\n\nexport default function AuthenticationPage() {\n return (\n \n \n \n } />\n } />\n }\n />\n \n \n \n );\n}\n","import { useState, useEffect } from \"react\";\n\nconst useGoogleDrive = ({ clientId, apiKey, appId }) => {\n const [googleAccessToken, setGoogleAccessToken] = useState(null);\n const [isGoogleAuthenticated, setIsGoogleAuthenticated] = useState(false);\n const [pickerInited, setPickerInited] = useState(false);\n const [tokenClient, setTokenClient] = useState(null);\n\n useEffect(() => {\n const loadGoogleAPIs = () => {\n // Load the Google API script\n const gapiScript = document.createElement(\"script\");\n gapiScript.src = \"https://apis.google.com/js/api.js\";\n gapiScript.onload = initPicker;\n document.body.appendChild(gapiScript);\n\n // Load the Google Identity Services script\n const gisScript = document.createElement(\"script\");\n gisScript.src = \"https://accounts.google.com/gsi/client\";\n gisScript.onload = initTokenClient;\n document.body.appendChild(gisScript);\n };\n\n loadGoogleAPIs();\n\n // Check for a stored access token and ensure it hasn't expired.\n const storedToken = localStorage.getItem(\"accessToken\");\n const tokenExpiry = localStorage.getItem(\"tokenExpiry\");\n if (storedToken && new Date().getTime() < tokenExpiry) {\n setGoogleAccessToken(storedToken);\n setIsGoogleAuthenticated(true);\n }\n\n return () => {\n // Cleanup: remove the scripts when the component unmounts.\n const googleScript = document.querySelector('script[src=\"https://apis.google.com/js/api.js\"]');\n const gisScript = document.querySelector('script[src=\"https://accounts.google.com/gsi/client\"]');\n if (googleScript) document.body.removeChild(googleScript);\n if (gisScript) document.body.removeChild(gisScript);\n };\n }, []);\n\n // Initialize the Google Picker API once gapi is loaded.\n const initPicker = () => {\n if (window.gapi) {\n window.gapi.load(\"picker\", () => setPickerInited(true));\n }\n };\n\n // Initialize the OAuth token client using a read-only scope,\n // since we only need to let the user select files.\n const initTokenClient = () => {\n if (window.google && window.google.accounts && window.google.accounts.oauth2) {\n const client = window.google.accounts.oauth2.initTokenClient({\n client_id: clientId,\n // Use a read-only scope for Google Drive; this minimizes required permissions.\n scope: \"https://www.googleapis.com/auth/drive.readonly\",\n prompt: \"consent\", // Always prompt the user for consent\n callback: (response) => {\n if (response.error) {\n console.error(\"Error obtaining OAuth token:\", response);\n return;\n }\n const expiresIn = response.expires_in * 1000;\n const expiryTime = new Date().getTime() + expiresIn;\n\n localStorage.setItem(\"accessToken\", response.access_token);\n localStorage.setItem(\"tokenExpiry\", expiryTime);\n\n setGoogleAccessToken(response.access_token);\n setIsGoogleAuthenticated(true);\n },\n });\n setTokenClient(client);\n } else {\n console.error(\"Google OAuth client library not available\");\n }\n };\n\n // Request an access token silently.\n const silentAuthenticate = () => {\n if (!tokenClient) {\n console.error(\"Token client not initialized\");\n return;\n }\n tokenClient.requestAccessToken();\n };\n\n // Create and display the Google Drive file picker.\n // The view is configured to include only files (folders are excluded).\n const createPicker = (pickerCallback) => {\n if (!pickerInited || !googleAccessToken) {\n console.error(\"Picker API or token not available\");\n return;\n }\n\n const docsView = new window.google.picker.DocsView(window.google.picker.ViewId.DOCS)\n .setIncludeFolders(false) // Exclude folders from the view\n .setSelectFolderEnabled(false); // Disable folder selection\n\n const picker = new window.google.picker.PickerBuilder()\n .addView(docsView)\n .setOAuthToken(googleAccessToken)\n .setDeveloperKey(apiKey)\n .setAppId(appId)\n .setCallback(pickerCallback)\n .build();\n\n picker.setVisible(true);\n };\n\n return {\n isGoogleAuthenticated,\n createPicker,\n silentAuthenticate,\n };\n};\n\nexport default useGoogleDrive;\n","import { Title } from \"@mantine/core\";\nimport React from \"react\";\n\nexport default function MyStuff() {\n return My Stuff Page;\n}\n","import { Slider, rem } from \"@mantine/core\";\nimport { IconChecks } from \"@tabler/icons-react\";\nimport React, { useEffect, useState } from \"react\";\n\nconst ProgressBar = ({ categories }) => {\n const [needlePosition, setNeedlePosition] = useState(0);\n\n useEffect(() => {\n let totalSubCategories = 0;\n let filledSubCategories = 0;\n\n categories?.forEach((category) => {\n totalSubCategories += category.sub_categories.length;\n filledSubCategories += category.sub_categories.filter(\n (subCat) => subCat.response\n ).length;\n });\n\n // Calculate needle position\n const newPosition = (filledSubCategories / totalSubCategories) * 100;\n setNeedlePosition(newPosition);\n }, [categories]);\n\n return (\n }\n color=\"indigo\"\n marks={[\n { value: 20, label: \"20%\" },\n { value: 50, label: \"50%\" },\n { value: 80, label: \"80%\" },\n ]}\n value={needlePosition}\n label={null}\n thumbSize={26}\n styles={{ thumb: { borderWidth: rem(2), padding: rem(3) } }}\n mb={28}\n />\n );\n};\n\nexport default ProgressBar;\n","import React from \"react\";\nimport { Routes, Route } from \"react-router-dom\";\nimport Layout from \"../Lib/Layout\";\nimport UserProvider from \"../Lib/UserContext\";\nimport Onboarding from \"../Onboarding/Onboarding\";\nimport QueryProvider from \"../Lib/QueryClientProvider\";\n\nexport default function AuthenticationPage() {\n return (\n \n \n \n \n } />\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport useUserStore from \"../stores/userStore\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport { useForm } from \"@mantine/form\";\nimport {\n ActionIcon,\n CopyButton,\n Tooltip,\n Button,\n Modal,\n Stack,\n TextInput,\n Checkbox,\n Title,\n Group,\n Text,\n} from \"@mantine/core\";\nimport { IconUsersPlus } from \"@tabler/icons-react\";\nimport fetchApi from \"../components/Lib/api\";\nimport Notification from \"../components/Lib/Notification\";\nimport useLayoutStore from \"../stores/useLayoutStore\";\n\n// Styled Components\nconst StartupButtonContainer = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n`;\n\nconst DropdownIcon = styled.span`\n margin-left: 10px;\n display: flex;\n align-items: center;\n`;\n\nconst DropdownMenu = styled.div`\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n background-color: #fff;\n border: 1px solid #ccc;\n border-radius: 8px;\n margin-top: 5px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 100;\n`;\n\nconst DropdownLink = styled.a`\n display: flex;\n align-items: center;\n padding: 10px;\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n width: 100%;\n\n &:hover {\n background-color: #f2f2f2;\n }\n`;\n\nfunction InviteUser({ activeDomain }) {\n const [notification, setNotification] = useState(null);\n const [opened, { open, close }] = useDisclosure(false);\n\n const form = useForm({\n initialValues: {\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n addToSubdomain: false,\n },\n // Optionally, you can add validation rules here\n validate: {\n firstName: (value) => (value ? null : \"First name is required\"),\n lastName: (value) => (value ? null : \"Last name is required\"),\n email: (value) => (/^\\S+@\\S+$/.test(value) ? null : \"Invalid email\"),\n },\n });\n\n \n const handleSubmit = async (values) => {\n try {\n const response = await fetchApi(\n \"/users/sessions/invitations/create_and_invite\",\n \"POST\",\n {\n user: {\n first_name: values.firstName,\n last_name: values.lastName,\n email: values.email,\n add_to_subdomain: values.addToSubdomain,\n },\n active_domain_name: activeDomain ? activeDomain.name : \"\",\n }\n );\n\n if (response.ok) {\n const msg = (await response.json()).message;\n setNotification({ type: \"success\", content: msg });\n console.log(\"User invited successfully:\", res);\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Error inviting user:\", errorData.error);\n }\n } catch (error) {\n console.error(\"Error during user invitation:\", error);\n }\n form.reset();\n };\n\n return (\n <>\n {opened && \n \n {notification && }\n Invite User\n \n Enter the details for the user you wish to invite.\n \n\n {/* If activeDomain is valid, show the copy invite link option */}\n {activeDomain && activeDomain.signup_url && (\n <>\n \n Alternatively, you can copy the invite link below if you prefer\n not to fill out the form:\n \n \n {({ copied, copy }) => (\n \n )}\n \n \n )}\n\n \n \n \n \n \n {/* Show checkbox only if user is on a subdomain (activeDomain valid) */}\n {activeDomain && activeDomain.signup_url && (\n \n )}\n handleSubmit(form.values)}\n variant=\"default\"\n fullWidth\n className=\"w-full px-12\"\n disabled={\n !form.values.firstName ||\n !form.values.lastName ||\n !form.values.email\n }\n >\n Submit Invitation\n \n \n }\n\n \n \n \n \n \n \n );\n}\n\nconst StartupButton = () => {\n const {\n user: {\n startups,\n domains,\n user: { full_name, avatar },\n },\n } = useUserStore();\n\n const [startupDropdownOpen, setStartupDropdownOpen] = useState(false);\n const [domainDropdownOpen, setDomainDropdownOpen] = useState(false);\n const [activeStartup, setActiveStartup] = useState(null);\n const [activeDomain, setActiveDomain] = useState(null);\n const { isToggle } = useLayoutStore(); \n\n // Insert a main site domain entry\n const domainsWithMain = [{ name: \"Main Site\", subdomain: \"\" }, ...domains];\n\n useEffect(() => {\n const currentHostname = window.location.hostname;\n const currentSubdomain =\n currentHostname.split(\".\")[0] === \"example\"\n ? \"\"\n : currentHostname.split(\".\")[0];\n const matchedDomain = domainsWithMain.find(\n (domain) => domain.domain === currentSubdomain\n );\n\n if (matchedDomain) setActiveDomain(matchedDomain);\n else setActiveDomain(domainsWithMain[0]);\n\n const currentSlug = window.location.pathname.split(\"/\").pop();\n const matchedStartup = startups.find(\n (startup) => startup.slug === currentSlug\n );\n\n if (matchedStartup) setActiveStartup(matchedStartup);\n }, []);\n\n const toggleStartupDropdown = () => {\n setStartupDropdownOpen(!startupDropdownOpen);\n setDomainDropdownOpen(false);\n };\n\n const toggleDomainDropdown = () => {\n setDomainDropdownOpen(!domainDropdownOpen);\n setStartupDropdownOpen(false);\n };\n\n const handleStartupSwitch = (startup) => {\n setActiveStartup(startup);\n setStartupDropdownOpen(false);\n };\n\n const handleDomainSwitch = (domain) => {\n if (domain === activeDomain) {\n setDomainDropdownOpen(false);\n return;\n }\n\n setActiveDomain(domain);\n setDomainDropdownOpen(false);\n\n const currentUrl = new URL(window.location.href);\n const domainParts = currentUrl.hostname.split(\".\");\n\n // Remove port if it exists\n const port = currentUrl.port ? `:${currentUrl.port}` : \"\";\n\n // Extract the base domain (last two parts of the hostname)\n // For example, from \"sub.example.com\", get \"example.com\"\n const baseDomain =\n domainParts.length > 2\n ? domainParts.slice(-2).join(\".\")\n : currentUrl.hostname;\n\n // Construct the new URL\n let newHostname;\n if (domain.domain) {\n newHostname = `${domain.domain}.${baseDomain}`;\n } else {\n newHostname = baseDomain;\n }\n\n // Reconstruct the full URL with the new hostname and port\n const newUrl = `${currentUrl.protocol}//${newHostname}${port}${currentUrl.pathname}${currentUrl.search}${currentUrl.hash}`;\n\n window.location.href = newUrl;\n };\n\n if (isToggle) return <>\n\n return (\n \n {/* Domain Selector */}\n
    \n
    \n \n
    \n
    \n {/* Display active domain or main site */}\n {activeDomain?.name}\n
    \n \n \n \n \n \n \n {/* Copy invite link button */}\n \n
    \n\n {domainDropdownOpen && (\n \n {domainsWithMain.map((domain, index) => (\n handleDomainSwitch(domain)}\n >\n
    \n {domain.name}\n \n ))}\n
    \n )}\n
    \n
    \n );\n};\n\nexport default StartupButton;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Tooltip } from \"@mantine/core\"; // Import Mantine's Tooltip\nimport CustomNavLink from \"../components/Lib/CustomNavLink\"; // Ensure correct import path\nimport useLayoutStore from \"../stores/useLayoutStore\";\n\nconst NavLinksContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 10px;\n border-radius: 10px;\n background: #fff;\n padding: 10px;\n`;\n\nconst NavLinksWrapper = styled.nav`\n margin-bottom: 20px;\n`;\n\nconst StyledNavLink = styled(CustomNavLink)`\n padding: 10px;\n text-decoration: none;\n color: #000;\n border-radius: 6px;\n font-size: 1rem;\n display: block;\n\n &.active {\n background: #f6f8ff;\n color: var(--color-button-accent);\n font-weight: var(--font-weight-body-2);\n }\n\n &:hover {\n background: #f6f8ff;\n }\n`;\n\nconst InnerNavLink = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n position: relative;\n transition: background-color 0.3s, color 0.3s;\n\n &.active::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n width: 3px;\n background-color: var(--color-button-accent);\n }\n`;\n\nconst NavIcon = styled.img`\n width: 20px;\n height: 20px;\n margin-right: 10px;\n transition: filter 0.3s;\n\n ${StyledNavLink}.active & {\n filter: none;\n }\n\n & {\n filter: brightness(0) grayscale(0);\n }\n`;\n\nconst NavDivider = styled.div`\n border-top: 1px solid #dce5e4;\n margin: 10px 0;\n`;\n\nconst NavLinks = ({ links: { links, active, icons } }) => {\n const { isToggle } = useLayoutStore(); // Get Zustand state\n\n const tooltipStyles = {\n tooltip: {\n backgroundColor: \"#F6F8FF\",\n color: \"var(--color-button-accent)\",\n border: \"1px solid var(--color-button-accent)\",\n },\n };\n\n return (\n \n \n {links.map((link, index) => (\n \n \n \n {icons ? (\n isToggle ? (\n \n
    \n \n
    \n \n ) : (\n
    \n \n
    \n )\n ) : (\n isToggle ? (\n \n \n \n ) : (\n \n )\n )}\n {/* Show text only when not collapsed */}\n {!isToggle && {link.name}}\n \n \n {index === 4 && }\n
    \n ))}\n
    \n
    \n );\n};\n\nexport default NavLinks;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport moneyBagIcon from \"./assets/money-bag.svg\";\nimport { useTranslation } from \"react-i18next\";\n\nconst PitchContainer = styled.div`\n background-color: #ffe86f;\n padding: 15px;\n padding-left: 0px;\n border-radius: 6px;\n text-align: center;\n display: flex;\n gap: 10px;\n justify-content: center;\n max-width: 240px;\n`;\n\nconst PitchIcon = styled.div`\n img {\n display: block;\n max-width: unset;\n }\n`;\n\nconst PitchContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n text-align: left;\n`;\n\nconst PitchHeading = styled.h3`\n font-weight: var(--font-weight-h4);\n color: var(--color-background-card);\n line-height: 21px;\n margin-bottom: 6px;\n`;\n\nconst PitchText = styled.p`\n color: var(--color-background-main);\n`;\n\nconst PitchButton = styled.button`\n background-color: var(--color-container-card-default);\n color: #ddd;\n padding: 6px 15px;\n border: 1px solid transparent;\n border-radius: 4px;\n cursor: not-allowed;\n transition: background-color 0.3s;\n font-weight: var(--font-weight-h4);\n\n // &:hover {\n // background-color: var(--color-button-accent);\n // color: var(--color-container-card-default);\n // }\n`;\n\nconst PitchComponent = () => {\n const { t } = useTranslation();\n return (\n \n \n \"Money\n \n \n
    \n {t(\"sidebar.pitch.title\")}\n {t(\"sidebar.pitch.desc1\")}\n
    \n {t(\"sidebar.pitch.desc2\")}\n {t(\"sidebar.pitch.button\")}\n
    \n
    \n );\n};\n\nexport default PitchComponent;\n","import React from \"react\";\nimport useUserStore from \"../stores/userStore\";\nimport useLayoutStore from \"../stores/useLayoutStore\";\n\nconst MicrosoftSignInButton = () => {\n const { access_token } = useUserStore((state) => state.user);\n const { isToggle } = useLayoutStore();\n\n const handleSignIn = () => {\n // Get the current page URL\n const currentUrl = window.location.href;\n\n // Create a hidden form to submit the POST request\n const form = document.createElement(\"form\");\n form.method = \"POST\";\n form.action = \"/users/auth/microsoft_graph_auth\";\n\n // Add the CSRF token if needed (Rails requires it for POST requests)\n const csrfToken = document\n .querySelector(\"meta[name='csrf-token']\")\n ?.getAttribute(\"content\");\n if (csrfToken) {\n const input = document.createElement(\"input\");\n input.type = \"hidden\";\n input.name = \"authenticity_token\";\n input.value = csrfToken;\n form.appendChild(input);\n }\n\n // Add the current URL to the form (redirect_to)\n const redirectToInput = document.createElement(\"input\");\n redirectToInput.type = \"hidden\";\n redirectToInput.name = \"redirect_to\";\n redirectToInput.value = currentUrl;\n form.appendChild(redirectToInput);\n\n // Append the form to the body and submit it\n document.body.appendChild(form);\n form.submit();\n };\n\n return (\n \n
    \n \n \n \n \n \n \n {!isToggle && (\n \n {access_token ? \"Teams Connected\" : \"Connect Teams\"}\n \n )}\n
    \n {access_token && (\n \n \n \n )}\n \n );\n};\n\nexport default MicrosoftSignInButton;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport StartupButton from \"./StartupButton\";\nimport NavLinks from \"./NavLinks\";\nimport PitchComponent from \"./PitchComponent\";\nimport MicrosoftSignInButton from \"./MicrosoftSignInButton\";\nimport SidebarAction from \"./SidebarAction\";\n\nconst SidebarContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 8px;\n position: sticky !important;\n top: 70px;\n`;\n\nconst Sidebar = ({ startupDetails, navLinks }) => {\n return (\n \n \n \n
    \n \n {/* */}\n
    \n \n
    \n );\n};\n\nexport default Sidebar;\n","import React, { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { useState } from \"react\";\n\nimport homeIcon from \"../../stories/assets/home.svg\";\nimport forumIcon from \"../../stories/assets/forum.svg\";\nimport membersIcon from \"../../stories/assets/members.svg\";\nimport activityIcon from \"../../stories/assets/activity.svg\";\nimport workspaceIcon from \"../../stories/assets/workspace.svg\";\nimport profileIcon from \"../../stories/assets/profile.svg\";\nimport settingsIcon from \"../../stories/assets/settings.svg\";\nimport calenderIcon from \"../../stories/assets/calender.svg\";\n\nimport { upperFirst } from \"@mantine/hooks\";\nimport fetchApi from \"./api\";\nimport { useTranslation } from \"react-i18next\";\nimport Sidebar from \"../../stories/Sidebar\";\nimport useUserStore from \"../../stores/userStore\";\n\nexport const handleLogout = async () => {\n try {\n const response = await fetchApi(\"/users/sign_out\", \"DELETE\", {});\n\n if (response) {\n // Redirect using JavaScript after successful logout\n window.location.href = \"/users/sign_in\"; // Redirect to the homepage\n } else {\n console.error(\"Logout error:\", \"Failed to log out\");\n }\n } catch (error) {\n console.error(\"Logout error:\", error.message);\n }\n};\n\nexport default function NavbarSimple({ navlinks }) {\n const { pathname } = useLocation();\n const { t } = useTranslation();\n const [active, setActive] = useState(navlinks ? \"Profile\" : \"Home\");\n const { user } = useUserStore(\n (state) => state.user\n );\n\n useEffect(() => {\n const parts = pathname.split(\"/\");\n const lastPart = parts[parts.length - 1];\n\n setActive(lastPart.length > 3 ? upperFirst(lastPart) : navlinks ? \"Profile\" : \"Home\");\n }, [pathname]);\n\n return (\n \n );\n}","import React from \"react\";\nimport { Button } from \"@mantine/core\";\n\nconst handleSignIn = (provider) => {\n const railsButton = document.getElementById(`oauth-sign-in-google_oauth2`);\n if (railsButton) {\n railsButton.click();\n }\n};\n\nfunction GoogleIcon(props) {\n return (\n \n \n \n \n \n \n );\n}\n\nexport function GoogleButton(props) {\n return (\n }\n variant=\"default\"\n {...props}\n onClick={handleSignIn}\n />\n );\n}\n","import {\n Avatar,\n Grid,\n Group,\n List,\n Loader,\n RingProgress,\n Stack,\n Text,\n ThemeIcon,\n Title,\n rem,\n} from \"@mantine/core\";\nimport React, { memo, useContext, useEffect, useMemo, useState } from \"react\";\nimport fetchApi from \"../../Lib/api\";\nimport { CreateAction, DropDownSelect } from \"./Startups\";\nimport { useLocation } from \"react-router-dom\";\nimport { IconCircleCheck, IconUsersGroup } from \"@tabler/icons-react\";\nimport moment from \"moment\";\nimport { ResponsiveContainer, AreaChart, Area } from \"recharts\";\nimport useUserStore from \"../../../stores/userStore\";\nimport { useQuery } from \"@tanstack/react-query\";\n\nconst MembersFilters = ({ roles, handleFilterChange }) => {\n const location = useLocation();\n\n // Memoize the selectData props for DropDownSelect components\n const memoizedSelectData = useMemo(\n () => ({\n deadlines: [],\n progress: [{ label: \"Most Progress\" }, { label: \"Least Progress\" }],\n roles: roles.map((r) => ({ label: r })),\n joinDate: [],\n assignedTasks: [],\n }),\n []\n );\n\n return (\n
    \n
    \n \n \n \n \n \n \n \n My Workspace\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n );\n};\n\nconst MemoMembersFilters = memo(MembersFilters);\n\n// Custom hook for fetching startups\nconst useStartups = (filterParams) => {\n // Convert filterParams to query string\n const params = new URLSearchParams();\n for (const key in filterParams) {\n params.append(`q[${key}]`, filterParams[key]);\n }\n const queryString = params.toString();\n\n return useQuery({\n queryKey: ['user-startups', queryString], // Query key includes filter params for caching\n queryFn: async () => {\n const response = await fetchApi(\n `/startup_entities/user_member_startup_entities?${queryString}`,\n 'GET'\n );\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'Failed to fetch startups');\n }\n\n return response.json();\n },\n retry: 1, // Retry once on failure\n staleTime: 50 * 60 * 1000, // Consider data fresh for 5 minutes\n cacheTime: 30 * 60 * 1000, // Keep inactive data in cache for 30 minutes\n });\n};\n\n\nexport default function Workspace() {\n const [filterParams, setFilterParams] = useState({});\n\n const roles = [\n \"Founding Team\",\n \"Contributor\", \n \"Intern/Volunteer\",\n \"Consultant\",\n \"Investor\",\n ];\n\n const role = (index) => roles[index];\n\n const { \n data, \n isLoading, \n isError, \n error \n } = useStartups(filterParams);\n\n if (isLoading) {\n return (\n \n );\n }\n\n if (isError) {\n return (\n
    \n Error: {error.message}\n
    \n );\n }\n\n return (\n
    \n \n
    \n
    \n \n {data?.startup_entities.map(\n ({\n startup_entity: {\n id,\n description,\n name,\n entity_type,\n slug,\n },\n openings_length,\n members,\n member_productivity,\n response_fill_percentage,\n team_role,\n membership_start_date,\n assigned_categories,\n unread_contact_messages_count,\n pending_join_requests,\n }) => (\n \n
    \n \n \n \n \n \n {entity_type === \"Project\" ? (\n \n Project\n \n ) : (\n \n Startup\n \n )}\n \n

    \n {name}\n

    \n \n {role(team_role)} since{\" \"}\n {moment(membership_start_date).format(\n \"MMMM D, YYYY\"\n )}\n \n
    \n

    \n {description}\n

    \n
    \n \n \n {response_fill_percentage}%\n \n }\n />\n
    \n
    \n \n \n \n \n \n \n \n Requests / Messages\n \n {unread_contact_messages_count +\n pending_join_requests}\n \n \n \n \n

    \n Pending tasks\n

    \n \n \n \n }\n >\n {assigned_categories.map((task) => (\n \n {`${task.name} to be completed before ${task.end_date}`}\n \n ))}\n \n
    \n
    \n
    \n
    \n
    \n
    \n )\n )}\n \n \n
    \n
    \n );\n}\n\nconst MembersProductivity = ({ members, member_productivity }) => {\n const {\n user: { id }\n } = useUserStore((state) => state.user);\n const [memId, setMemId] = useState(id);\n\n return (\n \n \n {members.map((m) => (\n setMemId(m.id)}\n onMouseLeave={() => setMemId(id)}\n className=\"cursor-pointer\"\n >\n {m.first_name[0]}\n {m.last_name[0]}\n \n ))}\n \n \n \n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport {\n Avatar,\n Button,\n Card,\n Group,\n Loader,\n Modal,\n Select,\n Stack,\n Text,\n TextInput,\n Textarea,\n UnstyledButton,\n} from \"@mantine/core\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport fetchApi from \"../Lib/api\";\nimport plusIcon from \"../../stories/assets/add.svg\";\nimport Notification from \"../Lib/Notification\";\nimport { IconChevronRight, IconHandGrab, IconSearch } from \"@tabler/icons-react\";\nimport FeatureButton from \"../../stories/FeatureButton\";\nimport useStartupStore from \"../../stores/startupStore\";\nimport styled from \"styled-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst AddMember = styled.button`\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: var(--color-button-accent);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointter;\n`;\n\nexport function InviteMembers() {\n const [value, setValue] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [data, setData] = useState([]);\n const [opened, { open, close }] = useDisclosure(false);\n const [roleOffered, setRoleOffered] = useState(\"\");\n const [reason, setReason] = useState(\"\");\n const [notification, setNotification] = useState(null);\n const [disableButton, setDisableButton] = useState(false);\n const { t } = useTranslation();\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n if (params.has(\"invite_open\")) open();\n }, [open, close]);\n\n const { slug, isMember, isOwner, existingJoinRequest, id } = useStartupStore(\n (state) => ({\n id: state.id,\n slug: state.slug,\n isOwner: state.isOwner,\n isMember: state.isMember,\n existingJoinRequest: state.existingJoinRequest,\n })\n );\n\n const handleChange = async (val) => {\n console.log(val);\n setValue(val);\n setData([]);\n\n if (!val.trim().length || val.trim().length < 3) {\n setLoading(false);\n } else {\n setLoading(true);\n try {\n const response = await fetch(`/api/users/search?search=${val}`);\n const users = await response.json();\n\n setData(users);\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n } finally {\n setLoading(false);\n }\n }\n };\n\n const handleSubmit = async (email) => {\n try {\n const response = await fetchApi(\"/invitations\", \"POST\", {\n email: email,\n inviteable_type: \"StartupEntity\",\n inviteable_id: id,\n });\n\n if (response.ok) {\n const msg = (await response.json()).message;\n setNotification({ type: \"success\", content: msg });\n console.log(\"Invited successful!\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Invitation failed.\");\n }\n } catch (error) {\n console.error(\"Error during Invitation\", error);\n }\n };\n\n const handleInvite = async () => {\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/join_requests/create_for_startup`,\n \"POST\",\n {\n join_request: { reason, role: roleOffered },\n }\n );\n\n if (response.ok) {\n const msg = (await response.json()).message;\n setNotification({ type: \"success\", content: msg });\n setDisableButton(true);\n console.log(\"Request sent successful!\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Request failed.\");\n }\n } catch (error) {\n console.error(\"Error during Sending request\", error);\n }\n };\n\n const sendUserInvite = async () => {\n try {\n const response = await fetchApi(\"/users/invitation\", \"POST\", {\n user: { email: value },\n startup_id: id,\n });\n\n if (response.ok) {\n const msg = (await response.json()).message;\n setNotification({ type: \"success\", content: msg });\n console.log(\"Request sent successful!\");\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(\"Request failed.\");\n }\n } catch (error) {\n console.error(\"Error during Sending request\", error);\n }\n };\n\n return (\n <>\n {opened && (\n {\n setValue(\"\");\n setNotification(null);\n close();\n }}\n size=\"lg\"\n padding={0}\n withCloseButton={false}\n >\n \n \n \n \n {notification && }\n {isOwner || isMember ? (\n <>\n \n }\n variant=\"unstyled\"\n placeholder={t(\"startups_page.invite.placeholder\")}\n // value={value}\n onChange={(event) =>\n handleChange(event.currentTarget.value)\n }\n rightSection={loading ? : null}\n />\n \n
      \n {data.map(\n ({\n first_name,\n last_name,\n job_title,\n avatar_url,\n email,\n }) => (\n
    • \n handleSubmit(email)}>\n \n\n
      \n \n {first_name} {last_name}\n \n\n \n {job_title}\n \n
      \n\n \n
      \n
    • \n )\n )}\n
    \n\n {!data.length &&\n value &&\n /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value) && (\n <>\n \n \n {t(\"startups_page.invite.feedback_s\")} {value}.{\" \"}\n {t(\"startups_page.invite.feedback_e\")}\n \n \n \n {t(\"startups_page.invite.invite\")} {value}\n \n \n )}\n \n ) : (\n \n setReason(event.currentTarget.value)}\n />\n \n {!notification ? (\n \n {t(\"startups_page.roles.m_a_request\")}\n \n ) : (\n {\n setNotification(null);\n close();\n }}\n variant=\"default\"\n fullWidth\n className=\"w-full px-12\"\n disabled={!reason}\n >\n {t(\"startups_page.roles.m_a_close\")}\n \n )}\n \n )}\n
    \n
    \n
    \n \n )}\n <>\n {isOwner || isMember ? (\n \n \"Add\n \n ) : (\n \n \n \n \n \n

    \n {`${\n disableButton || existingJoinRequest\n ? t(\"startups_page.members.request_sent\")\n : t(\"startups_page.members.request_join\")\n }`}\n

    \n
    \n
    \n )}\n \n \n );\n}\n","// Import necessary modules and hooks\nimport React from \"react\";\nimport ContainerButton from \"../../stories/ContainerButton\";\nimport fetchApi from \"../Lib/api\";\nimport useStartupStore from \"../../stores/startupStore\";\nimport useUserStore from \"../../stores/userStore\";\nimport { Loader } from \"@mantine/core\";\n\n// Safely parse JSON data\nfunction parseJSON(data) {\n try {\n return typeof data === \"string\" ? JSON.parse(data) : data || { blocks: [] };\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n return { blocks: [] };\n }\n}\n\n// Check if a block already has initials\nfunction blockHasInitials(block) {\n if (!block || !block.data) return false;\n\n function containsInitials(data) {\n if (\n typeof data === \"object\" &&\n data.type === \"editor-block-user-initials\"\n ) {\n return true;\n }\n if (typeof data === \"string\") {\n return /]*>\\(([^)]+)\\)<\\/a><\\/sup>/.test(data);\n }\n if (Array.isArray(data)) {\n return data.some(containsInitials);\n }\n if (typeof data === \"object\" && data !== null) {\n return Object.values(data).some(containsInitials);\n }\n return false;\n }\n\n return containsInitials(block.data);\n}\n\n// Create an editor block for user initials\nfunction createUserInitialsEditorBlock(userInitials, userUrl) {\n return {\n type: \"editor-block-user-initials\",\n data: {\n initials: userInitials,\n url: userUrl,\n },\n };\n}\n\n// Add initials to block data (only if the block doesn't already have initials)\nfunction addUserInitialsToBlockData(data, userInitials, userUrl) {\n if (typeof data === \"string\") {\n if (/]*>\\(([^)]+)\\)<\\/a><\\/sup>/.test(data)) {\n return data;\n }\n return [\n { type: \"paragraph\", data: data },\n createUserInitialsEditorBlock(userInitials, userUrl),\n ];\n }\n\n if (Array.isArray(data)) {\n if (data.some((item) => item.type === \"editor-block-user-initials\")) {\n return data;\n }\n return [...data, createUserInitialsEditorBlock(userInitials, userUrl)];\n }\n\n if (typeof data === \"object\" && data !== null) {\n if (data.type === \"editor-block-user-initials\") {\n return data;\n }\n return {\n ...data,\n initials: createUserInitialsEditorBlock(userInitials, userUrl),\n };\n }\n\n return data;\n}\n\n// Check if two blocks are identical (ignoring user initials)\nfunction isBlockIdenticalIgnoringInitials(oldBlock, newBlock) {\n const sanitizeBlock = (block) => {\n const sanitized = { ...block };\n if (sanitized.data && Array.isArray(sanitized.data)) {\n sanitized.data = sanitized.data.filter(\n (item) => item.type !== \"editor-block-user-initials\"\n );\n }\n return sanitized;\n };\n\n return (\n JSON.stringify(sanitizeBlock(oldBlock)) ===\n JSON.stringify(sanitizeBlock(newBlock))\n );\n}\n\n// Add initials only to new or modified blocks\nfunction addUserInitialsToNewData(oldData, newData, userInitials, userUrl) {\n const updatedBlocks = newData.blocks.map((newBlock, index) => {\n const oldBlock = oldData.blocks[index];\n\n // Check if the block is new or modified (ignoring initials)\n const isNewBlock = !oldBlock;\n const isModifiedBlock =\n oldBlock && !isBlockIdenticalIgnoringInitials(oldBlock, newBlock);\n\n // Only add initials to new or modified blocks\n if ((isNewBlock || isModifiedBlock) && !blockHasInitials(newBlock)) {\n newBlock.data = addUserInitialsToBlockData(\n newBlock.data,\n userInitials,\n userUrl\n );\n }\n\n return newBlock;\n });\n\n return {\n ...newData,\n blocks: updatedBlocks,\n };\n}\n\n// Main SaveComponent for saving the annotated data\nconst SaveComponent = ({ close, setMessage, loading, setLoading }) => {\n const {\n content,\n privacy,\n files,\n isOwner,\n selectedProgram,\n setProgram,\n program,\n } = useStartupStore((state) => ({\n content: state.content,\n privacy: state.privacy,\n files: state.files,\n isOwner: state.isOwner,\n selectedProgram: state.selectedProgram,\n setProgram: state.setProgram,\n program: state.program,\n }));\n\n const showTemporaryMessage = (msg) => {\n setMessage(msg);\n setTimeout(() => {\n setMessage(\"\");\n }, 4000);\n };\n\n const {\n user: { id, first_name, last_name },\n } = useUserStore((state) => state.user);\n const userInitials = `${first_name[0]}${last_name[0]}`;\n const userUrl = `/profile/user/${id}`;\n\n const handleSave = async () => {\n const contentTouched =\n content[selectedProgram.cid]?.[selectedProgram.sid]?.touched;\n const hasFiles =\n files[selectedProgram.cid]?.[selectedProgram.sid]?.length > 0;\n const privacyChanged =\n program?.categories[selectedProgram.cid]?.sub_categories[\n selectedProgram.sid\n ].privacy !== privacy[selectedProgram.cid]?.[selectedProgram.sid];\n\n if (!contentTouched && !hasFiles && !privacyChanged) return;\n\n setLoading(true);\n\n const id =\n program?.categories[selectedProgram.cid]?.sub_categories[\n selectedProgram.sid\n ].id;\n const oldDataRaw =\n program?.categories[selectedProgram.cid]?.sub_categories[\n selectedProgram.sid\n ].response || '{ \"blocks\": [] }';\n const newDataRaw = content[selectedProgram.cid]?.[selectedProgram.sid]\n .response || { blocks: [] };\n\n const oldData = parseJSON(oldDataRaw);\n const newData =\n typeof newDataRaw === \"string\" ? parseJSON(newDataRaw) : newDataRaw;\n\n // Process newData to include user initials in new or modified blocks\n const newDataWithInitials = addUserInitialsToNewData(\n oldData,\n newData,\n userInitials,\n userUrl\n );\n\n try {\n const formData = new FormData();\n\n files[selectedProgram.cid]?.[selectedProgram.sid]?.forEach((file) => {\n if (!file.file) {\n formData.append(\n \"sub_category[file_records_attributes][]\",\n JSON.stringify({\n name: file.name,\n url: file.url,\n file_id: file.id,\n size_bytes: file.size_bytes,\n icon: file.icon,\n source: file.source,\n })\n );\n } else {\n formData.append(\"sub_category[files][]\", file.file);\n }\n });\n formData.append(\n \"sub_category[privacy]\",\n privacy[selectedProgram.cid]?.[selectedProgram.sid]\n );\n\n if (isOwner) {\n formData.append(\n \"sub_category[response]\",\n JSON.stringify(newDataWithInitials)\n );\n } else {\n formData.append(\n \"sub_category[proposed_response]\",\n JSON.stringify(newDataWithInitials)\n );\n }\n\n formData.append(\n \"sub_category[response]\",\n JSON.stringify(newDataWithInitials)\n );\n\n const response = await fetchApi(\n `/sub_categories/${id}`,\n \"PATCH\",\n formData,\n true\n );\n if (response.ok) {\n const responseData = await response.json();\n setProgram(responseData.program);\n showTemporaryMessage(\"Changes saved successfully!\");\n close();\n } else {\n showTemporaryMessage(\"Failed to save changes. Please try again.\");\n console.error(\"HTTP error! Failed to submit form\");\n }\n } catch (error) {\n console.error(\"Error:\", error.message);\n showTemporaryMessage(\"An error occurred while saving. Please try again.\");\n } finally {\n setLoading(false);\n }\n };\n\n return loading ? (\n \n ) : (\n \n );\n};\n\nexport default SaveComponent;\n","import {\n Button,\n Modal,\n NumberInput,\n Stack,\n TextInput,\n Title,\n} from \"@mantine/core\";\nimport React, { useEffect, useState } from \"react\";\nimport fetchApi from \"../Lib/api\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport { IconUserDollar } from \"@tabler/icons-react\";\nimport Notification from \"../Lib/Notification\";\nimport Markdown from \"../Lib/Markdown\";\n\nexport default function Funding({ funding, slug, setStartup }) {\n const [opened, { open, close }] = useDisclosure(false);\n const [equity, setEquity] = useState(funding?.equity || 0);\n const [valuation, setValuation] = useState(funding?.valuation || 0);\n const [investors_details, setInvestorDetails] = useState(\n funding?.investors_details || \"\"\n );\n const [ask, setAsk] = useState(funding?.ask || 0);\n const [loading, setLoading] = useState(false);\n const [notification, setNotification] = useState(null);\n\n useEffect(() => {\n if (ask && equity) {\n console.log(\"Ask:\", ask);\n console.log(\"Equity:\", equity);\n\n const equityDecimal = equity / 100;\n const valuation = ask / equityDecimal;\n console.log(\"Valuation:\", valuation);\n\n const valuationFixed = parseFloat(valuation.toFixed(2));\n console.log(\"Valuation (Fixed):\", valuationFixed);\n\n setValuation(valuationFixed);\n }\n }, [ask, equity]);\n\n const handleRequest = async () => {\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/fundings/add_funding_details`,\n \"POST\",\n {\n funding: {\n equity,\n ask,\n valuation,\n investors_details,\n },\n }\n );\n\n if (response.ok) {\n const res = await response.json();\n setNotification({ type: \"success\", content: res.message });\n setStartup((prev) => ({\n ...prev,\n startup_entity: { ...prev.startup_entity, funding: res.funding },\n }));\n } else {\n const msg = (await response.json()).error;\n setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during password change:\", error);\n }\n };\n\n return (\n <>\n {opened && (\n \n {notification && }\n \n Provide a funding bid\n \n \n \n\n {\n setInvestorDetails(e);\n }}\n />\n\n \n Add Funding details\n \n \n \n )}\n }\n onClick={open}\n variant=\"default\"\n fullWidth\n loading={loading}\n >\n Manage Funding\n \n \n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport EditorJS from '@editorjs/editorjs';\nimport Header from '@editorjs/header';\nimport List from '@editorjs/list';\nimport EditorJsDiff from './EditorJsDiff';\nimport DiffDisplay from './DiffDisplay';\n\nconst DiffTester = () => {\n const editor1Ref = useRef(null);\n const editor2Ref = useRef(null);\n const [diffResult, setDiffResult] = useState(null);\n\n const initialData = {\n blocks: [\n {\n id: \"1\",\n type: \"header\",\n data: {\n text: \"Test Document\",\n level: 1\n }\n },\n {\n id: \"2\",\n type: \"paragraph\",\n data: {\n text: \"This is a test paragraph. Edit this content to see the diff.\"\n }\n },\n {\n id: \"3\",\n type: \"list\",\n data: {\n style: \"unordered\",\n items: [\n \"Item 1\",\n \"Item 2\",\n \"Item 3\"\n ]\n }\n }\n ]\n };\n\n useEffect(() => {\n editor1Ref.current = new EditorJS({\n holder: 'editor1',\n tools: {\n header: Header,\n list: List\n },\n data: initialData,\n onChange: () => {\n handleCompare();\n }\n });\n\n editor2Ref.current = new EditorJS({\n holder: 'editor2',\n tools: {\n header: Header,\n list: List\n },\n data: initialData,\n onChange: () => {\n handleCompare();\n }\n });\n\n return () => {\n if (editor1Ref.current) {\n editor1Ref.current.destroy();\n }\n if (editor2Ref.current) {\n editor2Ref.current.destroy();\n }\n };\n }, []);\n\n const handleCompare = async () => {\n try {\n const content1 = await editor1Ref.current.save();\n const content2 = await editor2Ref.current.save();\n \n const differ = new EditorJsDiff();\n const result = differ.compareContent(content1, content2);\n setDiffResult(result);\n } catch (error) {\n console.error('Error comparing content:', error);\n }\n };\n\n return (\n
    \n
    \n
    \n

    Editor 1

    \n
    \n
    \n
    \n

    Editor 2

    \n
    \n
    \n
    \n\n \n
    \n );\n};\n\nexport default DiffTester;","import { Button, Menu, Select, Stack, UnstyledButton } from \"@mantine/core\";\nimport React, { useState } from \"react\";\nimport FeatureButton from \"../../stories/FeatureButton\";\n\nexport default function RoadmapPDFGenerator({ slug }) {\n const [opened, setOpened] = useState(false);\n const [format, setFormat] = useState(\"pdf\");\n const [loading, setLoading] = useState(false);\n const fetchPDF = async () => {\n setLoading(true);\n try {\n const response = await fetch(`/startup_entities/${slug}/roadmap_pdf`, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/pdf\",\n },\n });\n\n if (response.ok) {\n // Get the file name from Content-Disposition header\n const disposition = response.headers.get(\"Content-Disposition\");\n let filename = \"roadmap.pdf\"; // Default filename\n\n if (disposition && disposition.indexOf(\"filename\") !== -1) {\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n const matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, \"\");\n }\n }\n\n const blob = await response.blob();\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = filename; // Use the extracted filename here\n document.body.appendChild(a);\n a.click();\n a.remove();\n window.URL.revokeObjectURL(url);\n } else {\n const msg = (await response.json()).error;\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during PDF fetch:\", error);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n \n \n setOpened(!opened)} buttonText=\"Export\" fullwidth={true} />\n \n \n \n \n \n {\n fetchPDF();\n setOpened(false);\n }}\n >\n Download\n \n \n \n \n );\n}\n","import React from \"react\";\nimport { Routes, Route } from \"react-router-dom\";\nimport Layout from \"../Lib/Layout\";\nimport UserProvider from \"../Lib/UserContext\";\nimport CreateStartup from \"../Startups/CreateStartup\";\nimport StartupShow from \"../Startups/StartupShow\";\nimport StartupConfirmation from \"../Startups/StartupConfirmation\";\nimport EditStartup from \"../Startups/EditStartup\";\nimport MeetingConfirmation from \"../Startups/MeetingConfirmation\";\nimport QueryProvider from \"../Lib/QueryClientProvider\";\n\nexport default function AuthenticationPage() {\n return (\n \n \n \n \n } />\n }\n />\n }\n />\n } />\n }\n />\n }\n />\n }\n />\n \n \n \n \n );\n}\n","var map = {\n\t\"./Authentication/ChangePasswordForm\": 25065,\n\t\"./Authentication/ChangePasswordForm.js\": 25065,\n\t\"./Authentication/CorporateSignUpForm\": 48905,\n\t\"./Authentication/CorporateSignUpForm.js\": 48905,\n\t\"./Authentication/CreatePasswordForInviteUser\": 17526,\n\t\"./Authentication/CreatePasswordForInviteUser.js\": 17526,\n\t\"./Authentication/GoogleButton\": 74713,\n\t\"./Authentication/GoogleButton.js\": 74713,\n\t\"./Authentication/JoinWaitlist\": 43267,\n\t\"./Authentication/JoinWaitlist.js\": 43267,\n\t\"./Authentication/LinkedInButton\": 55868,\n\t\"./Authentication/LinkedInButton.js\": 55868,\n\t\"./Authentication/LoginRegisterForm\": 60082,\n\t\"./Authentication/LoginRegisterForm.js\": 60082,\n\t\"./Authentication/ProfessorSignUpForm\": 55763,\n\t\"./Authentication/ProfessorSignUpForm.js\": 55763,\n\t\"./Authentication/SignInModal\": 30531,\n\t\"./Authentication/SignInModal.js\": 30531,\n\t\"./Authentication/SignUpModal\": 66317,\n\t\"./Authentication/SignUpModal.js\": 66317,\n\t\"./Authentication/UpdatePasswordForm\": 56404,\n\t\"./Authentication/UpdatePasswordForm.js\": 56404,\n\t\"./Dashbaord/Dashboard\": 9712,\n\t\"./Dashbaord/Dashboard.js\": 9712,\n\t\"./Dashbaord/DashboardPages/Calender\": 50487,\n\t\"./Dashbaord/DashboardPages/Calender.js\": 50487,\n\t\"./Dashbaord/DashboardPages/Card\": 95495,\n\t\"./Dashbaord/DashboardPages/Card.js\": 95495,\n\t\"./Dashbaord/DashboardPages/Forums\": 69767,\n\t\"./Dashbaord/DashboardPages/Forums.js\": 69767,\n\t\"./Dashbaord/DashboardPages/Forums/ModerationActivity\": 25355,\n\t\"./Dashbaord/DashboardPages/Forums/ModerationActivity.js\": 25355,\n\t\"./Dashbaord/DashboardPages/Forums/ModerationHistory\": 19444,\n\t\"./Dashbaord/DashboardPages/Forums/ModerationHistory.js\": 19444,\n\t\"./Dashbaord/DashboardPages/Forums/ModerationUsers\": 37600,\n\t\"./Dashbaord/DashboardPages/Forums/ModerationUsers.js\": 37600,\n\t\"./Dashbaord/DashboardPages/Forums/Topics\": 36102,\n\t\"./Dashbaord/DashboardPages/Forums/Topics.js\": 36102,\n\t\"./Dashbaord/DashboardPages/Members\": 49918,\n\t\"./Dashbaord/DashboardPages/Members.js\": 49918,\n\t\"./Dashbaord/DashboardPages/Messages\": 9969,\n\t\"./Dashbaord/DashboardPages/Messages.js\": 9969,\n\t\"./Dashbaord/DashboardPages/OwnStartups\": 66587,\n\t\"./Dashbaord/DashboardPages/OwnStartups.js\": 66587,\n\t\"./Dashbaord/DashboardPages/Resources\": 41632,\n\t\"./Dashbaord/DashboardPages/Resources.js\": 41632,\n\t\"./Dashbaord/DashboardPages/Startups\": 63209,\n\t\"./Dashbaord/DashboardPages/Startups.js\": 63209,\n\t\"./Dashbaord/DashboardPages/Workspace\": 74787,\n\t\"./Dashbaord/DashboardPages/Workspace.js\": 74787,\n\t\"./Dashbaord/DashboardPages/activities\": 50556,\n\t\"./Dashbaord/DashboardPages/activities.js\": 50556,\n\t\"./Dashbaord/logo1.png\": 59530,\n\t\"./Forums/Pages/TopicsList\": 32429,\n\t\"./Forums/Pages/TopicsList.js\": 32429,\n\t\"./Forums/Pages/TopicsShow\": 44920,\n\t\"./Forums/Pages/TopicsShow.js\": 44920,\n\t\"./Lib/CustomNavLink\": 56855,\n\t\"./Lib/CustomNavLink.js\": 56855,\n\t\"./Lib/DropboxOperations\": 25207,\n\t\"./Lib/DropboxOperations.js\": 25207,\n\t\"./Lib/EmailForwarding\": 44492,\n\t\"./Lib/EmailForwarding.js\": 44492,\n\t\"./Lib/FilesDisplay\": 99632,\n\t\"./Lib/FilesDisplay.js\": 99632,\n\t\"./Lib/FilesPickerAndUploader\": 59315,\n\t\"./Lib/FilesPickerAndUploader.js\": 59315,\n\t\"./Lib/GoogleDriveOperations\": 71384,\n\t\"./Lib/GoogleDriveOperations.js\": 71384,\n\t\"./Lib/HashLayout\": 51597,\n\t\"./Lib/HashLayout.js\": 51597,\n\t\"./Lib/HeaderAndSidebar\": 28488,\n\t\"./Lib/HeaderAndSidebar.js\": 28488,\n\t\"./Lib/Language\": 54777,\n\t\"./Lib/Language.js\": 54777,\n\t\"./Lib/Layout\": 35101,\n\t\"./Lib/Layout.js\": 35101,\n\t\"./Lib/Markdown\": 68566,\n\t\"./Lib/Markdown.js\": 68566,\n\t\"./Lib/Notification\": 26024,\n\t\"./Lib/Notification.js\": 26024,\n\t\"./Lib/QueryClientProvider\": 38001,\n\t\"./Lib/QueryClientProvider.js\": 38001,\n\t\"./Lib/SideBar\": 74076,\n\t\"./Lib/SideBar.js\": 74076,\n\t\"./Lib/TagsInput\": 10552,\n\t\"./Lib/TagsInput.js\": 10552,\n\t\"./Lib/TimeBasedProgressBar\": 8511,\n\t\"./Lib/TimeBasedProgressBar.js\": 8511,\n\t\"./Lib/UserContext\": 42457,\n\t\"./Lib/UserContext.js\": 42457,\n\t\"./Lib/api\": 31147,\n\t\"./Lib/api.js\": 31147,\n\t\"./Lib/environment\": 22998,\n\t\"./Lib/environment.js\": 22998,\n\t\"./Lib/logo.png\": 8076,\n\t\"./Lib/logo1.jpeg\": 64392,\n\t\"./Lib/logo1.png\": 4223,\n\t\"./Lib/logo2.png\": 90660,\n\t\"./Lib/profanityCleaner\": 70689,\n\t\"./Lib/profanityCleaner.js\": 70689,\n\t\"./Onboarding/About\": 7012,\n\t\"./Onboarding/About.js\": 7012,\n\t\"./Onboarding/Category\": 93841,\n\t\"./Onboarding/Category.js\": 93841,\n\t\"./Onboarding/Details\": 16915,\n\t\"./Onboarding/Details.js\": 16915,\n\t\"./Onboarding/Onboarding\": 60176,\n\t\"./Onboarding/Onboarding.js\": 60176,\n\t\"./Onboarding/data\": 89321,\n\t\"./Onboarding/data.js\": 89321,\n\t\"./Onboarding/validations\": 8613,\n\t\"./Onboarding/validations.js\": 8613,\n\t\"./Pages/AIValidationPage\": 6188,\n\t\"./Pages/AIValidationPage.js\": 6188,\n\t\"./Pages/AuthenticationPage\": 71153,\n\t\"./Pages/AuthenticationPage.js\": 71153,\n\t\"./Pages/ChannelPage\": 96776,\n\t\"./Pages/ChannelPage.js\": 96776,\n\t\"./Pages/DashboardPage\": 68171,\n\t\"./Pages/DashboardPage.js\": 68171,\n\t\"./Pages/OnboardingPage\": 73700,\n\t\"./Pages/OnboardingPage.js\": 73700,\n\t\"./Pages/ProfilePage\": 97698,\n\t\"./Pages/ProfilePage.js\": 97698,\n\t\"./Pages/StartupPage\": 82422,\n\t\"./Pages/StartupPage.js\": 82422,\n\t\"./Pages/UsersProfilePage\": 44768,\n\t\"./Pages/UsersProfilePage.js\": 44768,\n\t\"./Profile/Pages/MyStuff\": 71514,\n\t\"./Profile/Pages/MyStuff.js\": 71514,\n\t\"./Profile/Pages/Notifications\": 89670,\n\t\"./Profile/Pages/Notifications.js\": 89670,\n\t\"./Profile/Pages/Profile\": 30627,\n\t\"./Profile/Pages/Profile.js\": 30627,\n\t\"./Profile/Pages/Settings\": 44601,\n\t\"./Profile/Pages/Settings.js\": 44601,\n\t\"./Profile/Profile\": 98596,\n\t\"./Profile/Profile.js\": 98596,\n\t\"./Profile/ProfileNavbar\": 57870,\n\t\"./Profile/ProfileNavbar.js\": 57870,\n\t\"./Profile/UserInfo\": 24398,\n\t\"./Profile/UserInfo.js\": 24398,\n\t\"./Profile/UserProfile\": 10129,\n\t\"./Profile/UserProfile.js\": 10129,\n\t\"./Startups/AiChat\": 90956,\n\t\"./Startups/AiChat.js\": 90956,\n\t\"./Startups/ContactMessage\": 9711,\n\t\"./Startups/ContactMessage.js\": 9711,\n\t\"./Startups/CreateStartup\": 48628,\n\t\"./Startups/CreateStartup.js\": 48628,\n\t\"./Startups/DiffDisplay\": 12941,\n\t\"./Startups/DiffDisplay.js\": 12941,\n\t\"./Startups/EditStartup\": 37731,\n\t\"./Startups/EditStartup.js\": 37731,\n\t\"./Startups/EditorJsDiff\": 95537,\n\t\"./Startups/EditorJsDiff.js\": 95537,\n\t\"./Startups/EditorJsDiffTester\": 80226,\n\t\"./Startups/EditorJsDiffTester.js\": 80226,\n\t\"./Startups/Funding\": 78036,\n\t\"./Startups/Funding.js\": 78036,\n\t\"./Startups/InviteMember\": 75905,\n\t\"./Startups/InviteMember.js\": 75905,\n\t\"./Startups/ManageRequestToJoinTeam\": 49442,\n\t\"./Startups/ManageRequestToJoinTeam.js\": 49442,\n\t\"./Startups/Meeting\": 30511,\n\t\"./Startups/Meeting.js\": 30511,\n\t\"./Startups/MeetingConfirmation\": 8054,\n\t\"./Startups/MeetingConfirmation.js\": 8054,\n\t\"./Startups/OpeningRoles\": 53393,\n\t\"./Startups/OpeningRoles.js\": 53393,\n\t\"./Startups/ProgramUpdateApproval\": 10960,\n\t\"./Startups/ProgramUpdateApproval.js\": 10960,\n\t\"./Startups/RoadmapPDFGenerator\": 82369,\n\t\"./Startups/RoadmapPDFGenerator.js\": 82369,\n\t\"./Startups/SaveComponent\": 76946,\n\t\"./Startups/SaveComponent.js\": 76946,\n\t\"./Startups/StartupChat\": 69241,\n\t\"./Startups/StartupChat.js\": 69241,\n\t\"./Startups/StartupConfirmation\": 16150,\n\t\"./Startups/StartupConfirmation.js\": 16150,\n\t\"./Startups/StartupShow\": 5314,\n\t\"./Startups/StartupShow.js\": 5314,\n\t\"./Startups/Stat\": 72726,\n\t\"./Startups/Stat.js\": 72726,\n\t\"./Startups/TextEditor\": 90130,\n\t\"./Startups/TextEditor.js\": 90130,\n\t\"./Startups/Timeline\": 48603,\n\t\"./Startups/Timeline.js\": 48603\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 86900;","// Action Cable provides the framework to deal with WebSockets in Rails.\n// You can generate new channels where WebSocket features live using the `bin/rails generate channel` command.\n\nimport { createConsumer } from \"@rails/actioncable\";\n\nconst App = createConsumer();\n\nexport default App;\n","const industriesData = [\n \"Financial Services\",\n \"Health and Wellness\",\n \"Education\",\n \"Legal Services\",\n \"Technology\",\n \"Marketing\",\n \"Hospitality\",\n \"Engineering\",\n \"Manufacturing\",\n \"Biotechnology\",\n \"Entertainment\",\n \"Real Estate\",\n \"Agriculture\",\n \"Fashion\",\n \"Art and Design\",\n \"Research\",\n \"Environmental\",\n \"Renewable Energy\",\n \"Transportation\",\n \"Sports\",\n \"Gaming\",\n \"Government\",\n \"Security\",\n \"Retail\",\n \"E-commerce\",\n \"Logistics\",\n \"Insurance\",\n \"Media and Broadcasting\",\n \"Food and Beverage\",\n \"Healthcare\",\n \"Aviation\",\n \"Space Exploration\",\n \"Automotive\",\n \"Maritime\",\n \"Culinary\",\n \"Tourism\",\n \"Luxury Brands\",\n \"Non-Profit\",\n \"Financial Technology\",\n \"Blockchain\",\n \"Cryptocurrency\",\n \"Law\",\n \"Human Resources\",\n \"Fitness\",\n \"Music\",\n \"Film and Television\",\n \"Travel\",\n \"Consulting\",\n \"Construction\",\n \"Energy\",\n \"Telecommunications\",\n \"Banking\",\n \"Pharmaceutical\",\n \"Consumer Goods\",\n \"Aerospace\",\n \"Defense\",\n \"Market Research\",\n \"Luxury Goods\",\n \"Social Services\",\n \"Information Technology\",\n \"Arts and Entertainment\",\n \"Hospitality and Tourism\",\n \"Healthcare and Medical\",\n \"Education and Training\",\n \"Media and Communications\",\n \"Government and Public Administration\",\n \"Retail and Consumer Goods\",\n \"Transportation and Logistics\",\n \"Manufacturing and Industrial\",\n \"Construction and Architecture\",\n \"Energy and Utilities\",\n \"Aerospace and Defense\",\n \"Insurance and Risk Management\",\n \"Real Estate and Property\",\n \"Consulting and Business Services\",\n \"Environmental and Green Technology\",\n \"Sports and Recreation\",\n \"Fashion and Beauty\",\n \"Market Research and Analysis\",\n \"Renewable Energy and Sustainability\",\n \"Security and Law Enforcement\",\n \"Food and Beverage Industry\",\n \"Fitness and Wellness Industry\",\n \"Music and Entertainment Sector\",\n \"Film and Television Production\",\n \"Travel and Tourism Industry\",\n \"Culinary Arts and Hospitality Services\",\n \"Luxury Goods and Services Sector\",\n \"Non-Profit and Community Development Organizations\",\n];\n\nconst skillsData = [\n \"Web Development\",\n \"Graphic Design\",\n \"Content Writing\",\n \"Digital Marketing\",\n \"SEO\",\n \"Social Media Management\",\n \"Data Analysis\",\n \"Software Development\",\n \"Project Management\",\n \"Financial Forecasting\",\n \"Customer Service\",\n \"Public Speaking\",\n \"Video Editing\",\n \"Photography\",\n \"Translation\",\n \"3D Modeling\",\n \"Animation\",\n \"Blockchain Development\",\n \"Cryptocurrency Analysis\",\n \"Cloud Computing\",\n \"DevOps\",\n \"IT Support\",\n \"Networking\",\n \"Cybersecurity\",\n \"Penetration Testing\",\n \"Data Entry\",\n \"Virtual Assistance\",\n \"Legal Consulting\",\n \"Educational Tutoring\",\n \"Voice Over\",\n \"Podcast Editing\",\n \"Brand Strategy\",\n \"Market Research\",\n \"UX/UI Design\",\n \"Copywriting\",\n \"Email Marketing\",\n \"PPC Campaign Management\",\n \"HR Consulting\",\n \"Sales Strategy\",\n \"Product Management\",\n \"Agile Coaching\",\n \"Scrum Mastery\",\n \"Environmental Consulting\",\n \"Health and Wellness Coaching\",\n \"Nutrition Planning\",\n \"Personal Training\",\n \"Interior Design\",\n \"Architectural Design\",\n \"CAD Design\",\n \"Electrical Engineering\",\n \"Mechanical Engineering\",\n \"Chemical Engineering\",\n \"Civil Engineering\",\n \"Biotechnology Research\",\n \"Clinical Trial Management\",\n \"Pharmaceutical Consulting\",\n \"Academic Research\",\n \"Grant Writing\",\n \"Non-Profit Fundraising\",\n \"Event Planning\",\n \"Logistics Coordination\",\n \"Supply Chain Management\",\n \"Quality Control\",\n \"Lean Manufacturing\",\n \"Six Sigma\",\n \"Renewable Energy Consulting\",\n \"Petroleum Engineering\",\n \"Mining Consultancy\",\n \"Agricultural Planning\",\n \"Fisheries Management\",\n \"Textile Design\",\n \"Fashion Illustration\",\n \"Costume Design\",\n \"Jewelry Design\",\n \"Ceramics\",\n \"Printmaking\",\n \"Sculpture\",\n \"Creative Writing\",\n \"Scriptwriting\",\n \"Historical Research\",\n \"Archaeological Consulting\",\n \"Political Analysis\",\n \"International Relations\",\n \"Public Policy Consulting\",\n \"Ethical Hacking\",\n \"Artificial Intelligence Development\",\n \"Machine Learning Projects\",\n \"Quantum Computing Research\",\n \"Astronomy\",\n \"Astrophysics Research\",\n \"Meteorology\",\n \"Oceanography\",\n \"Environmental Science\",\n \"Sustainable Development Projects\",\n \"Wildlife Conservation\",\n \"Veterinary Medicine\",\n \"Dental Consulting\",\n \"Medical Imaging\",\n \"Nursing Education\",\n \"Mental Health Therapy\",\n \"Physical Therapy\",\n \"Occupational Therapy\",\n \"Speech Therapy\",\n \"Audiology\",\n \"Chiropractic Services\",\n \"Acupuncture\",\n \"Homeopathic Medicine\",\n \"Ayurvedic Consulting\",\n \"Personal Finance Advice\",\n \"Investment Strategy\",\n \"Crypto Investment Advice\",\n \"Real Estate Analysis\",\n \"Property Management\",\n \"Interior Decorating\",\n \"Wedding Planning\",\n \"Culinary Arts\",\n \"Baking\",\n \"Mixology\",\n \"Sommelier Expertise\",\n \"Brewing Science\",\n \"Food Safety Consulting\",\n \"Public Health Advisory\",\n \"Epidemiology\",\n \"Disaster Relief Planning\",\n \"Military Strategy\",\n \"Defense Contracting\",\n \"Aviation Management\",\n \"Aeronautical Engineering\",\n \"Space Exploration Projects\",\n \"Maritime Navigation\",\n \"Shipbuilding\",\n \"Automotive Engineering\",\n \"Motorcycle Maintenance\",\n \"Bicycle Repair\",\n \"Sports Coaching\",\n \"Athletic Training\",\n \"eSports Strategy\",\n \"Game Development\",\n \"Game Design\",\n \"Character Animation\",\n \"Esports Coaching\",\n \"VR/AR Development\",\n \"IoT Solutions\",\n \"Wearable Technology Development\",\n \"Smart Home Design\",\n \"Robotics Engineering\",\n \"Nanotechnology Research\",\n \"Patent Law\",\n \"Copyright Law\",\n \"Trademark Consulting\",\n \"Corporate Law\",\n \"International Law\",\n \"Human Rights Advocacy\",\n \"Labor Relations\",\n \"Union Negotiation\",\n \"Education Technology\",\n \"Curriculum Development\",\n \"Online Course Creation\",\n \"E-learning Strategy\",\n \"Childcare Consulting\",\n \"Elder Care Planning\",\n \"Genealogical Research\",\n \"Cultural Heritage Consulting\",\n \"Art Restoration\",\n \"Museum Curation\",\n \"Gallery Management\",\n \"Music Production\",\n \"Audio Engineering\",\n \"Concert Planning\",\n \"Theater Production\",\n \"Dance Choreography\",\n \"Opera Singing\",\n \"Instrumental Music Teaching\",\n \"Choir Directing\",\n \"Band Management\",\n \"Film Production\",\n \"Documentary Filmmaking\",\n \"Cinematography\",\n \"Film Editing\",\n \"Special Effects Makeup\",\n \"Fashion Photography\",\n \"Travel Writing\",\n \"Adventure Guiding\",\n \"Hospitality Management\",\n \"Tour Operating\",\n \"Cruise Ship Operations\",\n \"Airline Customer Service\",\n \"Airport Management\",\n \"Space Tourism Planning\",\n \"Luxury Brand Management\",\n \"Retail Merchandising\",\n \"E-commerce Optimization\",\n \"Dropshipping Management\",\n \"Affiliate Marketing\",\n \"Network Marketing\",\n \"Multi-level Marketing Strategy\",\n \"Direct Sales\",\n \"B2B Sales\",\n \"B2C Sales\",\n \"Wholesale Distribution\",\n \"Import/Export Consulting\",\n \"Trade Compliance\",\n \"Customs Brokerage\",\n \"Tariff Negotiation\",\n \"International Trade Law\",\n \"Export Controls\",\n \"Sanctions Advisory\",\n \"Anti-money Laundering Compliance\",\n \"Fraud Investigation\",\n \"Corporate Security\",\n \"Personal Security\",\n \"Event Security\",\n \"Fire Safety Consulting\",\n \"Occupational Health and Safety\",\n \"First Aid Training\",\n \"CPR Instruction\",\n \"Emergency Preparedness\",\n \"Crisis Management\",\n \"Business Continuity Planning\",\n \"Data Recovery\",\n \"Cloud Storage Solutions\",\n \"Database Management\",\n \"Data Mining\",\n \"Big Data Analytics\",\n \"Predictive Modeling\",\n \"Statistical Analysis\",\n \"Econometrics\",\n \"Financial Modeling\",\n \"Actuarial Science\",\n \"Insurance Risk Assessment\",\n \"Reinsurance\",\n \"Banking Compliance\",\n \"Financial Regulation Advisory\",\n \"Investment Banking\",\n \"Venture Capital\",\n \"Private Equity\",\n \"Hedge Fund Management\",\n \"Mutual Fund Advisory\",\n \"Stock Market Analysis\",\n \"Forex Trading\",\n \"Commodity Trading\",\n \"Options Trading\",\n \"Futures Trading\",\n \"Bond Trading\",\n \"Cryptocurrency Trading\",\n \"Payment Processing\",\n \"FinTech Innovation\",\n \"Blockchain for Finance\",\n \"Digital Wallet Integration\",\n \"Mobile Payment Solutions\",\n \"Credit Scoring\",\n \"Personal Loans\",\n \"Mortgage Consulting\",\n \"Commercial Lending\",\n \"Asset Management\",\n \"Wealth Management\",\n \"Retirement Planning\",\n \"Estate Planning\",\n \"Tax Advisory\",\n \"AI/ML Development\",\n \"Content Strategy\",\n \"Cloud Architecture\",\n \"Big Data Analysis\",\n \"Cybersecurity Frameworks\",\n \"IoT Integration\",\n \"DevOps Practices\",\n \"Quantum Computing Research\",\n \"User Experience Design\",\n \"User Interface Design\",\n \"Natural Language Processing\",\n \"Robotics Programming\",\n \"Augmented Reality Development\",\n \"Virtual Reality Development\",\n \"Blockchain Development\",\n \"Cryptography\",\n \"Ethical Hacking\",\n \"Forensic Analysis\",\n \"Mobile App Development\",\n \"Web Application Development\",\n \"SaaS Product Management\",\n \"Agile Project Management\",\n \"Scrum Methodology\",\n \"Lean Startup Methodology\",\n \"Business Analytics\",\n \"Data Visualization\",\n \"Statistical Analysis\",\n \"Financial Analysis\",\n \"Market Analysis\",\n \"SEO/SEM\",\n \"Affiliate Marketing Strategy\",\n \"Social Media Marketing\",\n \"Email Marketing\",\n \"Influencer Partnership Management\",\n \"Public Relations Strategy\",\n \"Brand Development\",\n \"Sales Funnel Optimization\",\n \"Customer Relationship Management\",\n \"Supply Chain Optimization\",\n \"Logistics Planning\",\n \"Manufacturing Process Design\",\n \"Quality Assurance Testing\",\n \"Regulatory Compliance\",\n \"Legal Research\",\n \"Intellectual Property Law\",\n \"Environmental Law\",\n \"Contract Negotiation\",\n \"Mediation and Arbitration\",\n \"Education Curriculum Design\",\n \"E-Learning Development\",\n \"Corporate Training\",\n \"Health and Wellness Coaching\",\n \"Nutrition Planning\",\n \"Fitness Training Program Design\",\n \"Mental Health Support Services\",\n \"Medical Research\",\n \"Clinical Trial Design\",\n \"Pharmaceutical Sales\",\n \"Renewable Energy Systems\",\n \"Environmental Impact Assessment\",\n \"Urban Planning\",\n \"Real Estate Development\",\n \"Interior Design\",\n \"Fashion Design\",\n \"Graphic Design\",\n \"Illustration\",\n \"Photography\",\n \"Videography\",\n \"Film Editing\",\n \"Music Production\",\n \"Audio Engineering\",\n \"Podcast Production\",\n \"Voice Acting\",\n \"Performance Arts\",\n \"Creative Writing\",\n \"Technical Writing\",\n \"Grant Writing\",\n \"Translation Services\",\n \"Language Instruction\",\n \"Culinary Arts\",\n \"Beverage Studies\",\n \"Tourism and Hospitality Management\",\n \"Event Planning and Management\",\n \"Personal Finance Planning\",\n \"Investment Strategy\",\n \"Risk Management\",\n \"Insurance Underwriting\",\n \"Banking Operations\",\n \"Cryptocurrency Analysis\",\n \"E-commerce Strategy\",\n \"Retail Management\",\n \"Customer Service Excellence\",\n];\n\nconst countries = [\n { label: \"Afghanistan\" },\n { label: \"Albania\" },\n { label: \"Algeria\" },\n { label: \"Andorra\" },\n { label: \"Angola\" },\n { label: \"Antigua and Barbuda\" },\n { label: \"Argentina\" },\n { label: \"Armenia\" },\n { label: \"Australia\" },\n { label: \"Austria\" },\n { label: \"Azerbaijan\" },\n { label: \"Bahamas\" },\n { label: \"Bahrain\" },\n { label: \"Bangladesh\" },\n { label: \"Barbados\" },\n { label: \"Belarus\" },\n { label: \"Belgium\" },\n { label: \"Belize\" },\n { label: \"Benin\" },\n { label: \"Bhutan\" },\n { label: \"Bolivia\" },\n { label: \"Bosnia and Herzegovina\" },\n { label: \"Botswana\" },\n { label: \"Brazil\" },\n { label: \"Brunei\" },\n { label: \"Bulgaria\" },\n { label: \"Burkina Faso\" },\n { label: \"Burundi\" },\n { label: \"Cabo Verde\" },\n { label: \"Cambodia\" },\n { label: \"Cameroon\" },\n { label: \"Canada\" },\n { label: \"Central African Republic\" },\n { label: \"Chad\" },\n { label: \"Chile\" },\n { label: \"China\" },\n { label: \"Colombia\" },\n { label: \"Comoros\" },\n { label: \"Congo\" },\n { label: \"Costa Rica\" },\n { label: \"Croatia\" },\n { label: \"Cuba\" },\n { label: \"Cyprus\" },\n { label: \"Czech Republic\" },\n { label: \"Denmark\" },\n { label: \"Djibouti\" },\n { label: \"Dominica\" },\n { label: \"Dominican Republic\" },\n { label: \"Ecuador\" },\n { label: \"Egypt\" },\n { label: \"El Salvador\" },\n { label: \"Equatorial Guinea\" },\n { label: \"Eritrea\" },\n { label: \"Estonia\" },\n { label: \"Eswatini\" },\n { label: \"Ethiopia\" },\n { label: \"Fiji\" },\n { label: \"Finland\" },\n { label: \"France\" },\n { label: \"Gabon\" },\n { label: \"Gambia\" },\n { label: \"Georgia\" },\n { label: \"Germany\" },\n { label: \"Ghana\" },\n { label: \"Greece\" },\n { label: \"Grenada\" },\n { label: \"Guatemala\" },\n { label: \"Guinea\" },\n { label: \"Guinea-Bissau\" },\n { label: \"Guyana\" },\n { label: \"Haiti\" },\n { label: \"Honduras\" },\n { label: \"Hungary\" },\n { label: \"Iceland\" },\n { label: \"India\" },\n { label: \"Indonesia\" },\n { label: \"Iran\" },\n { label: \"Iraq\" },\n { label: \"Ireland\" },\n { label: \"Israel\" },\n { label: \"Italy\" },\n { label: \"Jamaica\" },\n { label: \"Japan\" },\n { label: \"Jordan\" },\n { label: \"Kazakhstan\" },\n { label: \"Kenya\" },\n { label: \"Kiribati\" },\n { label: \"Kosovo\" },\n { label: \"Kuwait\" },\n { label: \"Kyrgyzstan\" },\n { label: \"Laos\" },\n { label: \"Latvia\" },\n { label: \"Lebanon\" },\n { label: \"Lesotho\" },\n { label: \"Liberia\" },\n { label: \"Libya\" },\n { label: \"Liechtenstein\" },\n { label: \"Lithuania\" },\n { label: \"Luxembourg\" },\n { label: \"Madagascar\" },\n { label: \"Malawi\" },\n { label: \"Malaysia\" },\n { label: \"Maldives\" },\n { label: \"Mali\" },\n { label: \"Malta\" },\n { label: \"Marshall Islands\" },\n { label: \"Mauritania\" },\n { label: \"Mauritius\" },\n { label: \"Mexico\" },\n { label: \"Micronesia\" },\n { label: \"Moldova\" },\n { label: \"Monaco\" },\n { label: \"Mongolia\" },\n { label: \"Montenegro\" },\n { label: \"Morocco\" },\n { label: \"Mozambique\" },\n { label: \"Myanmar\" },\n { label: \"Namibia\" },\n { label: \"Nauru\" },\n { label: \"Nepal\" },\n { label: \"Netherlands\" },\n { label: \"New Zealand\" },\n { label: \"Nicaragua\" },\n { label: \"Niger\" },\n { label: \"Nigeria\" },\n { label: \"North Korea\" },\n { label: \"North Macedonia\" },\n { label: \"Norway\" },\n { label: \"Oman\" },\n { label: \"Pakistan\" },\n { label: \"Palau\" },\n { label: \"Palestine\" },\n { label: \"Panama\" },\n { label: \"Papua New Guinea\" },\n { label: \"Paraguay\" },\n { label: \"Peru\" },\n { label: \"Philippines\" },\n { label: \"Poland\" },\n { label: \"Portugal\" },\n { label: \"Qatar\" },\n { label: \"Romania\" },\n { label: \"Russia\" },\n { label: \"Rwanda\" },\n { label: \"Saint Kitts and Nevis\" },\n { label: \"Saint Lucia\" },\n { label: \"Saint Vincent and the Grenadines\" },\n { label: \"Samoa\" },\n { label: \"San Marino\" },\n { label: \"Sao Tome and Principe\" },\n { label: \"Saudi Arabia\" },\n { label: \"Senegal\" },\n { label: \"Serbia\" },\n { label: \"Seychelles\" },\n { label: \"Sierra Leone\" },\n { label: \"Singapore\" },\n { label: \"Slovakia\" },\n { label: \"Slovenia\" },\n { label: \"Solomon Islands\" },\n { label: \"Somalia\" },\n { label: \"South Africa\" },\n { label: \"South Korea\" },\n { label: \"South Sudan\" },\n { label: \"Spain\" },\n { label: \"Sri Lanka\" },\n { label: \"Sudan\" },\n { label: \"Suriname\" },\n { label: \"Sweden\" },\n { label: \"Switzerland\" },\n { label: \"Syria\" },\n { label: \"Taiwan\" },\n { label: \"Tajikistan\" },\n { label: \"Tanzania\" },\n { label: \"Thailand\" },\n { label: \"Timor-Leste\" },\n { label: \"Togo\" },\n { label: \"Tonga\" },\n { label: \"Trinidad and Tobago\" },\n { label: \"Tunisia\" },\n { label: \"Turkey\" },\n { label: \"Turkmenistan\" },\n { label: \"Tuvalu\" },\n { label: \"Uganda\" },\n { label: \"Ukraine\" },\n { label: \"United Arab Emirates\" },\n { label: \"United Kingdom\" },\n { label: \"United States\" },\n { label: \"Uruguay\" },\n { label: \"Uzbekistan\" },\n { label: \"Vanuatu\" },\n { label: \"Vatican City\" },\n { label: \"Venezuela\" },\n { label: \"Vietnam\" },\n { label: \"Yemen\" },\n { label: \"Zambia\" },\n { label: \"Zimbabwe\" },\n];\n\nconst industries = industriesData.map((label) => ({\n label,\n value: label,\n}));\n\nconst skills = skillsData.map((label) => ({\n label,\n value: label,\n}));\n\nconst countriesData = countries.map((l) => l.label);\n\nconst tags = [\n { label: \"Founding Team\" },\n { label: \"Contributor\" },\n { label: \"Intern/Volunteer\" },\n { label: \"Consultant\" },\n { label: \"Investor\" },\n];\n\nconst stages = [\n { label: \"Idea\" },\n { label: \"Prototype\" },\n { label: \"Start-up\" },\n { label: \"Project\" },\n { label: \"Growth\" },\n { label: \"Maturity\" },\n];\n\nconst sorting = [\n { label: \"Recently Modified\" },\n { label: \"Newest First\" },\n { label: \"A-Z\" },\n { label: \"Z-A\" },\n { label: \"Followers (P1)\" },\n];\n\nconst emojis = [\n \"❤️ - Red Heart\",\n \"🎉 - Party Popper\",\n \"👍 - Thumbs Up\",\n \"👏 - Clapping Hands\",\n \"🌟 - Glowing Star\",\n \"🌈 - Rainbow\",\n \"✨ - Sparkles\",\n \"🍕 - Pizza\",\n \"🍷 - Wine Glass\",\n \"🎈 - Balloon\",\n \"🎶 - Musical Notes\",\n \"🎵 - Musical Note\",\n \"🎊 - Confetti Ball\",\n \"🎁 - Wrapped Gift\",\n \"📷 - Camera\",\n \"📱 - Mobile Phone\",\n \"📚 - Books\",\n \"📺 - Television\",\n \"💻 - Laptop Computer\",\n \"💡 - Light Bulb\",\n \"💯 - Hundred Points\",\n \"🔥 - Fire\",\n \"🚀 - Rocket\",\n \"🌸 - Cherry Blossom\",\n \"🌼 - Blossom\",\n \"🍀 - Four Leaf Clover\",\n \"🍂 - Fallen Leaf\",\n \"🌞 - Sun with Face\",\n \"🌝 - Full Moon with Face\",\n \"🌎 - Globe Showing Americas\",\n \"🌍 - Globe Showing Europe-Africa\",\n \"⭐️ - Star\",\n \"🌊 - Water Wave\",\n \"🍔 - Hamburger\",\n \"🍟 - French Fries\",\n \"🍦 - Soft Ice Cream\",\n \"🍩 - Doughnut\",\n \"🍻 - Clinking Beer Mugs\",\n \"🍹 - Tropical Drink\",\n \"🎮 - Video Game\",\n \"🎬 - Clapper Board\",\n \"🎤 - Microphone\",\n \"🎸 - Guitar\",\n \"🎭 - Performing Arts\",\n \"🎩 - Top Hat\",\n \"🎰 - Slot Machine\",\n \"🎳 - Bowling\",\n \"🎲 - Game Die\",\n \"🎻 - Violin\",\n \"🎼 - Musical Score\",\n \"🏆 - Trophy\",\n \"⚽️ - Soccer Ball\",\n \"🏀 - Basketball\",\n \"🏈 - American Football\",\n \"🎾 - Tennis\",\n \"🏓 - Ping Pong\",\n \"🏸 - Badminton\",\n \"🏒 - Ice Hockey\",\n \"🚗 - Car\",\n \"🚲 - Bicycle\",\n \"🚌 - Bus\",\n \"🚀 - Rocket\",\n \"🚢 - Ship\",\n \"✈️ - Airplane\",\n \"🚁 - Helicopter\",\n \"🚂 - Locomotive\",\n \"🚒 - Fire Engine\",\n \"🚓 - Police Car\",\n \"🚑 - Ambulance\",\n \"🚔 - Oncoming Police Car\",\n \"🚕 - Taxi\",\n \"🚚 - Delivery Truck\",\n \"🚜 - Tractor\",\n \"🛵 - Motor Scooter\",\n \"🚤 - Speedboat\",\n \"⛵️ - Sailboat\",\n \"🚲 - Bicycle\",\n \"🛴 - Kick Scooter\",\n \"🚅 - Bullet Train\",\n \"🎯 - Direct Hit\",\n \"🎱 - Pool 8 Ball\",\n \"🏹 - Bow and Arrow\",\n \"🏓 - Ping Pong\",\n \"🏸 - Badminton\",\n \"🥅 - Goal Net\",\n \"🥇 - 1st Place Medal\",\n \"🥈 - 2nd Place Medal\",\n \"🥉 - 3rd Place Medal\",\n \"🎖️ - Military Medal\",\n \"🏅 - Sports Medal\",\n \"🎮 - Video Game\",\n \"🎲 - Game Die\",\n \"🧩 - Puzzle Piece\",\n \"♟️ - Chess Pawn\",\n \"🎯 - Direct Hit\",\n \"🎱 - Pool 8 Ball\",\n \"🏂 - Snowboarder\",\n \"🚣‍♀️ - Woman Rowing Boat\",\n \"🚣‍♂️ - Man Rowing Boat\",\n \"🛌 - Person in Bed\",\n \"🛋️ - Couch and Lamp\",\n \"🚽 - Toilet\",\n \"🚿 - Shower\",\n \"🛁 - Bathtub\",\n \"⌚ - Watch\",\n \"📱 - Mobile Phone\",\n \"💻 - Laptop Computer\",\n \"🖥️ - Desktop Computer\",\n \"🖨️ - Printer\",\n \"🖱️ - Computer Mouse\",\n \"🖲️ - Trackball\",\n \"🕹️ - Joystick\",\n \"🗜️ - Clamp\",\n \"⌨️ - Keyboard\",\n \"💽 - Computer Disk\",\n \"💾 - Floppy Disk\",\n \"💿 - Optical Disk\",\n \"📀 - DVD\",\n \"🎥 - Movie Camera\",\n \"🎞️ - Film Frames\",\n \"📽️ - Film Projector\",\n \"📷 - Camera\",\n \"📸 - Camera with Flash\",\n \"📹 - Video Camera\",\n \"📼 - Videocassette\",\n \"📺 - Television\",\n \"📻 - Radio\",\n \"🎙️ - Studio Microphone\",\n \"🎚️ - Level Slider\",\n \"🎛️ - Control Knobs\",\n \"⏱️ - Stopwatch\",\n \"⏲️ - Timer Clock\",\n \"⏰ - Alarm Clock\",\n \"🕰️ - Mantelpiece Clock\",\n \"⌛ - Hourglass Done\",\n \"⏳ - Hourglass Not Done\",\n \"📡 - Satellite Antenna\",\n \"🔋 - Battery\",\n \"🔌 - Electric Plug\",\n \"💡 - Light Bulb\",\n \"🔦 - Flashlight\",\n \"🕯️ - Candle\",\n \"🧯 - Fire Extinguisher\",\n \"🛢️ - Oil Drum\",\n \"💸 - Money with Wings\",\n \"💵 - Dollar Banknote\",\n \"💴 - Yen Banknote\",\n \"💶 - Euro Banknote\",\n \"💷 - Pound Banknote\",\n \"💰 - Money Bag\",\n \"💳 - Credit Card\",\n \"🧾 - Receipt\",\n \"💎 - Gem Stone\",\n \"📦 - Package\",\n \"📫 - Closed Mailbox with Raised Flag\",\n \"📪 - Closed Mailbox with Lowered Flag\",\n \"📬 - Open Mailbox with Raised Flag\",\n \"📭 - Open Mailbox with Lowered Flag\",\n \"📮 - Postbox\",\n \"🗳️ - Ballot Box with Ballot\",\n \"✉️ - Envelope\",\n \"📩 - Envelope with Arrow\",\n \"📨 - Incoming Envelope\",\n \"📧 - E-Mail\",\n \"💌 - Love Letter\",\n \"📤 - Outbox Tray\",\n \"📥 - Inbox Tray\",\n \"📦 - Package\",\n \"📯 - Postal Horn\",\n \"📜 - Scroll\",\n];\n\nexport {\n emojis,\n industriesData,\n skillsData,\n industries,\n skills,\n countries,\n tags,\n stages,\n sorting,\n countriesData,\n};\n","import { Title } from \"@mantine/core\";\nimport React from \"react\";\n\nexport default function Notifications() {\n return Notification Page;\n}\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport {\n ActionIcon,\n Avatar,\n Button,\n Card,\n Grid,\n Group,\n Menu,\n Modal,\n ScrollArea,\n Stack,\n Tabs,\n Text,\n Title,\n Tooltip,\n rem,\n} from \"@mantine/core\";\nimport {\n IconCheck,\n IconChecks,\n IconEye,\n IconPencil,\n IconPencilPlus,\n IconTrashX,\n IconX,\n} from \"@tabler/icons-react\";\n\nimport { IconEyeClosed } from \"@tabler/icons-react\";\n\nimport AiChat from \"./AiChat\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport fetchApi from \"../Lib/api\";\nimport Notification from \"../Lib/Notification\";\nimport Markdown from \"../Lib/Markdown\";\nimport GoogleDrivePickerAndUploader from \"../Lib/FilesPickerAndUploader\";\nimport FileList from \"../Lib/FilesDisplay\";\nimport FeatureButton from \"../../stories/FeatureButton\";\nimport useStartupStore from \"../../stores/startupStore\";\n\nexport default function Editor({\n owner,\n member,\n role,\n programs,\n selectedPrograms,\n close,\n setContent,\n content,\n privacy,\n setPrivacy,\n files,\n setFiles,\n handleSave,\n members,\n}) {\n const [index, setIndex] = useState(selectedPrograms.sid);\n const [loading, setLoading] = useState(false);\n\n return (\n \n {selectedPrograms && (\n \n \n {programs.categories[selectedPrograms.cid].name}\n \n \n \n )}\n\n \n \n {programs.categories[selectedPrograms.cid].sub_categories.map(\n (tab, i) => {\n if (\n tab.is_active &&\n (owner ||\n (tab.privacy !== \"Only me\" && member) ||\n (tab.privacy === \"Everyone\" && tab.response))\n )\n return (\n setIndex(i)}\n icon={tab.response ? : <>}\n key={tab.name}\n value={tab.name}\n className=\"font-bold\"\n >\n {tab.name}\n \n );\n }\n )}\n \n\n {programs.categories[selectedPrograms.cid].sub_categories.map(\n (tab, index) => {\n if (\n tab.is_active &&\n (owner ||\n (tab.privacy !== \"Only me\" && member) ||\n (tab.privacy === \"Everyone\" && tab.response))\n )\n return (\n \n \n \n \n {\n setContent((p) => {\n const arr = [...p];\n arr[index].response = e;\n arr[index].touched = true;\n return arr;\n });\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n );\n }\n )}\n \n \n {(owner || role < 1) && (\n \n ) : (\n \n )\n }\n >\n \n \n \n \n \n setPrivacy((p) => {\n const arr = [...p];\n arr[index] = \"Everyone\";\n return arr;\n })\n }\n >\n Everyone\n \n \n setPrivacy((p) => {\n const arr = [...p];\n arr[index] = \"Members\";\n return arr;\n })\n }\n >\n Members\n \n \n setPrivacy((p) => {\n const arr = [...p];\n arr[index] = \"Only me\";\n return arr;\n })\n }\n >\n Only me\n \n \n \n )}\n\n }\n onClick={close}\n >\n Leave without saving\n \n {\n programs.categories[selectedPrograms.cid].sub_categories.forEach(\n (element, i) => {\n if (element.is_active) handleSave(i, setLoading);\n }\n );\n }}\n variant=\"default\"\n size=\"md\"\n leftIcon={}\n loading={loading}\n >\n Save changes\n \n \n \n );\n}\n\nexport const AssignMembers = ({}) => {\n const [otherMembers, setOtherMembers] = useState([]);\n const [opened, { open, close }] = useDisclosure(false);\n const [notification, setNotification] = useState(null);\n\n const { canAssign, members, assign_members, categoryId } = useStartupStore(\n (state) => ({\n canAssign: state.isOwner || state.role < 2,\n members: state.members,\n assign_members: state.program.loading\n ? []\n : state.program.categories[state.selectedProgram.cid].assigned_users,\n\n categoryId: state.program.categories[state.selectedProgram.cid].id,\n })\n );\n\n const [assignMembers, setAssignMembers] = useState(assign_members);\n\n const handleRequest = async (accepted, categoryId, userId) => {\n try {\n const action = accepted ? \"assign_member\" : \"remove_member\";\n const method = accepted ? \"POST\" : \"DELETE\";\n const startupId = 0;\n\n const response = await fetchApi(\n `/startup_entities/${startupId}/categories/${categoryId}/${action}`,\n method,\n { user_id: userId }\n );\n\n if (response.ok) {\n const data = await response.json();\n setNotification({ type: \"success\", content: data.message });\n console.log(data); // Assuming the response contains a message\n let memberToRemove = null;\n if (accepted) {\n setAssignMembers((p) => p.filter((a) => a.user.id != userId));\n const updatedOtherMembers = otherMembers.filter((member) => {\n if (member.id === userId) {\n memberToRemove = member;\n return false;\n }\n return true;\n });\n\n setOtherMembers(updatedOtherMembers);\n setAssignMembers((p) => [...p, { user: memberToRemove }]);\n } else {\n const updatedAssignMembers = assignMembers.filter((member) => {\n if (member.user.id === userId) {\n memberToRemove = member.user;\n return false;\n }\n return true;\n });\n setAssignMembers(updatedAssignMembers);\n setOtherMembers((p) => [...p, memberToRemove]);\n }\n } else {\n const errorData = await response.json();\n setNotification({ type: \"failure\", content: errorData.error });\n console.error(errorData.error); // Assuming the response contains an error message\n // Handle the error accordingly\n }\n } catch (error) {\n console.error(\"Error:\", error);\n }\n };\n\n useEffect(() => {\n setOtherMembers(\n members.filter(\n (member) =>\n !assign_members.some(\n (assignMember) => assignMember.user.id === member.id\n )\n )\n );\n }, []);\n\n return (\n <>\n {opened && (\n \n {notification && }\n \n \n Assigned Members\n \n
    \n \n {assignMembers.map(({ user }, i) => (\n
  • \n
    \n
    \n \n
    \n\n \n\n
    \n \n \n handleRequest(false, categoryId, user.id)\n }\n variant=\"default\"\n fullWidth\n className=\"w-fit\"\n >\n Unassign user\n \n \n
    \n
    \n
  • \n ))}\n \n
    \n \n Other Members\n \n
    \n \n {otherMembers.map((user, i) => (\n
  • \n
    \n
    \n \n
    \n\n \n\n
    \n \n \n handleRequest(true, categoryId, user.id)\n }\n variant=\"default\"\n fullWidth\n className=\"w-fit\"\n >\n Assign user\n \n \n
    \n
    \n
  • \n ))}\n \n
    \n
    \n
    \n )}\n\n
    \n \n \n {assignMembers.map(({ user }) => (\n \n \n \n ))}\n \n \n {canAssign && (\n \n )}\n
    \n \n );\n};\n\nconst Guide = ({ tab }) => {\n const [showTools, setShowTools] = useState(false);\n const [guide, setGuide] = useState(tab.guide);\n\n const handleUpdate = async () => {\n try {\n const response = await fetchApi(\n `/sub_categories/${tab.id}/update_guide`,\n \"PATCH\",\n {\n sub_category: { guide },\n }\n );\n\n if (response.ok) {\n const res = await response.json();\n setShowTools(false);\n console.log(res);\n } else {\n const msg = (await response.json()).error;\n // setNotification({ type: \"failure\", content: msg });\n console.error(msg);\n }\n } catch (error) {\n console.error(\"Error during updating guide:\", error);\n }\n };\n\n return (\n \n \n \n Guide\n \n {tab.editable && (\n setShowTools(!showTools)}\n >\n {showTools ? (\n \n ) : (\n \n )}\n \n )}\n {showTools && (\n \n \n \n )}\n \n \n \n );\n};\n","import {\n TextInput,\n ActionIcon,\n rem,\n Paper,\n Title,\n Loader,\n} from \"@mantine/core\";\nimport React, { useState } from \"react\";\nimport { IconSearch, IconArrowRight } from \"@tabler/icons-react\";\nimport fetchApi from \"../Lib/api\";\n\nexport default function AiChat({}) {\n const [text, setText] = useState(\"\");\n const [messages, setMessages] = useState([]);\n const [loading, setLoading] = useState(false);\n\n async function handleLLMAIRequest(inputs, parameters) {\n try {\n const requestBody = {\n inputs: inputs,\n parameters: parameters,\n };\n\n const response = await fetch(\n \"https://promoted-suitable-eft.ngrok-free.app/generate\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n }\n );\n\n console.log(response);\n\n if (response.ok) {\n const responseData = await response.json();\n const generatedText = responseData.generated_text;\n console.log(\"Generated Text:\", generatedText);\n return generatedText;\n } else {\n console.error(\"AI request failed with status code\", response.status);\n throw new Error(\n \"AI request failed with status code \" + response.status\n );\n }\n } catch (error) {\n console.error(\"Error during AI request:\", error);\n throw error;\n }\n }\n\n async function handleButtonClick() {\n if (text.length < 5) return;\n setLoading(true);\n setMessages((p) => [{ user: text }, ...p]);\n setText(\"\");\n try {\n const inputs = text;\n const parameters = {\n temperature: 0.1,\n max_tokens: 4096,\n };\n\n const generatedText = await handleLLMAIRequest(inputs, parameters);\n\n setMessages((p) => [{ ai: generatedText }, ...p]);\n setLoading(false);\n\n // Do something with the generated text\n console.log(\"Generated Text:\", generatedText);\n } catch (error) {\n // Handle errors\n console.error(\"An error occurred:\", error.message);\n }\n }\n\n return (\n \n \n Chat area\n \n\n
      \n {messages.map((message, index) => {\n return message.user ? (\n
    • \n
      \n
      \n

      {message.user}

      \n
      \n
      \n
    • \n ) : (\n \n
      \n
      \n

      {message.ai}

      \n
      \n
      \n \n );\n })}\n
    \n\n setText(e.target.value)}\n onKeyDown={(event) => {\n if (event.key === \"Enter\") {\n handleButtonClick();\n }\n }}\n rightSection={\n !loading ? (\n \n \n \n ) : (\n \n )\n }\n />\n \n );\n}\n","import {\n Avatar,\n Button,\n Center,\n FileButton,\n Stack,\n Text,\n Title,\n UnstyledButton,\n Checkbox,\n} from \"@mantine/core\";\nimport React, { useEffect, useState } from \"react\";\n\nconst SelectComponent = ({ label, selected, onChange }) => {\n return (\n onChange(label)}\n className={`${\"flex w-[300px] border border-solid border-gray-300 rounded-sm p-4 bg-white hover:bg-gray-100 \"} ${\n selected ? \"selected\" : \"\"\n }`}\n >\n \n\n
    \n \n {label}\n \n
    \n \n );\n};\n\nexport default function Category({ form }) {\n const [selectedImage, setSelectedImage] = useState(null);\n const selects = [\"Professional\", \"Freelance\", \"Investor\", \"Student\"];\n\n useEffect(() => {\n if (form.values.avatar)\n setSelectedImage(URL.createObjectURL(form.values.avatar));\n }, []);\n\n const handleImageUpload = (file) => {\n if (file) {\n form.setFieldValue(\"avatar\", file);\n setSelectedImage(URL.createObjectURL(file));\n }\n };\n\n return (\n <>\n \n Add a profile picture\n \n
    \n \n \n \n {function (props) {\n return ;\n }}\n \n \n
    \n\n \n Who are you?\n \n \n Choose your user type to tailor your experience. Whether you're a\n student, freelance enthusiast, or seasoned professional, your selection\n helps us provide personalized content and services just for you.\n \n
    \n \n {selects.map((select, index) => (\n {\n form.setFieldValue(\"user_type\", index);\n }}\n />\n ))}\n \n {form.errors.user_type}\n \n \n
    \n \n );\n}\n","import { Avatar, Badge, Group, Image, Stack } from \"@mantine/core\";\nimport React, { useState } from \"react\";\nimport { handleFollowUnfollow } from \"../../Startups/StartupShow\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function StartupCard({\n startup: { id, description, name, image_url, image, entity_type, slug },\n isFollowing,\n roles,\n members,\n}) {\n const [follow, setFollow] = useState(isFollowing);\n const { t } = useTranslation();\n const backgroundImageStyle = {\n backgroundImage: `url('${\n image_url ||\n (image && image.url) ||\n \"https://flowbite.com/docs/images/examples/image-3@2x.jpg\"\n }')`,\n backgroundSize: \"cover\",\n };\n return (\n
    \n \n
    \n
    \n \n {entity_type === \"Project\" ? (\n \n {t(\"entity.project\")}\n \n ) : (\n \n {t(\"entity.startup\")}\n \n )}\n {roles ? (\n \n {t(\"entity.open_roles\")}\n \n {roles}\n \n \n ) : (\n <>\n )}\n \n

    \n {name}\n

    \n

    {description}

    \n
    \n \n \n {members.map((m) => (\n \n {m.first_name[0]}\n {m.last_name[0]}\n \n ))}\n {Array.from({ length: 7 - members.length }, (_, index) => (\n \n ))}\n \n
    \n {isFollowing !== null && (\n {\n handleFollowUnfollow(follow, slug)\n .then((value) => {\n setFollow(value);\n })\n .catch((error) => {\n // Handle error here\n });\n }}\n className=\"w-full py-3 px-4 inline-flex justify-center items-center gap-x-2 text-sm font-medium rounded-es-xl bg-white text-gray-800 shadow-sm hover:bg-gray-50 disabled:opacity-50 disabled:pointer-events-none \"\n >\n {follow ? t(\"entity.following\") : t(\"entity.follow\")}\n \n )}\n\n \n {t(\"entity.share\")}\n \n
    \n
    \n );\n}\n","// EditorJsDiff.js\nimport { diffWords, diffLines } from \"diff\";\n\nclass EditorJsDiff {\n constructor() {\n this.blockTypeHandlers = {\n paragraph: this.diffParagraph.bind(this),\n header: this.diffHeader.bind(this),\n list: this.diffList.bind(this),\n code: this.diffCode.bind(this),\n image: this.diffImage.bind(this),\n table: this.diffTable.bind(this),\n quote: this.diffQuote.bind(this),\n checklist: this.diffChecklist.bind(this),\n delimiter: this.diffDelimiter.bind(this),\n embed: this.diffEmbed.bind(this),\n raw: this.diffRaw.bind(this),\n };\n }\n\n /**\n * Main method to compare two Editor.js contents\n */\n compareContent(oldContent, newContent) {\n const oldBlocks = oldContent?.blocks || [];\n const newBlocks = newContent?.blocks || [];\n\n // Track positions\n const oldPositions = new Map();\n const newPositions = new Map();\n\n oldBlocks.forEach((block, index) => oldPositions.set(block.id, index));\n newBlocks.forEach((block, index) => newPositions.set(block.id, index));\n\n const diffResult = {\n added: [],\n removed: [],\n modified: [],\n unchanged: [],\n reordered: [],\n };\n\n const processedOldBlocks = new Set();\n const processedNewBlocks = new Set();\n\n // First pass: Find matches and modifications\n oldBlocks.forEach((oldBlock, oldIndex) => {\n const newIndex = newBlocks.findIndex((block) => block.id === oldBlock.id);\n\n if (newIndex !== -1) {\n const newBlock = newBlocks[newIndex];\n processedOldBlocks.add(oldBlock.id);\n processedNewBlocks.add(newBlock.id);\n\n const blockDiff = this.compareBlocks(oldBlock, newBlock);\n\n if (oldIndex !== newIndex) {\n diffResult.reordered.push({\n block: newBlock,\n oldPosition: oldIndex,\n newPosition: newIndex,\n changes: blockDiff.hasChanges ? blockDiff : null,\n });\n } else if (blockDiff.hasChanges) {\n diffResult.modified.push(blockDiff);\n } else {\n diffResult.unchanged.push({\n block: oldBlock,\n position: oldIndex,\n });\n }\n }\n });\n\n // Second pass: Find additions and deletions\n oldBlocks.forEach((block) => {\n if (!processedOldBlocks.has(block.id)) {\n diffResult.removed.push({\n block,\n position: oldPositions.get(block.id),\n });\n }\n });\n\n newBlocks.forEach((block) => {\n if (!processedNewBlocks.has(block.id)) {\n diffResult.added.push({\n block,\n position: newPositions.get(block.id),\n });\n }\n });\n\n return this.sortDiffResult(diffResult, oldBlocks, newBlocks);\n }\n\n /**\n * Sort diff results by position\n */\n\n sortDiffResult(diffResult, oldBlocks, newBlocks) {\n const orderedChanges = [];\n const processedIds = new Set();\n \n // Iterate over each block in the original (old) order.\n oldBlocks.forEach((oldBlock, index) => {\n // Look for a diff for this block in the diff result arrays.\n const diff =\n diffResult.modified.find(d => d.old.id === oldBlock.id) ||\n diffResult.reordered.find(d => {\n // Depending on how your diff was structured, a reordered block might be nested under diff.block.\n return d.block && d.block.id === oldBlock.id;\n }) ||\n diffResult.unchanged.find(d => d.block.id === oldBlock.id) ||\n diffResult.removed.find(d => d.block.id === oldBlock.id);\n \n if (diff) {\n orderedChanges.push({\n ...diff,\n // Force the sort position to the original (old) position.\n sortPosition: index\n });\n processedIds.add(oldBlock.id);\n }\n });\n \n // Now process any added blocks that did not exist in the old document.\n newBlocks.forEach((newBlock, index) => {\n if (!processedIds.has(newBlock.id)) {\n const addedDiff = diffResult.added.find(d => d.block.id === newBlock.id);\n if (addedDiff) {\n // Using a fractional offset (index + 0.5) to place added blocks between original ones,\n // or you could simply append them by using newBlock's order.\n orderedChanges.push({\n ...addedDiff,\n sortPosition: index + 0.5\n });\n }\n }\n });\n \n // Finally, sort the combined list by the sortPosition.\n orderedChanges.sort((a, b) => a.sortPosition - b.sortPosition);\n diffResult.orderedChanges = orderedChanges;\n return diffResult;\n }\n\n /**\n * Helper method to find the original position of a block by ID\n */\n findOriginalPosition(blockId, diffResult) {\n // First check in unchanged blocks\n const unchangedBlock = diffResult.unchanged.find(change => change.block.id === blockId);\n if (unchangedBlock) {\n return unchangedBlock.position;\n }\n \n // Check in removed blocks\n const removedBlock = diffResult.removed.find(change => change.block.id === blockId);\n if (removedBlock) {\n return removedBlock.position;\n }\n \n // Check in reordered blocks (using old position)\n const reorderedBlock = diffResult.reordered.find(change => change.block.id === blockId);\n if (reorderedBlock) {\n return reorderedBlock.oldPosition;\n }\n \n // If not found, return Infinity to place at the end\n return Infinity;\n }\n\n /**\n * Compare individual blocks\n */\n compareBlocks(oldBlock, newBlock) {\n if (oldBlock.type !== newBlock.type) {\n return {\n hasChanges: true,\n type: \"block_type_changed\",\n old: oldBlock,\n new: newBlock,\n };\n }\n\n const handler = this.blockTypeHandlers[oldBlock.type];\n if (handler) {\n return handler(oldBlock, newBlock);\n }\n\n return {\n hasChanges: JSON.stringify(oldBlock) !== JSON.stringify(newBlock),\n type: \"unknown_block_changed\",\n old: oldBlock,\n new: newBlock,\n };\n }\n\n /**\n * Block-specific diff handlers\n */\n diffParagraph(oldBlock, newBlock) {\n const changes = diffWords(oldBlock.data.text, newBlock.data.text);\n const hasChanges = changes.some((change) => change.added || change.removed);\n\n return {\n hasChanges,\n type: \"paragraph\",\n blockId: oldBlock.id,\n changes,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n diffHeader(oldBlock, newBlock) {\n const textChanges = diffWords(oldBlock.data.text, newBlock.data.text);\n const levelChanged = oldBlock.data.level !== newBlock.data.level;\n const hasChanges =\n levelChanged ||\n textChanges.some((change) => change.added || change.removed);\n\n return {\n hasChanges,\n type: \"header\",\n blockId: oldBlock.id,\n levelChanged,\n textChanges,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n diffList(oldBlock, newBlock) {\n const oldItems = oldBlock.data.items;\n const newItems = newBlock.data.items;\n const itemChanges = [];\n\n const maxLength = Math.max(oldItems.length, newItems.length);\n for (let i = 0; i < maxLength; i++) {\n const oldItem = oldItems[i] || \"\";\n const newItem = newItems[i] || \"\";\n const itemDiff = diffWords(oldItem, newItem);\n\n itemChanges.push({\n index: i,\n changes: itemDiff,\n hasChanges: itemDiff.some((change) => change.added || change.removed),\n });\n }\n\n return {\n hasChanges: itemChanges.some((item) => item.hasChanges),\n type: \"list\",\n blockId: oldBlock.id,\n styleChanged: oldBlock.data.style !== newBlock.data.style,\n itemChanges,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n diffCode(oldBlock, newBlock) {\n const codeChanges = diffLines(oldBlock.data.code, newBlock.data.code);\n const languageChanged = oldBlock.data.language !== newBlock.data.language;\n\n return {\n hasChanges:\n languageChanged ||\n codeChanges.some((change) => change.added || change.removed),\n type: \"code\",\n blockId: oldBlock.id,\n languageChanged,\n codeChanges,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n diffImage(oldBlock, newBlock) {\n return {\n hasChanges:\n oldBlock.data.url !== newBlock.data.url ||\n oldBlock.data.caption !== newBlock.data.caption,\n type: \"image\",\n blockId: oldBlock.id,\n urlChanged: oldBlock.data.url !== newBlock.data.url,\n captionChanges:\n oldBlock.data.caption !== newBlock.data.caption\n ? diffWords(\n oldBlock.data.caption || \"\",\n newBlock.data.caption || \"\"\n )\n : null,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n diffTable(oldBlock, newBlock) {\n const oldContent = oldBlock.data.content;\n const newContent = newBlock.data.content;\n const cellChanges = [];\n\n const maxRows = Math.max(oldContent.length, newContent.length);\n const maxCols = Math.max(\n ...oldContent.map((row) => row.length),\n ...newContent.map((row) => row.length)\n );\n\n for (let i = 0; i < maxRows; i++) {\n const rowChanges = [];\n for (let j = 0; j < maxCols; j++) {\n const oldCell = (oldContent[i] || [])[j] || \"\";\n const newCell = (newContent[i] || [])[j] || \"\";\n const cellDiff = diffWords(oldCell, newCell);\n\n rowChanges.push({\n position: [i, j],\n changes: cellDiff,\n hasChanges: cellDiff.some((change) => change.added || change.removed),\n });\n }\n cellChanges.push(rowChanges);\n }\n\n return {\n hasChanges: cellChanges.some((row) =>\n row.some((cell) => cell.hasChanges)\n ),\n type: \"table\",\n blockId: oldBlock.id,\n cellChanges,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n diffQuote(oldBlock, newBlock) {\n const textChanges = diffWords(oldBlock.data.text, newBlock.data.text);\n const captionChanges = diffWords(\n oldBlock.data.caption || \"\",\n newBlock.data.caption || \"\"\n );\n\n return {\n hasChanges:\n textChanges.some((change) => change.added || change.removed) ||\n captionChanges.some((change) => change.added || change.removed),\n type: \"quote\",\n blockId: oldBlock.id,\n textChanges,\n captionChanges,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n diffChecklist(oldBlock, newBlock) {\n const oldItems = oldBlock.data.items;\n const newItems = newBlock.data.items;\n const itemChanges = [];\n\n const maxLength = Math.max(oldItems.length, newItems.length);\n for (let i = 0; i < maxLength; i++) {\n const oldItem = oldItems[i] || { text: \"\", checked: false };\n const newItem = newItems[i] || { text: \"\", checked: false };\n const textDiff = diffWords(oldItem.text, newItem.text);\n\n itemChanges.push({\n index: i,\n textChanges: textDiff,\n checkedChanged: oldItem.checked !== newItem.checked,\n hasChanges:\n textDiff.some((change) => change.added || change.removed) ||\n oldItem.checked !== newItem.checked,\n });\n }\n\n return {\n hasChanges: itemChanges.some((item) => item.hasChanges),\n type: \"checklist\",\n blockId: oldBlock.id,\n itemChanges,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n diffDelimiter(oldBlock, newBlock) {\n return {\n hasChanges: false,\n type: \"delimiter\",\n blockId: oldBlock.id,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n diffEmbed(oldBlock, newBlock) {\n return {\n hasChanges:\n oldBlock.data.service !== newBlock.data.service ||\n oldBlock.data.source !== newBlock.data.source ||\n oldBlock.data.embed !== newBlock.data.embed ||\n oldBlock.data.width !== newBlock.data.width ||\n oldBlock.data.height !== newBlock.data.height ||\n oldBlock.data.caption !== newBlock.data.caption,\n type: \"embed\",\n blockId: oldBlock.id,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n diffRaw(oldBlock, newBlock) {\n const changes = diffLines(oldBlock.data.html, newBlock.data.html);\n return {\n hasChanges: changes.some((change) => change.added || change.removed),\n type: \"raw\",\n blockId: oldBlock.id,\n changes,\n old: oldBlock,\n new: newBlock,\n };\n }\n\n /**\n * Render diff results as HTML\n */\n renderDiffHtml(diffResult) {\n let html = '
    ';\n\n diffResult.orderedChanges.forEach((change) => {\n if (\"block\" in change) {\n // Handle reordered blocks\n if (\"oldPosition\" in change) {\n const moveIndicator =\n change.newPosition > change.oldPosition ? \"↓\" : \"↑\";\n const changeClass = change.changes\n ? \"diff-reordered diff-modified\"\n : \"diff-reordered\";\n\n html += `
    \n
    ${moveIndicator}
    \n
    \n ${\n change.changes\n ? this.renderModifiedBlock(change.changes)\n : this.renderBlock(change.block)\n }\n
    \n
    Moved from position ${\n change.oldPosition + 1\n } to ${change.newPosition + 1}
    \n
    `;\n }\n // Handle added blocks\n else if (diffResult.added.includes(change)) {\n html += `
    \n
    +
    \n
    ${this.renderBlock(\n change.block\n )}
    \n
    `;\n }\n // Handle removed blocks\n else if (diffResult.removed.includes(change)) {\n html += `
    \n
    -
    \n
    ${this.renderBlock(\n change.block\n )}
    \n
    `;\n }\n // Handle unchanged blocks\n else {\n html += `
    \n
    ${this.renderBlock(change.block)}
    \n
    `;\n }\n }\n // Handle modified blocks\n else {\n html += `
    \n
    ${this.renderModifiedBlock(change)}
    \n
    `;\n }\n });\n\n html += \"
    \";\n return html;\n }\n\n /**\n * Render a modified block with inline diff highlights\n */\n renderModifiedBlock(blockDiff) {\n switch (blockDiff.type) {\n case \"paragraph\":\n case \"header\":\n return blockDiff.changes\n .map((change) => {\n if (change.added) {\n return `${change.value}`;\n }\n if (change.removed) {\n return `${change.value}`;\n }\n return change.value;\n })\n .join(\"\");\n\n case \"list\":\n return blockDiff.itemChanges\n .map((item) => {\n const itemHtml = item.changes\n .map((change) => {\n if (change.added) {\n return `${change.value}`;\n }\n if (change.removed) {\n return `${change.value}`;\n }\n return change.value;\n })\n .join(\"\");\n return `
  • ${itemHtml}
  • `;\n })\n .join(\"\");\n\n case \"code\":\n return blockDiff.codeChanges\n .map((change) => {\n if (change.added) {\n return `
    ${change.value}
    `;\n }\n if (change.removed) {\n return `
    ${change.value}
    `;\n }\n return `
    ${change.value}
    `;\n })\n .join(\"\");\n\n case \"table\":\n let tableHtml = \"\";\n blockDiff.cellChanges.forEach((row) => {\n tableHtml += \"\";\n row.forEach((cell) => {\n tableHtml += \"\";\n });\n tableHtml += \"\";\n });\n tableHtml += \"
    \";\n if (cell.hasChanges) {\n cell.changes.forEach((change) => {\n if (change.added) {\n tableHtml += `${change.value}`;\n } else if (change.removed) {\n tableHtml += `${change.value}`;\n } else {\n tableHtml += change.value;\n }\n });\n } else {\n tableHtml += cell.changes[0].value;\n }\n tableHtml += \"
    \";\n return tableHtml;\n\n case \"quote\":\n const textHtml = blockDiff.textChanges\n .map((change) => {\n if (change.added) {\n return `${change.value}`;\n }\n if (change.removed) {\n return `${change.value}`;\n }\n return change.value;\n })\n .join(\"\");\n\n const captionHtml = blockDiff.captionChanges\n .map((change) => {\n if (change.added) {\n return `${change.value}`;\n }\n if (change.removed) {\n return `${change.value}`;\n }\n return change.value;\n })\n .join(\"\");\n\n return `
    \n

    ${textHtml}

    \n
    ${captionHtml}
    \n
    `;\n\n case \"checklist\":\n return blockDiff.itemChanges\n .map((item) => {\n const checkboxClass = item.checkedChanged ? \"diff-modified\" : \"\";\n const checked = blockDiff.new.data.items[item.index]?.checked;\n\n return `
    \n \n ${item.textChanges\n .map((change) => {\n if (change.added) {\n return `${change.value}`;\n }\n if (change.removed) {\n return `${change.value}`;\n }\n return change.value;\n })\n .join(\"\")}\n
    `;\n })\n .join(\"\");\n\n default:\n return this.renderBlock(blockDiff.new);\n }\n }\n\n /**\n * Render a single block as HTML\n */\n renderBlock(block) {\n switch (block.type) {\n case \"paragraph\":\n return `

    ${block.data.text}

    `;\n\n case \"header\":\n return `${block.data.text}`;\n\n case \"list\":\n const listType = block.data.style === \"ordered\" ? \"ol\" : \"ul\";\n return `<${listType}>${block.data.items\n .map((item) => `
  • ${item}
  • `)\n .join(\"\")}`;\n\n case \"code\":\n return `
    ${block.data.code}
    `;\n\n case \"image\":\n return `
    \n \"${block.data.caption}\"\n ${\n block.data.caption\n ? `
    ${block.data.caption}
    `\n : \"\"\n }\n
    `;\n\n case \"table\":\n return `${block.data.content\n .map(\n (row) =>\n `${row.map((cell) => ``).join(\"\")}`\n )\n .join(\"\")}
    ${cell}
    `;\n\n case \"quote\":\n return `
    \n

    ${block.data.text}

    \n ${block.data.caption ? `
    ${block.data.caption}
    ` : \"\"}\n
    `;\n\n case \"checklist\":\n return `
    \n ${block.data.items\n .map(\n (item) => `\n
    \n \n ${item.text}\n
    \n `\n )\n .join(\"\")}\n
    `;\n\n case \"delimiter\":\n return \"
    \";\n\n case \"embed\":\n return `
    \n \n ${\n block.data.caption\n ? `
    ${block.data.caption}
    `\n : \"\"\n }\n
    `;\n\n case \"raw\":\n return block.data.html;\n\n default:\n return `
    Unsupported block type: ${block.type}
    `;\n }\n }\n}\n\n// Export the class\nexport default EditorJsDiff;\n","// stores/startupStore.js\nimport { create } from \"zustand\";\nimport EditorJsDiff from \"../components/Startups/EditorJsDiff\";\nimport fetchApi from \"../components/Lib/api\";\nimport config from \"../components/Lib/environment\";\n\nconst isLocalFile = (file) => file instanceof File;\nconst isCloudFile = (file) => !isLocalFile(file) && file.url && file.file_id;\n// Process local file to base64\nconst processLocalFile = (file) => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result.split(\",\")[1];\n resolve({\n name: file.name,\n type: file.type,\n size: file.size,\n base64: base64String,\n });\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n};\n\nconst useStartupStore = create((set, get) => ({\n id: null,\n startup: null, // Holds the startup_entity\n program: null, // Holds the program related to the startup\n isOwner: false, // Whether the user is the owner of the startup\n isMember: false, // Whether the user is a member of the startup\n role: null, // The role of the user in the startup\n isFollowing: false, // Whether the user is following the startup\n existingJoinRequest: false, // Whether there is an existing join request\n editMode: false,\n members: [],\n openings: [],\n slug: \"\",\n entity: \"Startup\",\n userInitials: \"AM\",\n content: {}, // { [pageId]: { [index]: content } }\n privacy: {}, // { [pageId]: { [index]: privacy } }\n files: {}, // { [pageId]: { [index]: files } }\n pendingChanges: {},\n selectedProgram: {\n switch: false,\n cid: 0, // pageId\n sid: 0, // index\n },\n roadmapId: \"\",\n openChat: false,\n showFunding: false,\n startActivity: false,\n startTime: Date.now(),\n pendingJoinRequest: 0,\n setEditorState: () => {\n console.log(\"Initializing editor state\");\n set((state) => {\n const categories = state.program?.categories || [];\n\n const updatedContent = {};\n const updatedPrivacy = {};\n const updatedFiles = {};\n\n categories.forEach((category, categoryIndex) => {\n const category_id = category.id;\n const subCategories = category.sub_categories || [];\n\n const pageContent = {};\n const pagePrivacy = {};\n const pageFiles = {};\n\n subCategories.forEach((subCategory, subIndex) => {\n pageContent[subIndex] = {\n response: subCategory.response,\n originalResponse: subCategory.response, // Include original response for diff\n diff: subCategory.diff || null, // Include diff from backend\n touched: false,\n id: subCategory.id,\n category_id,\n name: subCategory.name,\n guide: subCategory.guide,\n wait: subCategory.waiting_for_approval,\n chats: subCategory.limited_conversation_histories,\n };\n pagePrivacy[subIndex] = subCategory.privacy;\n pageFiles[subIndex] = [\n ...subCategory.file_records,\n ...subCategory.files,\n ];\n });\n\n updatedContent[categoryIndex] = pageContent;\n updatedPrivacy[categoryIndex] = pagePrivacy;\n updatedFiles[categoryIndex] = pageFiles;\n });\n\n return {\n content: updatedContent,\n privacy: updatedPrivacy,\n files: updatedFiles,\n };\n });\n },\n\n setContent: (response, guide) => {\n set((state) => {\n const categoryIndex = state.selectedProgram.cid;\n const subIndex = state.selectedProgram.sid;\n\n // Update content\n const updatedCategoryContent = {\n ...(state.content[categoryIndex] || {}),\n [subIndex]: {\n ...(state.content[categoryIndex]?.[subIndex] || {}),\n response:\n response || state.content[categoryIndex]?.[subIndex]?.response,\n guide: guide || state.content[categoryIndex]?.[subIndex]?.guide,\n touched: true,\n name: state.content[categoryIndex]?.[subIndex]?.name,\n },\n };\n\n // Track change\n const pendingChanges = {\n ...state.pendingChanges,\n [categoryIndex]: {\n ...(state.pendingChanges[categoryIndex] || {}),\n [subIndex]: {\n ...(state.pendingChanges[categoryIndex]?.[subIndex] || {}),\n content: true,\n },\n },\n };\n\n return {\n content: {\n ...state.content,\n [categoryIndex]: updatedCategoryContent,\n },\n pendingChanges,\n };\n });\n },\n\n setPrivacy: (c) => {\n set((state) => {\n const categoryIndex = state.selectedProgram.cid;\n const subIndex = state.selectedProgram.sid;\n\n // Update privacy\n const updatedCategoryPrivacy = {\n ...(state.privacy[categoryIndex] || {}),\n [subIndex]: c,\n };\n\n // Track change\n const pendingChanges = {\n ...state.pendingChanges,\n [categoryIndex]: {\n ...(state.pendingChanges[categoryIndex] || {}),\n [subIndex]: {\n ...(state.pendingChanges[categoryIndex]?.[subIndex] || {}),\n privacy: true,\n },\n },\n };\n\n return {\n privacy: {\n ...state.privacy,\n [categoryIndex]: updatedCategoryPrivacy,\n },\n pendingChanges,\n };\n });\n },\n\n setFiles: (newFiles) => {\n set((state) => {\n const categoryIndex = state.selectedProgram.cid;\n const subIndex = state.selectedProgram.sid;\n\n // Update files\n const updatedCategoryFiles = {\n ...(state.files[categoryIndex] || {}),\n [subIndex]: newFiles,\n };\n\n // Track change\n const pendingChanges = {\n ...state.pendingChanges,\n [categoryIndex]: {\n ...(state.pendingChanges[categoryIndex] || {}),\n [subIndex]: {\n ...(state.pendingChanges[categoryIndex]?.[subIndex] || {}),\n files: true,\n },\n },\n };\n\n return {\n files: {\n ...state.files,\n [categoryIndex]: updatedCategoryFiles,\n },\n pendingChanges,\n };\n });\n },\n\n setEditMode: (isOpened) => set({ editMode: isOpened }),\n setIsFollowing: (follow) => set({ isFollowing: follow }),\n\n // Setters for startup-related fields\n setStartup: async (data) => {\n console.log(data);\n set({\n startup: data.startup_entity,\n id: data.startup_entity.id,\n program: data.startup_entity.program\n ? {\n ...data.startup_entity.program,\n categories: data.startup_entity.program?.categories\n .map((category) => {\n // Filter sub_categories based on criteria\n const filteredSubCategories = category.sub_categories.filter(\n (subCategory) =>\n subCategory.is_active &&\n (subCategory.privacy === \"Everyone\" ||\n (subCategory.privacy === \"Only me\" && data.is_owner) ||\n (subCategory.privacy === \"Members\" && data.is_member))\n );\n \n // Return the updated category with filtered sub_categories only if there's at least one sub_category\n return filteredSubCategories.length > 0\n ? {\n ...category,\n sub_categories: filteredSubCategories,\n }\n : null;\n })\n .filter((category) => category !== null),\n }\n : { loading: true, categories: [] },\n isOwner: data.is_owner,\n slug: data.startup_entity.slug,\n isMember: data.is_member,\n role: data.role,\n isFollowing: data.is_following,\n existingJoinRequest: data.existing_join_request,\n openings: data.startup_entity.openings,\n members: data.startup_entity.members,\n entity: data.startup_entity.entity_type,\n pendingJoinRequest: data.pending_join_requests_count,\n roadmapId: data.startup_entity?.program?.roadmap_id,\n });\n \n if (data.startup_entity.program) {\n // Program exists, so initialize the editor state normally.\n get().setEditorState();\n } else {\n try {\n // Fetch the summary payload from the dedicated endpoint using the startup's slug\n const summaryResponse = await fetchApi(\n `/startup_entities/${data.startup_entity.slug}/summary`\n );\n if (!summaryResponse.ok) {\n console.error(\"Failed to fetch summary payload\", summaryResponse);\n return;\n }\n const summaryPayload = await summaryResponse.json();\n console.log(\"Summary payload:\", summaryPayload);\n \n // Use the summary payload for roadmap generation\n const skeletonResponse = await fetch(config.roadmapUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"User-Agent\": \"RoadmapClient/1.0\",\n },\n body: JSON.stringify(summaryPayload),\n });\n \n if (!skeletonResponse.ok) {\n console.error(\"Skeleton generation failed\", skeletonResponse);\n return;\n }\n \n const skeletonData = await skeletonResponse.json();\n console.log(\"Skeleton data:\", skeletonData);\n \n // Append the generated skeleton to the program\n get().appendCategoryToProgram(skeletonData);\n \n // Extract task_id from the skeleton response\n const taskId = skeletonData.roadmap_id;\n \n // Poll for task completion\n let isCompleted = false;\n while (!isCompleted) {\n const statusResponse = await fetch(`${config.status}/${taskId}`, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"User-Agent\": \"RoadmapClient/1.0\",\n },\n });\n \n if (!statusResponse.ok) {\n console.error(\"Failed to fetch task status\", statusResponse);\n break;\n }\n \n const statusData = await statusResponse.json();\n console.log(\"Task status:\", statusData);\n \n if (statusData.status === \"completed\") {\n await new Promise((resolve) => setTimeout(resolve, 3000)); // Poll every 3 seconds\n isCompleted = true;\n break;\n }\n \n // Wait for a few seconds before polling again\n await new Promise((resolve) => setTimeout(resolve, 3000));\n }\n \n // Refresh startup data once the task is completed\n if (isCompleted) {\n try {\n const startupResponse = await fetchApi(\n `/startup_entities/${get().slug}`,\n \"GET\"\n );\n if (startupResponse.ok) {\n const startupData = await startupResponse.json();\n get().setStartup(startupData);\n \n // Now trigger task generation for each subcategory\n const tasksResponse = await fetchApi(\n `/startup_entities/${get().slug}/fetch_subcategory_tasks`,\n \"GET\"\n );\n if (tasksResponse.ok) {\n console.log(\"Tasks generation initiated successfully\");\n } else {\n console.error(\"Tasks generation failed\", tasksResponse);\n }\n }\n } catch (refreshError) {\n console.error(\"Error refreshing startup data:\", refreshError);\n }\n }\n } catch (error) {\n console.error(\"Error generating roadmap:\", error);\n }\n }\n },\n \n\n setChats: (newChats) => {\n set((state) => {\n const categoryIndex = state.selectedProgram.cid;\n const subIndex = state.selectedProgram.sid;\n\n // Update the chats in the content state\n const updatedSubcategoryContent = {\n ...(state.content[categoryIndex]?.[subIndex] || {}),\n chats: newChats,\n };\n\n return {\n content: {\n ...state.content,\n [categoryIndex]: {\n ...(state.content[categoryIndex] || {}),\n [subIndex]: updatedSubcategoryContent,\n },\n },\n };\n });\n },\n\n setStartupImage: (image) =>\n set((state) => ({\n startup: { ...state.startup, image },\n })),\n\n setSelectedProgram: (s) =>\n set((state) => ({\n selectedProgram: { ...state.selectedProgram, ...s },\n })),\n\n setProgram: (s) =>\n set((state) => ({\n program: { ...state.program, ...s },\n })),\n\n setCategory: (cat) => {\n set((state) => {\n const categoryIndex = state.selectedProgram.cid;\n\n // Update the program's categories list\n const updatedProgram = {\n ...state.program,\n categories: state.program?.categories?.map((c) =>\n c.id === cat.id ? cat : c\n ),\n };\n\n // Rebuild the content, privacy, and files for the updated category\n const updatedContentForCategory = {};\n const updatedPrivacyForCategory = {};\n const updatedFilesForCategory = {};\n\n (cat.sub_categories || []).forEach((subCategory, subIndex) => {\n updatedContentForCategory[subIndex] = {\n response: subCategory.response,\n originalResponse: subCategory.response, // keep the original for diff purposes\n diff: subCategory.diff || null,\n touched: false,\n id: subCategory.id,\n category_id: cat.id,\n name: subCategory.name,\n guide: subCategory.guide,\n wait: subCategory.waiting_for_approval,\n chats: subCategory.limited_conversation_histories,\n };\n\n updatedPrivacyForCategory[subIndex] = subCategory.privacy;\n updatedFilesForCategory[subIndex] = [\n ...(Array.isArray(subCategory.file_records)\n ? subCategory.file_records\n : []),\n ...(Array.isArray(subCategory.files) ? subCategory.files : []),\n ];\n });\n\n return {\n program: updatedProgram,\n content: {\n ...state.content,\n [categoryIndex]: updatedContentForCategory,\n },\n privacy: {\n ...state.privacy,\n [categoryIndex]: updatedPrivacyForCategory,\n },\n files: {\n ...state.files,\n [categoryIndex]: updatedFilesForCategory,\n },\n };\n });\n },\n\n setSubcategory: (sub) => {\n set((state) => ({\n program: {\n ...state.program,\n categories: state.program?.categories?.map((c, i) =>\n i == state.selectedProgram.cid\n ? {\n ...c,\n sub_categories: c.sub_categories.map((s, i) =>\n i == state.selectedProgram.sid ? sub : s\n ),\n }\n : c\n ),\n },\n }));\n },\n\n setOpenings: (s) =>\n set((state) => ({\n openings: [...state.openings, s],\n })),\n\n setMembers: (s) =>\n set((state) => ({\n members: [...state.members, s],\n })),\n\n removeMembers: (id) =>\n set((state) => ({\n members: state.members.filter((p) => p.id != id),\n isMember: false,\n })),\n\n removeOpenings: (id) =>\n set((state) => ({\n openings: state.openings.filter((p) => p.id != id),\n })),\n\n toggleOpenChat: () => set((state) => ({ openChat: !state.openChat })),\n toggleShowFunding: () =>\n set((state) => ({ showFunding: !state.showFunding })),\n\n logTime: async (slug) => {\n const { startTime } = get();\n const endTime = Date.now();\n const timeSpentInMinutes = (endTime - startTime) / 1000 / 60;\n\n try {\n const response = await fetchApi(\n `/startup_entities/${slug}/log_time`,\n \"POST\",\n {\n time_spent: timeSpentInMinutes,\n }\n );\n\n if (response.ok) {\n const res = await response.json();\n console.log(\"Time logged successfully:\", res);\n } else {\n const msg = (await response.json()).error;\n console.error(\"Failed to log time:\", msg);\n }\n } catch (error) {\n console.error(\"Error logging time:\", error);\n }\n },\n\n handleFileChange: async (event, slug) => {\n const selectedFile = event.target.files[0];\n const imageURL = URL.createObjectURL(selectedFile);\n set({ startupImage: imageURL });\n\n try {\n const formData = new FormData();\n formData.append(\"startup_entity[image]\", selectedFile);\n const response = await fetchApi(\n `/startup_entities/${slug}`,\n \"PATCH\",\n formData,\n true\n );\n\n if (response.ok) {\n const responseData = await response.json();\n console.log(\"File updated successfully:\", responseData);\n } else {\n console.error(\"Failed to upload image\");\n }\n } catch (error) {\n console.error(\"Error uploading file:\", error.message);\n }\n },\n\n submitPendingChanges: async () => {\n const { pendingChanges, content, privacy, files, setStartup, slug } = get();\n\n if (Object.keys(pendingChanges).length === 0) {\n console.log(\"No pending changes to submit.\");\n return { success: true };\n }\n\n // Create a FormData instance for a multipart/form-data request\n const differ = new EditorJsDiff();\n const formData = new FormData();\n const changes = [];\n\n for (const [categoryIndex, subChanges] of Object.entries(pendingChanges)) {\n for (const [subIndex, changeFlags] of Object.entries(subChanges)) {\n const categoryIdx = parseInt(categoryIndex, 10);\n const subIdx = parseInt(subIndex, 10);\n\n const subcategoryContent = content[categoryIdx]?.[subIdx];\n const subcategoryPrivacy = privacy[categoryIdx]?.[subIdx];\n const subcategoryFiles = files[categoryIdx]?.[subIdx].filter((file) => {\n if (file.source === \"local\") {\n return true;\n } else {\n return file.isNew === true;\n }\n });\n\n if (!subcategoryContent) {\n console.error(\n `Missing content for category ${categoryIdx}, subcategory ${subIdx}`\n );\n continue;\n }\n\n // Build the update payload for this subcategory\n const updatePayload = {\n categoryId: subcategoryContent.category_id,\n subcategoryId: subcategoryContent.id,\n updates: {},\n };\n\n // Process content changes if flagged\n if (changeFlags.content) {\n updatePayload.updates.response = subcategoryContent.response;\n updatePayload.updates.diff = differ.compareContent(\n subcategoryContent.originalResponse,\n subcategoryContent.response\n );\n }\n\n // Process privacy changes if flagged\n if (changeFlags.privacy) {\n updatePayload.updates.privacy = subcategoryPrivacy;\n }\n\n // Process file changes if flagged\n if (\n changeFlags.files &&\n Array.isArray(subcategoryFiles) &&\n subcategoryFiles.length > 0\n ) {\n // For local files: check for objects with source === \"local\"\n const localFiles = subcategoryFiles.filter(\n (file) => file.source === \"local\"\n );\n // For cloud files: check for objects with source !== \"local\" and a valid URL\n const cloudFiles = subcategoryFiles.filter(\n (file) => file.source !== \"local\" && file.url\n );\n\n // For each local file, append the actual File object (stored in file.file) to FormData\n if (localFiles.length > 0) {\n localFiles.forEach((file) => {\n // Use a key that identifies the subcategory; Rails will see these as UploadedFile objects.\n formData.append(\n `local_files[${subcategoryContent.id}][]`,\n file.file,\n file.file.name\n );\n });\n // Set a flag so the backend knows to look for local files for this subcategory.\n updatePayload.updates.has_local_files = true;\n }\n\n // For cloud files, pass the records in the JSON payload as before.\n if (cloudFiles.length > 0) {\n console.log(cloudFiles);\n updatePayload.updates.file_records_attributes = cloudFiles.map(\n (file) => ({\n name: file.name,\n url: file.url,\n file_id: file.id,\n size_bytes: file.size_bytes, // adjust as needed (could be file.size_bytes)\n icon: file.icon || file.thumbnail,\n source: file.source, // e.g., \"dropbox\" or \"google\"\n })\n );\n }\n }\n\n // Add this update payload if there are any updates.\n if (Object.keys(updatePayload.updates).length > 0) {\n changes.push(updatePayload);\n }\n }\n }\n\n // Append the changes JSON and any other necessary fields\n formData.append(\"changes\", JSON.stringify(changes));\n formData.append(\"slug\", slug);\n\n try {\n // Ensure your fetchApi (or equivalent) sends the FormData as multipart/form-data.\n const response = await fetchApi(\n \"/sub_categories/bulk_update\",\n \"PATCH\",\n formData,\n true\n );\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || response.statusText);\n }\n\n // Refresh startup data if needed.\n const startupResponse = await fetchApi(\n `/startup_entities/${slug}`,\n \"GET\"\n );\n if (startupResponse.ok) {\n const startupData = await startupResponse.json();\n setStartup(startupData);\n set({ pendingChanges: {} });\n }\n\n return {\n success: true,\n message: \"Changes submitted successfully\",\n changesCount: changes.length,\n };\n } catch (error) {\n console.error(\"Error submitting changes:\", error);\n return {\n success: false,\n error: error.message,\n changesCount: changes.length,\n };\n }\n },\n\n appendCategoryToProgram: (skeleton) => {\n // Map the skeleton steps to categories\n const mappedCategories = skeleton.steps.map((step) => ({\n name: step.step_name,\n id: step.step_name,\n start_date: step.subcategories[0]?.start_date || null, // Use the first subcategory's start date\n sub_categories: step.subcategories.map((sub, index) => ({\n name: sub.name,\n id: index,\n privacy: \"Everyone\",\n response: {\n blocks: [{ type: \"paragraph\", data: { text: sub.outcome } }],\n },\n is_active: true,\n is_editable: true,\n })),\n }));\n\n // Update the program state with the new categories\n set((state) => {\n const existingCategories = state.program?.categories || [];\n return {\n program: {\n ...state.program,\n categories: [...existingCategories, ...mappedCategories],\n },\n };\n });\n },\n}));\n\nexport default useStartupStore;\n","import React from \"react\";\nimport { Routes, Route } from \"react-router-dom\";\nimport Layout from \"../Lib/Layout\";\nimport UserProvider from \"../Lib/UserContext\";\nimport TopicsContainer from \"../Forums/Pages/TopicsList\";\nimport PostContainer from \"../Forums/Pages/TopicsShow\";\nimport QueryProvider from \"../Lib/QueryClientProvider\";\n\nexport default function AuthenticationPage() {\n return (\n \n \n \n \n } />\n }\n />\n \n \n \n \n );\n}\n","import React from \"react\";\nimport HashLayout from \"../Lib/HashLayout\";\nimport UserProvider from \"../Lib/UserContext\";\nimport ProfilePage from \"../Profile/Profile\";\nimport QueryProvider from \"../Lib/QueryClientProvider\";\n\nexport default function DashbaordPage() {\n return (\n \n \n \n \n \n \n \n );\n}\n","import React, { useState } from \"react\";\nimport { useForm } from \"@mantine/form\";\nimport Profile from \"./Pages/Profile\";\nimport useUserStore from \"../../stores/userStore\";\n\nexport default function ProfilePage() {\n const [isEditMode, setIsEditMode] = useState(false);\n const { user } = useUserStore((state) => state.user);\n\n const form = useForm({\n initialValues: {\n avatar: null,\n first_name: user.first_name || \"\",\n last_name: user.last_name || \"\",\n user_type: user.user_type || 0,\n company: user.company || \"\",\n job_title: user.job_title || \"\",\n year_of_experience: user.year_of_experience || 0,\n work_type: user.work_type || \"\",\n university: user.university || \"\",\n degree: user.degree || \"\",\n country: user.address?.country || \"\",\n city: user.address?.city || \"\",\n about_me: user.about_me || \"\",\n expert_in: user.expert_in || \"\",\n skills: user.skills || \"\",\n industries: user.industries || \"\",\n github: user.github || \"\",\n twitter: user.twitter || \"\",\n linkedin: user.linkedin || \"\",\n public_email: user.public_email || \"\",\n public_phone: user.public_phone || \"\",\n display_email: user.display_email,\n display_phone: user.display_phone,\n },\n\n validate: {},\n });\n\n return (\n \n );\n}\n","import React from \"react\";\nimport styled from \"styled-components\";\n\n// Extension to color mapping\nconst extensionColors = {\n PDF: \"#D32F2F\",\n DOC: \"#1976D2\",\n DOCX: \"#1976D2\",\n XLS: \"#388E3C\",\n XLSX: \"#388E3C\",\n PPT: \"#E64A19\",\n PPTX: \"#E64A19\",\n JPG: \"#FBC02D\",\n JPEG: \"#FBC02D\",\n PNG: \"#0288D1\",\n GIF: \"#7B1FA2\",\n TXT: \"#455A64\",\n ZIP: \"#F57C00\",\n MP3: \"#009688\",\n MP4: \"#FF5722\",\n};\n\nconst defaultColor = \"#1976D2\";\n\nconst ScrollableContainer = styled.div`\n max-height: 150px; /* Set the maximum height of the scrollable area */\n overflow-y: auto; /* Enable vertical scrolling */\n`;\n\nconst FileList = ({ files }) => {\n console.log(files);\n const renderFile = (index, file) => {\n // Determine if this is a local file based on its source.\n const isLocal = !file.source;\n\n // For local files, use the File object stored in `file.file`.\n const fileName = isLocal\n ? file.blob\n ? file.blob.filename\n : file.file.name\n : file.name;\n const fileExtension = fileName.split(\".\").pop().toUpperCase();\n\n // For file size, use file.file.size for local files; otherwise use file.size_bytes or file.size.\n const sizeInBytes = isLocal\n ? file.blob\n ? file.blob.byte_size\n : file.file.size\n : file.size_bytes || file.size;\n const fileSizeKiB = (sizeInBytes / 1024.0).toFixed(1);\n\n // For the file icon:\n // - If it’s a file record and an icon is provided, use that.\n // - Otherwise, use a default icon.\n const fileIcon =\n !isLocal && file.icon\n ? file.icon\n : \"https://www.dropbox.com/static/images/icons64/page_white.png\";\n\n // For the download URL:\n // For local files, we create a temporary URL from the File object.\n // For file records, use the provided URL.\n const fileURL = isLocal\n ? file.blob\n ? file.url\n : URL.createObjectURL(file.file)\n : file.url;\n\n return (\n
    \n
    \n
    \n {!isLocal && file.icon ? (\n \n ) : (\n <>\n
    \n \n {fileExtension}\n
    \n \n )}\n
    \n
    \n \n {fileName}\n
    \n
    {fileSizeKiB} KiB
    \n
    \n {fileURL && (\n \n \n
    \n \n \n )}\n \n \n );\n };\n\n return (\n \n {files && files.map((file, i) => renderFile(i, file))}\n \n );\n};\n\nexport default FileList;\n"],"names":["MainContainerWrapper","styled","div","_ref","children","React","BreadcrumbsList","ol","BreadcrumbItem","li","BreadcrumbLink","a","BreadcrumbSeparator","svg","links","map","link","index","key","className","active","name","href","length","width","height","viewBox","fill","xmlns","d","stroke","strokeLinecap","MemoChatComponent","memo","ChatComponent","DashboardCard","MembersList","MemberAvatar","img","InitialAvatar","DropdownMenu","DropdownHeader","DropdownContent","span","ul","ModalContext","ModalProvider","isAnyModalOpen","setIsAnyModalOpen","useState","Provider","value","openModal","closeModal","StartupMembersContent","_ref2","isOwner","isMember","members","slug","t","isDropdownOpen","setIsDropdownOpen","openChat","setOpenChat","dropdownRef","useRef","closeDropdown","ModalTrigger","_ref3","onClick","e","member","initials","first_name","last_name","id","avatar_url","src","alt","InviteMembers","style","position","marginTop","ref","FeatureButton","buttonText","action","toggleDropdown","prev","ActionIcon","size","variant","IconX","UnstyledButton","Group","IconMessage","fontSize","ManageRequestToJoinTeam","Meeting","canSchedule","startupId","StartupMembers","useTranslation","useStartupStore","state","MemoContactMessage","ContactMessage","StartupHeaderContainer","StartupWrapper","StartupImage","StartupContent","StartupTitle","h2","StartupDescription","ReadMoreButton","button","StartupInfoHead","InfoItem","InfoItemLeft","ActionButtons","TeamButton","ActionButton","StartupHeader","isToggle","useLayoutStore","startup","role","isFollowing","startupImage","isCollapsed","setIsCollapsed","follow","setFollow","fileInputRef","setStartupImage","truncatedDescription","description","slice","handleImageClick","current","click","type","display","onChange","async","selectedFile","event","target","files","console","log","URL","createObjectURL","formData","FormData","append","response","fetchApi","ok","user","responseData","json","error","message","Breadcrumbs","Indicator","color","offset","label","IconPencil","image","url","toggleCollapse","editIcon","navigator","clipboard","writeText","window","location","alert","cursor","shareIcon","locationIcon","city","country","ideaIcon","stage","domainIcon","industry","gap","ContainerButton","handleFollowUnfollow","ChatBubble","ChatDocumentUpload","chats","setChats","userMessage","setUserMessage","chatLoading","setChatLoading","isExpanded","setIsExpanded","mdParser","MarkdownIt","chatMessagesRef","chatInputRef","useUserStore","content","roadmapId","selectedProgram","updateStoreChats","pageId","cid","sid","useEffect","handleSendMessage","trim","prevChats","newChats","userId","projectId","fetch","config","chatUrl","method","headers","body","JSON","stringify","user_id","project_id","roadmap_id","selected_step_number","temperature","category_id","subcategory_id","stream","Error","statusText","fetchAIResponseStream","reader","getReader","decoder","TextDecoder","fullResponse","done","read","chunk","decode","focus","scrollTop","scrollHeight","chat","idx","dangerouslySetInnerHTML","__html","render","onKeyPress","placeholder","strokeWidth","strokeLinejoin","Loader","disabled","OutcomeValidation","project_description","step_name","subcategories","program","categories","Object","values","sub","outcome","currentSub","current_subcategory","outcome_of_current_subcategory","validationResult","setValidationResult","streamedData","setStreamedData","loading","setLoading","setError","modalOpened","setModalOpened","Button","compact","payload","validate_url","data","parse","err","Modal","opened","onClose","title","Title","order","align","fontWeight","centered","overlayOpacity","overlayBlur","radius","padding","Text","Center","mb","Badge","rating","weight","maxHeight","overflowY","background","borderRadius","improvements","blocks","block","renderBlock","level","mt","text","items","item","List","spacing","icon","ThemeIcon","IconCheck","improvement","Item","EditorContainer","TextCreationArea","setMessage","editorInstance","editorHolderRef","setContent","setPrivacy","debouncedPrivacyUpdate","useCallback","debounce","saveEditorContent","savedContent","save","initializeEditor","csrfToken","getCsrfToken","metaTag","document","querySelector","EditorJS","holder","tools","header","class","Header","tunes","table","Table","inlineToolbar","rows","cols","withHeadings","Marker","shortcut","linkTool","LinkTool","endpoint","list","paragraph","Paragraph","anyTuneName","AlignmentTuneTool","default","code","CodeTool","readOnly","cancel","destroy","justifyContent","marginBottom","AssignMembers","flex","svgImages","SVGSliderLoader","setIndex","controls","useAnimation","start","scale","opacity","transition","duration","times","ease","runAnimation","motion","animate","RoadmapDetailsContainer","RoadmapTabs","TabButton","RoadmapContent","EmptyState","showChanges","setShowChanges","setSelectedProgram","editMode","setEditMode","setSubcategory","setProgram","sub_categories","tab","handleTabClick","LoadingOverlay","alignItems","loader","visible","diff_proposed_response","DiffDisplay","diffResult","EditorContentDisplay","waiting_for_approval","ProgramChangesApproval","toggle","emptyImage","h3","p","bgcolor","h4","open","_ref4","_ref5","maxWidth","TableOfContentsFloating","setActive","expandedSection","setExpandedSection","isEditMode","setIsEditMode","drawerOpened","setDrawerOpened","selectedCategory","setSelectedCategory","categoryName","setCategoryName","subcategoryNames","setSubcategoryNames","newSubcategoryNames","setNewSubcategoryNames","subcategoriesToDelete","setSubcategoriesToDelete","newStartDate","setNewStartDate","newEndDate","setNewEndDate","setCategory","theme","useMantineTheme","handleSubcategoryNameChange","arguments","undefined","newSubcategories","handleSubcategoryPrivacyChange","privacy","handleSubcategoryDateChange","date","handleSubcategoryDelete","filter","_","handleUpdateDates","category","start_date","end_date","msg","styles","root","container","xl","backgroundColor","white","lg","border","minWidth","linkContainer","paddingLeft","flexDirection","textDecoration","colors","gray","fontSizes","md","minHeight","borderTopRightRadius","borderBottomRightRadius","borderLeft","xs","linkContent","linkDate","sm","marginLeft","linkActive","blue","fn","rgba","subItem","borderBottom","paddingBottom","marginRight","flexShrink","activeIcon","chevron","subItemsContainer","editButton","renderItem","isSubItem","parentIndex","Icon","IconTemplate","isParentActive","isItemActive","Box","component","preventDefault","s","is_active","is_editable","start_day","Date","end_day","switch","sx","colorScheme","dark","transform","IconChevronDown","IconChevronRight","moment","format","subIndex","getPrivacyColor","Paper","IconList","RoadmapPDFGenerator","Drawer","TextInput","input","DateInput","minDate","fullWidth","subcategory","noWrap","Menu","withinPortal","Target","IconUsers","IconUser","IconUsersGroup","Dropdown","Label","Popover","shadow","rightIcon","IconCalendar","maxDate","IconTrash","newSubcategory","handleRemoveNewField","indexToRemove","handleAddNewField","updatedData","sub_categories_attributes","rest","new_sub_categories_attributes","deleted_sub_category_ids","res","ContentContainer","props","collapsed","EditorWrapper","isEditing","ErrorMessage","CollapseButton","editorRef","isSaving","setIsSaving","saveError","setSaveError","isGuideCollapsed","setIsGuideCollapsed","localEditorInstance","currentPageId","currentIndex","saveGuideContent","initializeGuideEditor","guide","levels","defaultLevel","marker","alignment","onReady","setTimeout","firstBlock","useLayoutEffect","destroyPreviousEditor","handleContentChange","margin","savedData","guideContent","sub_category","overflow","bottom","left","right","textAlign","AttachedDocuments","ButtonContainer","DocumentUpload","submitPendingChanges","success","GoogleDrivePickerAndUploader","priorityStyles","Low","Medium","High","TableView","columns","columnOrder","onTaskClick","onAddTask","boardTitle","boardDescription","thStyle","tdStyle","tasks","forEach","colId","column","task","push","columnId","columnName","columnColor","borderCollapse","priority","join","assignees","assignee","tags","tag","colSpan","TaskModal","taskData","onSave","onDelete","onFileChange","users","tagInputRef","stopKey","stopPropagation","mode","field","autoFocus","onKeyDown","Textarea","minRows","Grid","Col","Select","keys","FileInput","multiple","file","MultiSelect","selectedIds","selected","u","includes","newTag","Math","floor","random","flexWrap","newTags","i","BoardModal","modal","ColumnModal","EditableColumnHeader","onNameChange","onColorChange","dragHandleProps","_extends","IconGripVertical","KanbanComponent","_ref6","initialData","subCategoryId","onBoardDeleted","setColumns","setColumnOrder","editColumns","setEditColumns","taskModal","setTaskModal","showBoardModal","setShowBoardModal","setBoardTitle","setBoardDescription","viewMode","setViewMode","showColumnModal","setShowColumnModal","newColumnName","setNewColumnName","updateData","newColumns","newColumnOrder","boardId","task_board","board_title","board_description","columns_attributes","col","tasks_attributes","column_id","user_ids","tags_attributes","updatedBoardData","transformedData","handleGlobalAddTask","handleTaskClick","handleDeleteColumn","handleColumnNameChange","newName","handleColumnColorChange","headerButtonStyle","columnsContainerStyle","taskStyle","boxShadow","_ref8","saveBoard","saveNewColumn","newColumnId","now","_ref7","saveNewTask","newTask","saveEditedTask","updatedTask","newTaskList","Array","from","splice","handleAddColumn","confirm","DragDropContext","onDragEnd","result","destination","source","draggableId","startCol","droppableId","finishCol","removed","startTasks","finishTasks","taskId","moveTask","Droppable","direction","provided","innerRef","droppableProps","Draggable","String","draggableProps","overflowX","borderTop","lineHeight","IconClockPlay","IconClockStop","toLowerCase","IconArrowUp","IconArrowRight","IconArrowDown","_ref9","boards","setBoards","then","catch","handleBoardDeleted","deletedBoardId","board","paddingRight","paddingInline","handleCreateNewBoard","newBoardData","subCategoryName","feedbacks","setFeedbacks","newFeedback","setNewFeedback","drawerFeedback","setDrawerFeedback","submitFeedback","feedbackText","onSuccess","feedback","newEntry","withBorder","my","fb","Avatar","charAt","currentTarget","autosize","create","set","get","setDate","newDate","endDate","setEndDate","setDuration","newDuration","setOpened","isOpened","isLoading","handleUpdate","roadmap_duration","StartupBodyContainer","LeftColumn","showTask","RightColumn","StartupBody","guideEditorRef","setShowTask","TaskBoardsManager","RoadmapDetails","GuideEditor","OpeningRoles","SubcategoryFeedback","hidePlus","generateTags","subName","words","split","KanbanBoard","kanbanData","setKanbanData","setIsLoading","cards","catIndex","subCategories","mappedStatus","status","isArray","assigned_users","cardId","Id","Status","Summary","Assignee","Category","Tags","Priority","Color","transformProgramData","statusColors","Open","InProgress","Review","Close","columnTemplate","keyField","headerText","getUserInitials","firstName","lastName","toUpperCase","getUserFullName","Boolean","cssClass","dataSource","enableTooltip","allowDragAndDrop","dragStop","args","newStatus","errorData","updateSubCategoryStatus","swimlaneSettings","collapsible","cardSettings","headerField","template","maxLength","substring","truncateText","selectionType","cardRendered","element","ColumnsDirective","ColumnDirective","allowToggle","registerLicense","timelineSettings","topTier","unit","bottomTier","labelSettings","leftLabel","rightLabel","parentEnd","usersArray","assignedUsers","resources","validSubCategories","TaskID","TaskName","StartDate","EndDate","AssignedUsers","subtasks","arr","subStart","subEnd","predecessor","Predecessor","Progress","progress","transformProgramToTasks","projectStartDate","projectEndDate","validCategories","startDates","cat","getTime","endDates","earliestStart","min","latestEnd","max","oneWeek","computeProjectDates","GanttComponent","taskFields","startDate","dependency","child","treeColumnIndex","gridLines","allowSelection","allowSorting","allowFiltering","allowResizing","highlightWeekends","rowHeight","taskbarHeight","EventMarkersDirective","EventMarkerDirective","day","Inject","services","Selection","Sort","Filter","DayMarkers","Resize","RoadmapHeader","HeaderTitle","HeaderText","NotFoundContainer","NotFoundTitle","h1","NotFoundDescription","MemoStartupShow","StartupShow","useStartup","setStartup","useQuery","queryKey","queryFn","retry","staleTime","cacheTime","StartupContainer","project","HeaderAndSidebar","setIsFollowing","useParams","setValue","logTime","setIsToggle","setIsWorkMode","isError","addEventListener","removeEventListener","MainContainer","SegmentedControl","FullFeaturedGantt","FullFeaturedKanbanWithMantine","StartupPrivacy","handleSubmit","startup_entity","public_listed","val","leftIcon","IconEye","IconEyeOff","checked","htmlFor","Description","IdeaValidation","idea","setIdea","validateToken","setValidateToken","close","useDisclosure","ideaShort","setIdeaShort","setChecked","evaluation","setEvaluation","showSignUpModal","setShowSignUpModal","timer","clearTimeout","withCloseButton","transitionProps","timingFunction","closeOnClickOutside","overlayProps","backgroundOpacity","blur","SignUpModal","Anchor","history","back","h","IconArrowLeft","Stack","Alert","IconAlertCircle","py","withAsterisk","outline","Checkbox","temporary","tokens","startup_creation_token","IconBulb","isNaN","final_score","Tooltip","IconBuildingSkyscraper","profile_complete","IconRocket","IdeaValidationSummary","overall_feedback","strength","reference_trends","IconChartLine","market_demand","IconScale","feasibility","IconLayersDifference","scalability","IconTrophy","competitive_advantage","IconCashBanknote","revenue_model","AuthenticationPage","QueryProvider","Layout","UserProvider","allowUnauthenticated","Routes","Route","path","AboutMe","form","showError","selectedExperts","setSelectedExperts","expert_in","m","selectedSkills","setSelectedSkills","skills","selectedIndustries","setSelectedIndustries","industries","orderSm","orderLg","grow","mr","fw","about_me","defaultValue","updatedValue","setFieldValue","errors","isCreatable","options","hasSelectAll","fz","c","MeetingConfirmation","token","meeting","setMeeting","notification","setNotification","fetchData","Notification","scheduled_date","toLocaleString","organizer","entity","image_url","ProgressContainer","ProgressBar","ProgressText","RemainingTime","DoneText","setProgress","remainingTime","setRemainingTime","totalDuration","setInterval","newProgress","clearInterval","percentage","ceil","OrderedList","ListItem","ImageWrapper","figure","Image","Figcaption","figcaption","CodeBlock","pre","EmbedWrapper","LinkPreview","LinkImage","LinkContent","LinkTitle","h5","LinkDescription","LinkButton","FileAttachment","FileIcon","bgColor","FileInfo","FileTitle","FileSize","DownloadButton","parsedContent","renderInitials","contentEditable","marginInlineStart","marginBlockStart","HeaderTag","headerStyles","ListTag","caption","embed","frameBorder","allowFullScreen","meta","as","rel","backgroundImage","fileData","extensionColor","fileSize","toFixed","extension","heading","headingIndex","row","rowIndex","cell","cellIndex","validations","user_type","job_title","year_of_experience","message_content","setMessageContent","messages","setMessages","oldMessages","setOldMessages","selectedChat","setSelectedChat","reply","setReply","replies","setReplies","MessageItem","created_at","handleChaSelect","fetchReplies","handleReply","contact_messages_reply","contact_id","px","pb","contact_message","Collapse","in","mx","maxRows","contact_messages_replies","user_contact_messages","unread_messages","read_messages","Dashboard","sidebar","Tour","showTour","setShowTour","localStorage","getItem","setItem","ReactJoyride","steps","placement","disableBeacon","continuous","run","showSkipButton","overlay","buttonNext","buttonBack","beaconInner","animation","top","beaconOuter","boxSizing","transformOrigin","showProgress","disableScrolling","Messages","contacts","setContacts","typingStatus","setTypingStatus","presenceStatus","setPresenceStatus","useLocation","chatId","URLSearchParams","search","gradient","to","deg","IconMessages","ContactList","DisplayMessages","updateTypingStatus","isTyping","updatePresenceStatus","presence","NoChatsFound","recipient","last_message","ContactItem","lastMessage","getPresenceClasses","handleClick","fromNow","x1","x2","y1","y2","setRecipient","newMessageContent","setNewMessageContent","userChannel","setUserChannel","typingTimeout","markMessagesAsRead","read_at","subscription","perform","message_id","App","subscriptions","channel","received","chat_id","prevMessages","presenceSubscription","unsubscribe","sendMessage","send","recipient_id","UserProfileContainer","UserProfile","userImage","setUserImage","setUser","setChatId","admin","useForm","initialValues","avatar","company","work_type","university","degree","validate","setValues","address","getForm","is_following","IconUserMinus","IconUserPlus","MessageUser","display_email","public_email","display_phone","public_phone","cx","cy","r","onSubmit","skill","withPadding","memberships","SimpleGrid","verticalSpacing","breakpoints","maxTags","Infinity","allowDuplicates","splitChars","onRemove","onClear","inputValue","setInputValue","inputRef","addTag","trimmedTag","some","existingTag","removeTag","trimmedInput","onPaste","tagsToAdd","clipboardData","getData","RegExp","handleClear","handleApproval","approve","renderJsonDiff","oldData","newData","orderedChanges","change","oldPosition","added","modified","old","blockId","getChangeClass","renderContent","new","changes","renderChange","StartupConfirmation","setData","accept","inviter_id","inviteable","renderFormField","fieldName","required","upperFirst","replace","UserDetails","countriesData","searchable","nothingFound","CreatePasswordForInviteUser","invitation_token","password","password_confirmation","Container","ta","Divider","invitation","PasswordInput","ModerationHistory","LogoContainer","LogoImage","BetaTag","Logo","subdomain","hostname","parts","getSubdomain","logoMapping","mindsbourg","vnips","nc","shouldRenderSubdomainLogo","process","roadmapUrl","UserInfoIcons","wrap","tt","IconMapPin","ChangePasswordForm","reset_password_token","is_new_password","inline","rem","ml","useDropbox","dropboxAppKey","dropboxRedirectUri","accessToken","setAccessToken","storedToken","tokenExpiry","dbx","setDbx","getElementById","dropboxScript","createElement","setAttribute","appendChild","parentNode","removeChild","dropbox","Dropbox","authenticateDropbox","authUrl","encodeURIComponent","screen","authWindow","interval","closed","hash","params","expiresIn","expiryTime","openDropboxChooser","linkType","multiselect","choose","isDropboxAuthenticated","ModerationActivity","posts","setPosts","is_topic_starter","postable","IconExternalLink","setVisible","useFilterStore","filterParams","setSearchTerm","term","search_term","setFilterParam","updatedParams","StyledButton","LayoutContainer","LayoutRow","SidebarLarge","aside","SidebarSmall","SidebarCloseButton","Content","main","Overlay","sidebarContent","mainContent","isSidebarVisible","setIsSidebarVisible","handleMenuClick","debouncedHandleResize","innerWidth","onMenuClick","SearchBarContainer","Input","SearchButton","SearchBar","handleSearchClick","searchIcon","HeaderContainer","LeftRightContainer","LeftComponent","RightComponent","MenuButton","MenuIcon","leftC","rightC","HeaderToolsContainer","chatNotifications","activityNotification","LanguageDropdown","UserButton","userName","full_name","userEmail","DrawerContainer","Tabs","NotificationsContainer","NotificationItem","NotificationAvatar","NotificationContentWrapper","NotificationTitle","NotificationContent","NotificationDate","DrawerToggleIcon","toggleIcon","readNotifications","unreadNotifications","setOpen","activeTab","setActiveTab","drawerRef","toggleButtonRef","handleClickOutside","contains","notificationsToDisplay","actor","ProfileIcon","IconContainer","NotificationIndicator","NotificationIndicatorMessage","navlinks","recent_activities_count","chats_count","gamification","HeaderRightTools","hasNotification","ActivitiesNotification","MessagesNotification","NavbarSimple","Feedback","play","Audio","desc","setDesc","setRating","zIndex","IconNote","Dialog","email","unread","setUnread","setRead","newCount","setNewCount","connected","disconnected","unread_chats","next_five_chats","NotificationDrawer","Mail","unread_activities","next_five_activities","Bell","setTitle","setDescription","meetingDate","setMeetingDate","startDateTime","setStartDateTime","selectedValues","setSelectedValues","endTimeRef","memberNames","mbr","DatePickerComponent","TimePickerComponent","enabled","selectedDate","setHours","getHours","getMinutes","start_time","end_time","meeting_date","attendees","IconSpeakerphone","SignInModal","isSignedIn","currentUser","resetMode","setResetMode","test","handleSocialLogin","provider","redirect_url","MantineProvider","components","defaultProps","dashboard","redirect_to","getInputProps","justify","reset","labelPosition","GoogleButton","LinkedInButton","Profile","Skills","Personal","Education","Job","Socials","editAboutMe","setEditAboutMe","mih","current_level","next_level","points_threshold","current_points","Chip","Switch","linkedin","github","twitter","getAttribute","defaultHeaders","Accept","fetchBody","customHeaders","timeout","controller","AbortController","abort","signal","MemoTopics","Topics","TopicsContainer","channel_type","topics","setTopics","locked","setLocked","sticky","setSticky","channelName","setChannelName","param1","topic_views","replaceAll","Markdown","visibleDragbar","preview","hideToolbar","topic","TopicListItem","Skeleton","RenderPost","post","Spoiler","showLabel","hideLabel","read_state","first_post","last_post_at","posts_count","last_user","unread_posts_count","BrowserRouter","webpackContext","req","webpackContextResolve","__webpack_require__","o","resolve","module","exports","RenderTopics","context","userIsBlocked","CreateTopic","PostCard","following","url_path","statusStyles","pending","headerColor","textColor","subTextColor","detailColor","blocked","approved","currentStyle","moderation_state","messageboards","setMessageBoards","messageboard","setMessageBoard","m_id","find","messageboard_id","details","setDetails","moderation","handleModeration","last_seen_at","topics_count","UserRow","thredded_user_detail","moderation_state_changed_at","ModerationUsers","setUsers","setSearch","ScrollArea","leftSection","IconSearch","EditStartup","owner","setOwner","website","social_media","project_type","is_owner","industriesData","queryClient","QueryClient","QueryClientProvider","client","Resources","updateLastSeen","setUpdateInterval","clearUpdateInterval","isSuccess","isFetching","fetchUser","refetchOnWindowFocus","refetchOnMount","refetchOnReconnect","retryOnMount","JoinWaitlistForm","setFormData","phone","cv","isModalOpen","setIsModalOpen","isSubmitted","setIsSubmitted","handleChange","prevData","formDataToSend","entries","StyledFeatureButton","fullwidth","PlusSpan","EmailForwarding","selectedEmails","setSelectedEmails","selectedInstitutions","setSelectedInstitutions","subject","salutation","orientation","onTabChange","Tab","Panel","inst","email_type","recipient_email","institutions","TagsInput","handleMultiSelectInstitutions","updatedInstitutions","marginInline","useStyles","createStyles","control","DropDownSelect","setSelected","classes","onOpen","ChangeEmail","DeleteAccount","Settings","firstTab","setFirstTab","IconPassword","IconLanguage","pt","UpdatePasswordForm","UserProfilePage","Posts","postsContainer","setTopic","replyContent","setReplyContent","handleDeletePost","handleEditPost","Topic","Post","is_admin","first_unread_in_page","first_in_page","setFollowing","selectedUser","intervalIdRef","updatedFields","setSelectedUser","intervalId","RoadmapItem","RoadmapIcon","RoadmapInfo","RoadmapName","RoadmapDate","PremiumAlert","HoverCard","IconInfoCircle","CategoryWithSubcategories","setSelectedPrograms","enableEdit","showSubcategories","setShowSubcategories","dateStep","setDateStep","setEditorState","roadmapIcon","DatePicker","newNames","morphRotate","keyframes","LoaderS","Message","FormContainer","HeaderContent","Caption","darkMode","FormGrid","FormField","StyledTextArea","textarea","select","SecurityGrid","SecurityCard","CardHeader","CardTitle","CardDescription","Footer","StepCounter","ButtonGroup","PricingContainer","EmailSection","CheckboxGroup","CheckboxLabel","HelperText","LoadingScreen","currentMessageIndex","setCurrentMessageIndex","prevIndex","MultiStepForm","currentStep","setCurrentStep","roadmapChunks","setRoadmapChunks","stepContainerRef","focusable","requiredFields","handleKeyPress","handleNext","validateCurrentStep","isValid","fields","setFieldError","cleanText","sessionStorage","roadmap_payload","assign","redirect_path","addDays","days","getDate","renderCurrentStep","gridColumn","CreateStartup","setToken","isProject","setIsProject","pathname","capturedToken","pop","StartupCreate","CorporateSignUpForm","company_name","company_website","contact_person","industry_sector","desired_expertise","terms_and_policy","selectedSectors","setSelectedSectors","corporate_signup","option","has","setMembers","removeMembers","pendingJoinRequest","handleRequest","accepted","pending_requests","join_request_id","not_pending_requests","handleRole","membershipId","newRoleIndex","membership_id","new_role","removeMember","newRequests","Card","Section","inheritPadding","CustomDropdown","processing","LeaveStartup","isOpen","setIsOpen","selectedRoleIndex","setSelectedRoleIndex","roles","handleRoleChange","experienceRanges","MembersFilters","count","memoizedSelectTypes","useMemo","searchParams","experience","expert","memoizedSelectData","countries","expertInObj","skillsObj","filterKey","selectType","selectData","setFilterParams","MemoMembersFilters","useUsers","paramsObject","queryString","toString","Members","searchParamsExecuted","Users","startups","setStartups","inviteable_type","inviteable_id","level_name","withArrow","IconDots","other_user_id","Calendar","scheduleObj","events","setEvents","currentView","setCurrentView","dateRange","setDateRange","end","setMonth","getMonth","fetchEvents","toISOString","transformedEvents","Subject","StartTime","EndTime","Location","RecurrenceRule","recurrence_rule","RecurrenceID","recurrence_id","RecurrenceException","recurrence_exception_dates","isRecurring","is_recurring","parentId","parent_id","updateEvent","recurrenceAction","eventData","deleteEvent","startTime","handleRecurringEvent","Promise","DialogUtility","okButton","cancelButton","beforeClose","textContent","showCloseIcon","closeOnEscape","X","Y","buttons","buttonModel","DropDownListComponent","dataBind","floatLabelType","ScheduleComponent","eventSettings","enableRecurrenceValidation","allowEditing","allowAdding","allowDeleting","actionBegin","requestType","newEvent","createEvent","updatedEvent","eventToDelete","navigating","currentDate","getDay","getFullYear","ViewsDirective","ViewDirective","Day","Week","WorkWeek","Month","DragAndDrop","useActivities","Activity","stats","setStats","activity","setActivity","view","setView","counts","activities","prevUser","IconSocial","followers_count","followings_count","followed_startups_count","ac","sub_message","Followers","Followings","Startups","openings_length","StartupCard","workMode","HashLayout","Router","FeatureCardContainer","FeatureImage","FeatureDetails","FeatureTitle","FeatureDescription","imageUrl","OpenRolesContainer","RolesList","RoleItem","RoleIcon","RoleContent","RoleHeader","RoleTitle","RoleStatus","userRole","setUserRole","setStatus","requirements","setRequirements","setOpenings","removeOpenings","openings","handleDelete","roleId","opening","op","Openings","canAddRole","FeatureCard","CreateRoleImage","ApplyForRole","openingId","roleIcon","reason","setReason","opening_id","join_request","i18n","dropdownOpen","setDropdownOpen","selectedLanguage","setSelectedLanguage","language","changeLanguage","lang","languages","UploadBox","UploadIcon","CombinedSignUpForm","formType","setFormType","setFile","expertFormData","setExpertFormData","companyFormData","setCompanyFormData","handleExpertChange","handleCompanyChange","resetExpertForm","phd","institution","expertise","bio","resetCompanyForm","handleSetForm","AddphotoIcon","handleSignIn","railsButton","LinkedInIcon","old_password","new_password","isHashRouter","NavLinkComponent","NavLink","Link","footer","paddingTop","focusStyles","black","getStylesRef","linkIcon","primaryColor","marginBlockEnd","IconId","IconStack3","IconSettings","handleSidebarToggle","navbar","navbarMain","IconHome","IconLogout","appId","setFiles","isGoogleAuthenticated","createPicker","silentAuthenticate","useGoogleDrive","clientId","apiKey","fetchDropboxThumbnail","IconBrandGoogleDrive","handleGoogleDrivePick","google","picker","Response","ACTION","Action","PICKED","pickedFiles","DOCUMENTS","doc","thumbnailUrl","size_bytes","sizeBytes","mimeType","iconUrl","docId","isNew","thumbnail","existingFiles","handleDropboxPick","selectedFiles","all","filesFromDropbox","path_lower","bytes","IconFilePlus","whiteSpace","FileList","newFiles","lastModified","getValidationRules","login","register","confirm_password","terms","AuthenticationForm","useToggle","userData","underline","setFunction","Onboarding","isMobile","useMediaQuery","setShowError","Stepper","allowNextStepsSelect","onStepClick","completedIcon","IconCircleCheck","Step","IconUserCheck","IconListDetails","IconShieldCheck","hasErrors","UserButtonContainer","UserButtonStyled","UserInfoWrapper","UserInitials","UserInfo","UserName","UserEmail","DropdownIcon","DropdownLink","DropdownButton","handleLogout","removeItem","n","WarningBanner","UserHeader","showWarning","setShowWarning","WarningIcon","CancelIcon","UserImage","CardGrid","TagWrapper","Tag","FooterLeft","FooterRight","Actions","PrimaryButton","SecondaryButton","CardsSection","NavigationButton","slideIndex","PaginationWrapper","expanded","PaginationButton","ViewMoreButton","GridContainer","allCards","setExpanded","currentPage","setCurrentPage","setSlideIndex","cardsPerRow","setCardsPerRow","updateCardsPerRow","cardsPerPage","totalPages","visibleCards","handlePrevSlide","handleNextSlide","card","closest","noImage","ShareIcon","LocIcon","StarIcon","handleViewMoreClick","TagsWrapper","SearchTags","FinancialIcon","FooterLinks","HelpSection","HelpItem","FooterIcon","FooterRights","StartupFooter","HelpIcon","AccountIcon","HeadTitle","Subtitle","currentValue","clearable","InputWithButton","prevParams","CreateAction","validated_once","IconBrain","useFilteredStartups","similarStartups","setSimilarStartups","searchStartups","setSearchStartups","stages","sorting","SidebarAction","new_user","StartupCards","concat","tenant_name","tenant_logo","OwnStartups","BaseStyles","ValidateButton","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","_ref20","_ref21","NewUserContainer","ImageContainer","NewUserContent","tooltipStyles","tooltip","_ref22","tooltipLabel","ButtonComponent","primary","secondary","childrenArray","toArray","buttonIcon","ValidateSection","IdeaIcon","_ref23","PlusIcon","UserIcon","BalancedImage","DashbaordPage","Forums","Workspace","ProfilePage","Calender","Code","textareaProps","MDEditor","defaultTabEnable","previewOptions","rehypePlugins","rehypeSanitize","startupChannel","setStartupChannel","fetchMessages","startup_entity_slug","handleReceivedMessage","ChannelsGroup","collection","group","setToggle","page","updated_at","emoji","CreateEditCategory","groups","setChannelsGroup","openCreateCategory","setOpenCategory","channelDesc","setChannelDesc","channelGroup","setChannelGroup","messageboard_group_id","CreateCategoryGroup","openCreateCategoryGroup","setOpenCategoryGroup","groupName","setGroupName","setEmoji","emojis","messageboard_group","SettingsForm","followNewTopics","setFollowNewTopics","followMentionedTopics","setFollowMentionedTopics","emailNotificationsForTopics","setEmailNotificationsForTopics","mfollowNewTopics","setMFollowNewTopics","mfollowMentionedTopics","setMFollowMentionedTopics","memailNotificationsForTopics","setMEmailNotificationsForTopics","user_preferences","auto_follow_topics","follow_topics_on_mention","notifications_for_followed_topics","messageboard_preference","requestBody","user_preferences_form","notifications_for_followed_topics_attributes","messageboard_auto_follow_topics","messageboard_follow_topics_on_mention","messageboard_notifications_for_followed_topics_attributes","newState","channelsGroup","setGroups","g","handleToggle","collectionLinks","cg","IconCategoryPlus","IconPlus","Moderation","additionalBadWords","configureFilter","addWords","clean","googleAccessToken","setGoogleAccessToken","setIsGoogleAuthenticated","pickerInited","setPickerInited","tokenClient","setTokenClient","loadGoogleAPIs","gapiScript","onload","initPicker","gisScript","initTokenClient","googleScript","gapi","load","accounts","oauth2","client_id","scope","prompt","callback","expires_in","access_token","pickerCallback","docsView","DocsView","ViewId","DOCS","setIncludeFolders","setSelectFolderEnabled","PickerBuilder","addView","setOAuthToken","setDeveloperKey","setAppId","setCallback","build","requestAccessToken","MyStuff","needlePosition","setNeedlePosition","totalSubCategories","filledSubCategories","subCat","Slider","thumbChildren","IconChecks","marks","thumbSize","thumb","borderWidth","StartupButtonContainer","InviteUser","activeDomain","addToSubdomain","signup_url","CopyButton","copied","copy","add_to_subdomain","active_domain_name","IconUsersPlus","StartupButton","domains","startupDropdownOpen","setStartupDropdownOpen","domainDropdownOpen","setDomainDropdownOpen","activeStartup","setActiveStartup","setActiveDomain","domainsWithMain","currentHostname","currentSubdomain","matchedDomain","domain","currentSlug","matchedStartup","toggleDomainDropdown","currentUrl","domainParts","port","baseDomain","newHostname","newUrl","protocol","handleDomainSwitch","NavLinksContainer","NavLinksWrapper","nav","StyledNavLink","CustomNavLink","InnerNavLink","NavIcon","NavDivider","icons","MicrosoftSignInButton","redirectToInput","submit","SidebarContainer","startupDetails","navLinks","startupName","subText","NavLinks","lastPart","Sidebar","homeIcon","forumIcon","membersIcon","calenderIcon","activityIcon","workspaceIcon","profileIcon","settingsIcon","GoogleIcon","preserveAspectRatio","handleFilterChange","deadlines","joinDate","assignedTasks","useStartups","startup_entities","entity_type","member_productivity","response_fill_percentage","team_role","membership_start_date","assigned_categories","unread_contact_messages_count","pending_join_requests","RingProgress","roundCaps","thickness","sections","MembersProductivity","center","memId","setMemId","onMouseEnter","onMouseLeave","ResponsiveContainer","AreaChart","Area","dataKey","fillOpacity","AddMember","roleOffered","setRoleOffered","disableButton","setDisableButton","existingJoinRequest","Root","Body","rightSection","startup_id","plusIcon","IconHandGrab","parseJSON","createUserInitialsEditorBlock","userInitials","userUrl","addUserInitialsToNewData","updatedBlocks","newBlock","oldBlock","isNewBlock","isModifiedBlock","sanitizeBlock","sanitized","isBlockIdenticalIgnoringInitials","containsInitials","addUserInitialsToBlockData","showTemporaryMessage","contentTouched","touched","hasFiles","privacyChanged","oldDataRaw","newDataRaw","newDataWithInitials","file_id","Funding","funding","equity","setEquity","valuation","setValuation","investors_details","setInvestorDetails","ask","setAsk","valuationFixed","parseFloat","NumberInput","IconUserDollar","DiffTester","editor1Ref","editor2Ref","setDiffResult","handleCompare","content1","content2","EditorJsDiff","compareContent","setFormat","disposition","filename","indexOf","matches","exec","blob","download","remove","revokeObjectURL","fetchPDF","createConsumer","skillsData","l","Notifications","Editor","programs","selectedPrograms","handleSave","canAssign","categoryId","assign_members","total_files_size","fileRecords","file_records","Guide","AiChat","classNames","trigger","IconEyeClosed","IconTrashX","IconPencilPlus","otherMembers","setOtherMembers","assignMembers","setAssignMembers","memberToRemove","updatedOtherMembers","updatedAssignMembers","assignMember","openDelay","closeDelay","showTools","setShowTools","setGuide","editable","setText","handleButtonClick","inputs","parameters","max_tokens","generatedText","generated_text","handleLLMAIRequest","ai","rightSectionWidth","SelectComponent","tabIndex","lh","selectedImage","setSelectedImage","selects","FileButton","backgroundImageStyle","backgroundSize","constructor","this","blockTypeHandlers","diffParagraph","bind","diffHeader","diffList","diffCode","diffImage","diffTable","quote","diffQuote","checklist","diffChecklist","delimiter","diffDelimiter","diffEmbed","raw","diffRaw","oldContent","newContent","oldBlocks","newBlocks","oldPositions","Map","newPositions","unchanged","reordered","processedOldBlocks","Set","processedNewBlocks","oldIndex","newIndex","findIndex","add","blockDiff","compareBlocks","newPosition","hasChanges","sortDiffResult","processedIds","diff","sortPosition","addedDiff","sort","b","findOriginalPosition","unchangedBlock","removedBlock","reorderedBlock","handler","diffWords","textChanges","levelChanged","oldItems","newItems","itemChanges","oldItem","newItem","itemDiff","styleChanged","codeChanges","diffLines","languageChanged","urlChanged","captionChanges","cellChanges","maxCols","rowChanges","j","oldCell","newCell","cellDiff","textDiff","checkedChanged","service","html","renderDiffHtml","moveIndicator","changeClass","renderModifiedBlock","tableHtml","checkboxClass","listType","pendingChanges","showFunding","startActivity","updatedContent","updatedPrivacy","updatedFiles","categoryIndex","pageContent","pagePrivacy","pageFiles","subCategory","originalResponse","wait","limited_conversation_histories","updatedCategoryContent","updatedCategoryPrivacy","updatedCategoryFiles","filteredSubCategories","is_member","existing_join_request","pending_join_requests_count","summaryResponse","summaryPayload","skeletonResponse","skeletonData","appendCategoryToProgram","isCompleted","statusResponse","statusData","startupResponse","startupData","tasksResponse","refreshError","updatedSubcategoryContent","updatedProgram","updatedContentForCategory","updatedPrivacyForCategory","updatedFilesForCategory","toggleOpenChat","toggleShowFunding","timeSpentInMinutes","time_spent","handleFileChange","imageURL","differ","subChanges","changeFlags","categoryIdx","parseInt","subIdx","subcategoryContent","subcategoryPrivacy","subcategoryFiles","updatePayload","subcategoryId","updates","localFiles","cloudFiles","has_local_files","file_records_attributes","changesCount","skeleton","mappedCategories","step","existingCategories","PostContainer","extensionColors","PDF","DOC","DOCX","XLS","XLSX","PPT","PPTX","JPG","JPEG","PNG","GIF","TXT","ZIP","MP3","MP4","defaultColor","ScrollableContainer","renderFile","isLocal","fileName","fileExtension","fileSizeKiB","byte_size","fileIcon","fileURL"],"sourceRoot":""}