{"version":3,"file":"application-3ykUVr6W.js","sources":["../../../app/frontend/ui/Onboarding.tsx","../../../app/frontend/images/icons/checkmark.svg?react","../../../app/frontend/layouts/OnboardingLayout.tsx","../../../app/frontend/screens/SignInScreen.tsx","../../../app/frontend/screens/SignInTokenScreen.tsx","../../../app/frontend/layouts/RequireUserSignedOut.tsx","../../../app/frontend/common/CardFeed.tsx","../../../app/frontend/benchmarks/CustomLegend.tsx","../../../app/frontend/benchmarks/CustomTooltip.tsx","../../../app/frontend/benchmarks/BenchmarkChart.tsx","../../../app/frontend/benchmarks/BarChart.tsx","../../../app/frontend/benchmarks/EmptyState.tsx","../../../app/frontend/benchmarks/benchmarkQuery.ts","../../../app/frontend/celebrations/celebrationCreateMutation.ts","../../../app/frontend/celebrations/useCreateCelebration.ts","../../../app/frontend/celebrations/AddCelebration.tsx","../../../app/frontend/feed/DeepDiveModule.tsx","../../../app/frontend/feed/NewInLibraryModule.tsx","../../../app/frontend/common/commaSeparatedList.ts","../../../app/frontend/pro-events/pro-events.tsx","../../../app/frontend/pro-events/ProEventsBanner.tsx","../../../app/frontend/screens/EventsScreen.tsx","../../../app/frontend/events/UpcomingEventsModule.tsx","../../../app/frontend/feed/DiveInModule.tsx","../../../app/frontend/offers/UserOfferModule.tsx","../../../app/frontend/layouts/PageWithRightSidebar.tsx","../../../app/frontend/screens/PostScreen.tsx","../../../app/frontend/components/modals/AddToHomescreenModal.tsx","../../../app/frontend/feed/GetStartedLink.tsx","../../../app/frontend/feed/CTAChecklist.tsx","../../../app/frontend/feed/FeedSidebar.tsx","../../../app/frontend/feed/TagFilter.tsx","../../../app/frontend/feed/useTagFilter.ts","../../../app/frontend/feed/NewPostsIndicator.tsx","../../../app/frontend/common/useScrollingStopped.ts","../../../app/frontend/feed/UnreadPostsIndicator.tsx","../../../app/frontend/screens/FeedScreen.tsx","../../../app/frontend/editor/editorTools/WorkweekImageTool.ts","../../../app/frontend/editor/SelectionUtils.ts","../../../app/frontend/editor/editorTools/ColorTool.ts","../../../app/frontend/editor/editorTools/WorkweekCalloutTool.ts","../../../app/frontend/editor/editorTools/WorkweekLinkTool.ts","../../../app/frontend/editor/editorTools/WorkweekPdfEmbedTool.ts","../../../app/frontend/images/icons/delimiter.svg?raw","../../../app/frontend/editor/editorTools/WorkweekDelimiterTool.ts","../../../app/frontend/images/icons/bar-chart.svg?raw","../../../app/frontend/editor/editorTools/PollTool.tsx","../../../app/frontend/editor/AirTableFormEmbedModal.tsx","../../../app/frontend/editor/AirTableFormEmbedEditor.tsx","../../../app/frontend/editor/editorTools/AirTableFormEmbedTool.tsx","../../../app/frontend/editor/editorTools/Strikethrough.tsx","../../../app/frontend/editor/Editor.tsx","../../../app/frontend/articles/ArticleDetailsModal.tsx","../../../app/frontend/articles/useArticleDetailsModal.ts","../../../app/frontend/ui/UserPill.tsx","../../../app/frontend/types/index.ts","../../../app/frontend/articles/ArticleCollaboratorsModal.tsx","../../../app/frontend/ui/drawer.tsx","../../../app/frontend/articles/RevisionHistoryDrawer.tsx","../../../app/frontend/articles/ExternalShareSettingModal.tsx","../../../app/frontend/ui/UploadDropzone.tsx","../../../app/frontend/articles/ImageCoverModal.tsx","../../../app/frontend/editor/EditorMetadataSection.tsx","../../../app/frontend/content/useSubmitForReviewConfirm.tsx","../../../app/frontend/content/useRequestEditsConfirm.tsx","../../../app/frontend/images/icons/dollar-square.svg?react","../../../app/frontend/content/useToggleFeaturedConfirm.tsx","../../../app/frontend/articles/ArticlePublishModal.tsx","../../../app/frontend/articles/ArticleTopActionToolbar.tsx","../../../app/frontend/editor/ArticleLockedBanner.tsx","../../../app/frontend/editor/useArticleLocking.ts","../../../app/frontend/articles/ArticleBottomActionToolbar.tsx","../../../app/frontend/content/ArticleEditor.tsx","../../../app/frontend/content/CreateSectionModal.tsx","../../../app/frontend/content/multipleContainersKeyboardPreset.ts","../../../app/frontend/common/queries.ts","../../../app/frontend/content/CreateLessonModal.tsx","../../../app/frontend/content/Lesson.tsx","../../../app/frontend/content/Section.tsx","../../../app/frontend/content/SectionsEditor.tsx","../../../app/frontend/content/CourseActionToolbar.tsx","../../../app/frontend/content/CourseEditor.tsx","../../../app/frontend/screens/ArticleEditorScreen.tsx","../../../app/frontend/images/bot-battery-reply.gif","../../../app/frontend/screens/AskTheBotScreen.tsx","../../../app/frontend/screens/EditPostScreen.tsx","../../../app/frontend/benchmarks/EditDialog.tsx","../../../app/frontend/merge/steps/ManualIndustry.tsx","../../../app/frontend/benchmarks/Status.tsx","../../../app/frontend/benchmarks/filterContext.tsx","../../../app/frontend/common/MultiSelect.tsx","../../../app/frontend/images/icons/add-circle.svg?react","../../../app/frontend/images/icons/minus-circle.svg?react","../../../app/frontend/benchmarks/Filters.tsx","../../../app/frontend/benchmarks/BenchmarkSidebar.tsx","../../../app/frontend/benchmarks/SmallScreenCharts.tsx","../../../app/frontend/images/icons/info.svg?react","../../../app/frontend/benchmarks/Charts.tsx","../../../app/frontend/benchmarks/Syncing.tsx","../../../app/frontend/screens/BenchmarkScreen.tsx","../../../app/frontend/layouts/AdminLayout.tsx","../../../app/frontend/admin/ChangeEmailModal.tsx","../../../app/frontend/admin/users/UsersSearch.tsx","../../../app/frontend/components/forms/SearchableSelectField.tsx","../../../app/frontend/onboarding/OnboardingExperienceQuestions.tsx","../../../app/frontend/admin/users/UsersFilters.tsx","../../../app/frontend/admin/users/UsersTable.tsx","../../../app/frontend/ui/CopyToClipboard.tsx","../../../app/frontend/admin/users/AllMembersTable.tsx","../../../app/frontend/admin/leads/LeadsSearch.tsx","../../../app/frontend/common/generateInviteUrl.ts","../../../app/frontend/admin/users/InviteMemberModal.tsx","../../../app/frontend/admin/users/InvitationsTable.tsx","../../../app/frontend/admin/users/PastMembersTable.tsx","../../../app/frontend/screens/admin/AdminMembersScreen.tsx","../../../app/frontend/admin/leads/LeadsTable.tsx","../../../app/frontend/screens/admin/AdminLeadsScreen.tsx","../../../app/frontend/introduction-cycles/api.ts","../../../app/frontend/introduction-cycles/IntroductionCycleForm.tsx","../../../app/frontend/screens/admin/introduction-cycles/AdminIntroductionsScreen.tsx","../../../app/frontend/screens/admin/introduction-cycles/AdminNewIntroductionCycleScreen.tsx","../../../app/frontend/ui/ClickableIconWrapper.tsx","../../../app/frontend/introduction-cycles/IntroductionMatchOverrideForm.tsx","../../../app/frontend/introduction-cycles/IntroductionMatchRow.tsx","../../../app/frontend/screens/admin/introduction-cycles/AdminIntroductionCycleScreen.tsx","../../../app/frontend/screens/admin/introduction-cycles/AdminEditIntroductionCycleScreen.tsx","../../../app/frontend/screens/admin/AdminGroupsScreen.tsx","../../../app/frontend/admin/AdminActionToolbar.tsx","../../../app/frontend/admin/ChannelForm.tsx","../../../app/frontend/screens/admin/AdminChannelEditScreen.tsx","../../../app/frontend/screens/admin/AdminChannelsScreen.tsx","../../../app/frontend/pro-events/PublishedToggle.tsx","../../../app/frontend/screens/admin/pro-events/AdminProEventsScreen.tsx","../../../app/frontend/components/forms/DateField.tsx","../../../app/frontend/components/forms/ToggleField.tsx","../../../app/frontend/components/forms/UserSelectField.tsx","../../../app/frontend/pro-events/ProEventForm.tsx","../../../app/frontend/screens/admin/pro-events/AdminProEventNewScreen.tsx","../../../app/frontend/screens/admin/pro-events/AdminProEventEditScreen.tsx","../../../app/frontend/screens/admin/AdminExperimentsScreen.tsx","../../../app/frontend/directory/UserNameAndAvatar.tsx","../../../app/frontend/screens/admin/AdminExperimentScreen.tsx","../../../app/frontend/content/ContentForm.tsx","../../../app/frontend/content/CreateContentModal.tsx","../../../app/frontend/articles/CreateContentButton.tsx","../../../app/frontend/common/enumTranslations.tsx","../../../app/frontend/images/icons/send-2.svg?react","../../../app/frontend/images/icons/external-link.svg?react","../../../app/frontend/articles/CollaborationInvites.tsx","../../../app/frontend/common/formatArray.ts","../../../app/frontend/content/useTogglePremiumConfirm.tsx","../../../app/frontend/content/useChangeVisibilityConfirm.tsx","../../../app/frontend/ui/scroll-area.tsx","../../../app/frontend/common/DropdownMenuCheckboxes.tsx","../../../app/frontend/content/useArchiveArticleConfirm.tsx","../../../app/frontend/content/useToggleExternalShare.tsx","../../../app/frontend/content/useResendPublishEventConfirm.tsx","../../../app/frontend/screens/MyContentScreen.tsx","../../../app/frontend/images/icons/close-circle.svg?react","../../../app/frontend/common/SearchFeedback.tsx","../../../app/frontend/content/useReadIndicators.tsx","../../../app/frontend/screens/LibraryScreen.tsx","../../../app/frontend/components/onboarding/OnboardingBioField.tsx","../../../app/frontend/components/onboarding/OnboardingDetailsFields.tsx","../../../app/frontend/images/icons/upload-photo.svg?react","../../../app/frontend/components/onboarding/OnboardingPhotoField.tsx","../../../app/frontend/images/icons/sign-out-left.svg?react","../../../app/frontend/account-settings/ReferralCode.tsx","../../../app/frontend/components/onboarding/Pronouns.tsx","../../../app/frontend/screens/EditProfileScreen.tsx","../../../app/frontend/chat/useCreateMessage.ts","../../../app/frontend/chat/MessageSectionHeader.tsx","../../../app/frontend/chat/LeaveRoomModal.tsx","../../../app/frontend/chat/StartRoomModal.tsx","../../../app/frontend/chat/AddMembersModal.tsx","../../../app/frontend/chat/RenameRoomModal.tsx","../../../app/frontend/chat/utils.tsx","../../../app/frontend/chat/MessagesPaneHeader.tsx","../../../app/frontend/chat/MessagesPane.tsx","../../../app/frontend/images/icons/message-compose.svg?react","../../../app/frontend/chat/RoomsPane.tsx","../../../app/frontend/chat/StartDmModal.tsx","../../../app/frontend/screens/MessagesScreen.tsx","../../../app/frontend/directory/UserCard.tsx","../../../app/frontend/images/icons/map-marker.svg?react","../../../app/frontend/screens/directory/UserLocationMap.tsx","../../../app/frontend/screens/directory/DirectoryMap.tsx","../../../app/frontend/introduction-cycles/IntroductionsSettingsModule.tsx","../../../app/frontend/ui/AvatarStack.tsx","../../../app/frontend/screens/directory/IntroductionsModule.tsx","../../../app/frontend/screens/DirectoryScreen.tsx","../../../app/frontend/bookmarks/BookmarkCard.tsx","../../../app/frontend/bookmarks/BookmarkTabs.tsx","../../../app/frontend/common/DropdownMenuBadges.tsx","../../../app/frontend/screens/BookmarksScreen.tsx","../../../app/frontend/layouts/RequireUserInactive.tsx","../../../app/frontend/images/sad-computer.svg?react","../../../app/frontend/screens/SubscribeScreen.tsx","../../../app/frontend/layouts/FeedSkeletonLayout.tsx","../../../app/frontend/images/error-screen.png","../../../app/frontend/images/x-octogon.svg?react","../../../app/frontend/screens/NotFoundScreen.tsx","../../../app/frontend/ui/collapsible.tsx","../../../app/frontend/admin/Events.tsx","../../../app/frontend/screens/admin/AdminEventsScreen.tsx","../../../app/frontend/ui/DescriptionList.tsx","../../../app/frontend/subscriptions/SubscriptionManagementModule.tsx","../../../app/frontend/common/useForceUpdate.ts","../../../app/frontend/screens/AccountSettingsScreen.tsx","../../../app/frontend/users/MembershipCard.tsx","../../../app/frontend/users/useQaFitHelper.ts","../../../app/frontend/components/onboarding/OnboardingCard.tsx","../../../app/frontend/screens/onboarding/FitWaitingScreen.tsx","../../../app/frontend/screens/onboarding/UnfitScreen.tsx","../../../app/frontend/screens/LegalPolicyScreen.tsx","../../../app/frontend/screens/admin/AdminDebugSettingsScreen.tsx","../../../app/frontend/screens/admin/auto-messages/AdminAutoMessagesScreen.tsx","../../../app/frontend/admin/AutoMessageForm.tsx","../../../app/frontend/screens/admin/auto-messages/AdminAutoMessagesNewScreen.tsx","../../../app/frontend/screens/admin/auto-messages/AdminAutoMessagesEditScreen.tsx","../../../app/frontend/screens/admin/offers/OffersScreen.tsx","../../../app/frontend/screens/admin/administrators/AdminAdministratorsScreen.tsx","../../../app/frontend/ui/TexasToast.tsx","../../../app/frontend/admin/users/FitProfileDisplay.tsx","../../../app/frontend/admin/users/ApplicationsTable.tsx","../../../app/frontend/admin/users/UnfitApplicationsTable.tsx","../../../app/frontend/screens/admin/AdminApplicationsScreen.tsx","../../../app/frontend/screens/admin/AdminDashboardScreen.tsx","../../../app/frontend/admin/users/ActivitiesTable.tsx","../../../app/frontend/screens/admin/AdminHrisScreen.tsx","../../../app/frontend/screens/admin/AdminLibraryScreen.tsx","../../../app/frontend/admin/RulesEngineConditionBuilder.tsx","../../../app/frontend/admin/GroupForm.tsx","../../../app/frontend/screens/admin/AdminGroupNewScreen.tsx","../../../app/frontend/screens/admin/AdminGroupEditScreen.tsx","../../../app/frontend/admin/SailthruSyncs.tsx","../../../app/frontend/screens/admin/AdminSailthruSyncsScreen.tsx","../../../app/frontend/application/layouts/ApplicationLayout.tsx","../../../app/frontend/application/screens/ApplicationLandingScreen/ResponsibilityQuestions.tsx","../../../app/frontend/application/screens/ApplicationLandingScreen/MadlibsQuestions.tsx","../../../app/frontend/application/screens/ApplicationLandingScreen.tsx","../../../app/frontend/common/useExperiment.ts","../../../app/frontend/application/screens/ABFitWaitingScreen/Referral.tsx","../../../app/frontend/application/screens/ABFitWaitingScreen/FileUploader.tsx","../../../app/frontend/application/screens/ABFitWaitingScreen/Upload.tsx","../../../app/frontend/application/screens/ABFitWaitingScreen/ProcessingCTAs.tsx","../../../app/frontend/application/screens/ABFitWaitingScreen/Rejected.tsx","../../../app/frontend/application/screens/ABFitWaitingScreen/Processing.tsx","../../../app/frontend/application/screens/ABFitWaitingScreen.tsx","../../../app/frontend/layouts/RequireUserOnboarding.tsx","../../../app/frontend/application/screens/MostExcitedAboutScreen.tsx","../../../app/frontend/application/useApplicationRoutes.tsx","../../../app/frontend/screens/admin/AdminScreenVariantsScreen.tsx","../../../app/frontend/admin/ScreenVariantForm.tsx","../../../app/frontend/screens/admin/AdminScreenVariantNewScreen.tsx","../../../app/frontend/screens/admin/AdminScreenVariantEditScreen.tsx","../../../app/frontend/screens/admin/AdminChannelNewScreen.tsx","../../../app/frontend/layouts/CommunityLayout.tsx","../../../app/frontend/router.tsx","../../../app/frontend/app.tsx","../../../app/frontend/entrypoints/application.tsx"],"sourcesContent":["import React from \"react\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { cn } from \"~/lib/utils\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\n\nexport const OnboardingTitle: React.FC<{\n children?: React.ReactNode\n className?: string\n}> = ({ children, className }) => {\n const ccls = useCommunityClassname()\n\n return (\n \n {children}\n \n )\n}\n\nexport const FieldPointer: React.FC<{\n show?: boolean\n className?: string\n children: React.ReactNode\n}> = ({ show = false, className, children }) => {\n return (\n \n {children}\n \n )\n}\n\nexport const OnboardingFieldLabel: React.FC<\n React.HTMLAttributes & {}\n> = ({ className, ...props }) => (\n \n)\n\nexport const OnboardingInterestToggle: React.FC<\n React.ButtonHTMLAttributes & { checked: boolean }\n> = ({ checked, className, ...props }) => {\n const community = useCommunity()\n\n return (\n \n )\n}\n\nexport const OnboardingValue: React.FC<\n React.HTMLAttributes\n> = ({ className, ...props }) => {\n return (\n \n )\n}\n\nexport const SignInContent: React.FC<{ children?: React.ReactNode }> = (\n props\n) => {\n const ccls = useCommunityClassname()\n return (\n \n )\n}\n","import * as React from \"react\";\nconst SvgCheckmark = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.714 9.40179L10.714 16.4018C10.6531 16.463 10.5806 16.5115 10.5008 16.5446C10.4211 16.5778 10.3356 16.5948 10.2492 16.5948C10.1628 16.5948 10.0773 16.5778 9.99752 16.5446C9.91775 16.5115 9.84531 16.463 9.78434 16.4018L6.72184 13.3393C6.6608 13.2782 6.61237 13.2058 6.57934 13.126C6.5463 13.0463 6.5293 12.9608 6.5293 12.8744C6.5293 12.7881 6.5463 12.7026 6.57934 12.6229C6.61237 12.5431 6.6608 12.4707 6.72184 12.4096C6.78289 12.3486 6.85536 12.3001 6.93511 12.2671C7.01487 12.2341 7.10036 12.2171 7.18669 12.2171C7.27301 12.2171 7.3585 12.2341 7.43826 12.2671C7.51801 12.3001 7.59048 12.3486 7.65153 12.4096L10.2497 15.0078L16.7854 8.4732C16.9087 8.34992 17.0759 8.28065 17.2503 8.28065C17.4246 8.28065 17.5918 8.34992 17.7151 8.4732C17.8384 8.59648 17.9077 8.76369 17.9077 8.93804C17.9077 9.11239 17.8384 9.2796 17.7151 9.40289L17.714 9.40179Z\", fill: \"white\" }));\nexport default SvgCheckmark;\n","import { ReactNode, useEffect } from \"react\"\nimport { cn } from \"~/lib/utils\"\nimport CheckmarkIcon from \"../images/icons/checkmark.svg?react\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { iHateItHereBranding } from \"~/images/__generated__/i-hate-it-here-branding\"\nimport { CommunityLogo } from \"~/community/CommunityLogo\"\n\nconst OnboardingStep = ({\n title,\n completed,\n current,\n}: {\n title: string\n completed: boolean\n current: boolean\n}) => {\n return (\n
\n {completed ? (\n
\n \n
\n ) : (\n
\n )}\n
\n {title}\n
\n
\n )\n}\n\nconst OnboardingSteps = ({\n className,\n currentStep,\n}: {\n className: string\n currentStep: number\n}) => {\n return (\n \n 1}\n />\n 2}\n />\n 3}\n />\n \n )\n}\n\nexport const OnboardingLayout = ({\n step,\n children,\n fullWidth = false,\n hideCommunityFooter = false,\n containerInnerClass,\n}: {\n step: number\n children: ReactNode\n fullWidth?: boolean\n hideCommunityFooter?: boolean\n containerInnerClass?: string\n}) => {\n const community = useCommunity()\n const ccls = useCommunityClassname()\n\n useEffect(() => {\n document.body.classList.add(\"onboarding\")\n document.body.classList.add(`onboarding-${community.slug.toLowerCase()}`)\n return () => {\n document.body.classList.remove(\"onboarding\")\n document.body.classList.remove(\n `onboarding-${community.slug.toLowerCase()}`\n )\n }\n }, [community.slug])\n\n const containerClass = \"overflow-auto px-4 pt-10 flex-grow\"\n\n const headerClass = cn(\n \"p-4 max-md:pt-9 md:h-[73px] border-b-[1px] px-4 relative flex items-center w-full\",\n {\n \"justify-center\": step <= 0,\n \"justify-center md:justify-start\": step > 0,\n },\n ccls({\n [CommunitySlug.Marketingland]: \"border-primary\",\n default: \"border-borderColor\",\n })\n )\n const footerClass = \"flex flex-col items-center py-8 md:pt-16 md:pb-6\"\n\n return (\n
\n \n \n {step > 0 && (\n \n )}\n
\n\n
\n \n {step > 0 && (\n \n )}\n {children}\n
\n \n {!hideCommunityFooter && community.slug === CommunitySlug.Safespace && (\n
\n
\n Brought to you by\n
\n \n
\n )}\n \n )\n}\n","import { useState } from \"react\"\nimport { useNavigate } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport { applicationLandingPath, signInTokenPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { Button } from \"~/ui/button\"\nimport { OnboardingFieldLabel, SignInContent } from \"~/ui/Onboarding\"\nimport { OnboardingLayout } from \"../layouts/OnboardingLayout\"\nimport { Trans, useTranslation } from \"react-i18next\"\nimport { Link } from \"~/ui/Link\"\nimport { Alert } from \"~/ui/alert\"\nimport { CircleAlert } from \"lucide-react\"\n\nconst SEND_MAGIC_LINK_MUTATION = gql(`\n mutation SendMagicLink($input: SendMagicLinkInput!) {\n sendMagicLink(input: $input) {\n sessionId\n }\n }\n`)\n\nexport const SignInScreen = () => {\n const [sendMagicLink, { loading }] = useSafeMutation(SEND_MAGIC_LINK_MUTATION)\n const [email, setEmail] = useState(\"\")\n const [linkError, setLinkError] = useState(\"\")\n const navigate = useNavigate()\n const { t } = useTranslation(\"signin\")\n\n const onSubmit = async () => {\n const { data } = await sendMagicLink({\n variables: {\n input: {\n email,\n },\n },\n })\n\n if (data?.sendMagicLink.sessionId) {\n setLinkError(\"\")\n navigate(signInTokenPath({ sessionId: data.sendMagicLink.sessionId }))\n } else if (data?.sendMagicLink) {\n setLinkError(\"Whoops, we didn't find that email\")\n } else {\n setLinkError(\"Error Sending Magic Link\")\n }\n }\n\n return (\n \n \n
{t(\"signinTitle\")}
\n
\n \n
\n
\n {linkError !== \"\" && (\n \n \n
{linkError}
\n
\n )}\n
\n \n \n Sign In\n \n \n
\n Not a member yet?{\" \"}\n Sign Up\n
\n
\n
\n
\n )\n}\n","import { useState } from \"react\"\nimport { useNavigate, useParams } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport invariant from \"tiny-invariant\"\nimport { signInTokenPath, tokenConfirmationPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { Button } from \"~/ui/button\"\nimport { OnboardingLayout } from \"../layouts/OnboardingLayout\"\nimport { OTPInput, SlotProps, REGEXP_ONLY_DIGITS_AND_CHARS } from \"input-otp\"\nimport { cn } from \"~/lib/utils\"\nimport toast from \"react-hot-toast\"\nimport { OnboardingFieldLabel, SignInContent } from \"~/ui/Onboarding\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { useConfig } from \"~/common/ConfigProvider\"\n\nexport const RESEND_MAGIC_LINK_MUTATION = gql(`\n mutation ResendMagicLink($input: ResendMagicLinkInput!) {\n resendMagicLink(input: $input) {\n sessionId\n }\n }\n`)\n\nfunction Slot(props: SlotProps) {\n const ccls = useCommunityClassname()\n\n return (\n \n {props.char !== null &&
{props.char}
}\n \n )\n}\n\nexport const SignInTokenScreen = () => {\n const [resendMagicLink] = useSafeMutation(RESEND_MAGIC_LINK_MUTATION)\n const [token, setToken] = useState(\"\")\n\n const { sessionId } = useParams()\n invariant(sessionId)\n\n const navigate = useNavigate()\n const { csrfToken } = useConfig()\n\n const sendAgain = async () => {\n const { data } = await resendMagicLink({\n variables: {\n input: {\n sessionId,\n },\n },\n })\n\n if (data?.resendMagicLink.sessionId) {\n toast.success(\"Code sent, please check your email\")\n navigate(signInTokenPath({ sessionId: data.resendMagicLink.sessionId }), {\n replace: true,\n })\n } else {\n toast.error(\"Error sending code\")\n }\n }\n\n return (\n \n \n
\n Please check your email for the code provided\n
\n
\n
\n \n \n\n \n \n Confirm Code\n \n\n
\n Didn't receive the code?{\" \"}\n \n Send Again\n \n
\n \n
\n
\n
\n )\n}\n","import { Outlet, useNavigate } from \"react-router-dom\"\nimport { useEffect } from \"react\"\nimport { feedPath } from \"~/common/paths\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\nexport const RequireUserSignedOut = () => {\n const navigate = useNavigate()\n const currentUser = useCurrentUser(false)\n\n useEffect(() => {\n if (currentUser) {\n navigate(feedPath.pattern)\n }\n }, [currentUser, navigate])\n\n if (currentUser) return null\n\n return \n}\n","import { ReactNode } from \"react\"\n\nexport const CardFeed = ({ children }: { children: ReactNode }) => {\n return
{children}
\n}\n","import {\n USER_DATA_KEY_FOR_DISPLAY,\n COMMUNITY_DATA_KEY_FOR_DISPLAY,\n} from \"~/benchmarks/BenchmarkChart\"\n\nconst LegendIcon = ({ color }: { color: string }) => {\n return (\n \n \n \n )\n}\n\ninterface LegendPayload {\n value: number // or any other appropriate type\n color: string\n dataKey: string\n}\n\n// Recharts does not allow specifying which data keys are displayed in the\n// legend. This implements a custom legend styled to look like an existing\n// legend which allows specifying keys.\nexport const CustomLegend = ({ payload }: { payload?: LegendPayload[] }) => {\n return (\n
\n {(payload || []).map(\n (entry, index) =>\n [USER_DATA_KEY_FOR_DISPLAY, COMMUNITY_DATA_KEY_FOR_DISPLAY].includes(\n entry.dataKey\n ) && (\n
\n
\n \n {entry.value}\n
\n
\n )\n )}\n
\n )\n}\n","import { DefaultTooltipContent } from \"recharts\"\n\nimport {\n BENCHMARK_DATA_KEY,\n BENCHMARK_DATA_KEY_FOR_DISPLAY,\n} from \"~/benchmarks/BenchmarkChart\"\n\ninterface PayloadItem {\n name: string\n}\n\ninterface PayloadProps {\n payload?: PayloadItem[]\n}\n\nexport const CustomTooltip: React.FC = (\n props\n) => {\n const { payload, ...rest } = props\n\n if (payload != null && payload.length > 0) {\n const newPayload = payload\n .filter((item: PayloadItem) => item.name !== \"area\")\n .map((item: PayloadItem) => {\n if (item.name === BENCHMARK_DATA_KEY) {\n return {\n ...item,\n name: BENCHMARK_DATA_KEY_FOR_DISPLAY,\n }\n } else {\n return item\n }\n })\n\n return \n }\n\n return \n}\n","import { FC, ReactNode, SVGProps } from \"react\"\nimport {\n Tooltip,\n ResponsiveContainer,\n Legend,\n XAxis,\n YAxis,\n CartesianGrid,\n Line,\n} from \"recharts\"\n\nimport { CustomLegend } from \"./CustomLegend\"\nimport { CustomTooltip } from \"./CustomTooltip\"\n\nimport { Data } from \"~/__generated__/graphql\"\n\nexport const USER_DATA_KEY = \"user\"\nexport const USER_DATA_KEY_FOR_DISPLAY = \"You\"\nexport const COMMUNITY_DATA_KEY = \"community\"\nexport const COMMUNITY_DATA_KEY_FOR_DISPLAY = \"Peer Avg\"\nexport const BENCHMARK_DATA_KEY = \"benchmark\"\nexport const BENCHMARK_DATA_KEY_FOR_DISPLAY = \"Global Average\"\nexport const USER_COLOR = \"#E02B59\"\nexport const COMMUNITY_COLOR = \"#FFD1DD\"\nexport const BENCHMARK_COLOR = \"#000000\"\n\nexport type ChartData = Array<{\n name: string\n user: number\n community: number\n benchmark: number\n}>\n\nexport interface Margin {\n top?: number\n right?: number\n left?: number\n bottom?: number\n}\n\ninterface BenchmarkChartProps {\n ChartComponent: FC\n children: ReactNode\n tooltip?: boolean\n legend?: boolean\n margin?: Margin\n height?: number\n data: Array\n domain?: Array\n tickCount?: number\n axisValueFormatter?: (value?: string) => string\n yAxisLine?: boolean | SVGProps\n}\n\ntype ChartComponentProps = Parameters[0]\ninterface Payload {\n value: string\n}\n\nexport const BenchmarkChart: FC = ({\n axisValueFormatter = (value) => value || \"\",\n children,\n ChartComponent,\n data,\n domain,\n height = 300,\n legend = true,\n margin,\n tickCount,\n tooltip = true,\n yAxisLine = true,\n}: BenchmarkChartProps) => {\n const margins = {\n ...{\n top: 10,\n right: 0,\n left: 0,\n bottom: 5,\n },\n ...(margin ? margin : {}),\n }\n\n const maxDomain = data.reduce((max, obj) => {\n return Math.max(\n ...[\n max,\n Math.max(...[obj.benchmark || 0, obj.user || 0, obj.community || 0]),\n ]\n )\n }, 0)\n\n const maxDomainString = Number.isInteger(maxDomain)\n ? maxDomain.toString()\n : maxDomain.toFixed(1)\n\n const formattedLabelMaxChars =\n axisValueFormatter(maxDomainString).length - maxDomainString.length\n\n const formattedLabelTranslation = (() => {\n if (formattedLabelMaxChars === 0) {\n return -24\n } else if (formattedLabelMaxChars === 1) {\n return -34\n } else {\n return -44\n }\n })()\n\n const CustomYAxisTick = ({\n x,\n y,\n payload,\n }: {\n x?: number\n y?: number\n payload?: Payload\n }) => (\n \n \n \n {axisValueFormatter(payload?.value)}\n \n \n \n )\n\n const mappedDataForDisplay = data.map((d) => {\n return {\n name: d.name,\n [USER_DATA_KEY_FOR_DISPLAY]: d.user,\n [COMMUNITY_DATA_KEY_FOR_DISPLAY]: d.community,\n [BENCHMARK_DATA_KEY_FOR_DISPLAY]: d.benchmark,\n }\n })\n\n return (\n \n \n \n \n }\n tickFormatter={(value) =>\n axisValueFormatter ? axisValueFormatter(value) : value\n }\n domain={domain}\n tickCount={tickCount}\n />\n \n {children}\n {tooltip && (\n } />\n )}\n {legend && } />}\n \n \n )\n}\n","import { ComposedChart, Bar } from \"recharts\"\nimport { Chart } from \"~/__generated__/graphql\"\nimport {\n BenchmarkChart,\n USER_DATA_KEY_FOR_DISPLAY,\n COMMUNITY_DATA_KEY_FOR_DISPLAY,\n USER_COLOR,\n COMMUNITY_COLOR,\n Margin,\n} from \"./BenchmarkChart\"\n\nexport const BarChart = ({\n axisValueFormatter,\n chart,\n height,\n interactive = true,\n legend = true,\n margin,\n tickCount,\n yAxisLine = true,\n}: {\n axisValueFormatter?: (value: string) => string\n chart: Chart\n domain?: Array\n height?: number\n interactive?: boolean\n legend?: boolean\n margin?: Margin\n tickCount?: number\n yAxisLine?: boolean\n}) => {\n return (\n \n \n \n \n )\n}\n","import { BarChart } from \"./BarChart\"\n\nimport { subMonths, format } from \"date-fns\"\n\nimport { CardFeed } from \"~/common/CardFeed\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\n\nimport {\n USER_DATA_KEY,\n COMMUNITY_DATA_KEY,\n BENCHMARK_DATA_KEY,\n} from \"~/benchmarks/BenchmarkChart\"\n\nconst generateCostPerEmployee = () => {\n return Math.floor(Math.random() * (170 - 85) + 85)\n}\n\nconst generateTurnOverData = () => {\n return Math.floor(Math.random() * (15 - 1) + 1)\n}\n\nconst generateTenure = () => {\n return Math.floor(Math.random() * (55 - 10) + 10)\n}\n\nconst generateRetention = () => {\n return Math.floor(Math.random() * (100 - 85) + 85)\n}\n\nconst turnoverData = {\n data: [...Array(10)].map((_, i) => {\n return {\n name: format(subMonths(new Date(), i), \"MMM\"),\n [USER_DATA_KEY]: generateTurnOverData(),\n [COMMUNITY_DATA_KEY]: generateTurnOverData(),\n [BENCHMARK_DATA_KEY]: 17.3,\n }\n }),\n}\n\nexport const costPerEmployeeData = {\n data: [...Array(10)].map((_, i) => {\n return {\n name: format(subMonths(new Date(), i), \"MMM\"),\n [USER_DATA_KEY]: generateCostPerEmployee(),\n [COMMUNITY_DATA_KEY]: generateCostPerEmployee(),\n }\n }),\n}\n\nconst tenureData = {\n data: [...Array(10)].map((_, i) => {\n return {\n name: format(subMonths(new Date(), i), \"MMM\"),\n [USER_DATA_KEY]: generateTenure(),\n [COMMUNITY_DATA_KEY]: generateTenure(),\n [BENCHMARK_DATA_KEY]: 49,\n }\n }),\n}\n\nexport const retentionData = {\n data: [...Array(10)].map((_, i) => {\n return {\n name: format(subMonths(new Date(), i), \"MMM\"),\n [USER_DATA_KEY]: generateRetention(),\n [COMMUNITY_DATA_KEY]: generateRetention(),\n [BENCHMARK_DATA_KEY]: 95,\n }\n }),\n}\n\nexport const EmptyState = () => {\n return (\n \n \n \n Turnover\n \n \n \n \n \n\n \n \n Cost Per Employee\n \n \n \n \n \n\n \n \n Tenure (in months)\n \n \n \n \n \n\n \n \n Retention Rate\n \n \n \n \n \n \n )\n}\n","import { gql } from \"~/__generated__\"\n\n// This file is parsed also used by ruby, don't add anything to it aside from this query\n\nexport const BENCHMARK_QUERY_DOCUMENT = gql(`\n query Benchmarks($locations: [Location!], $industries: [IndustryEnum!], $companySizes: [CompanySize!], $startDate: ISO8601DateTime, $endDate: ISO8601DateTime) {\n benchmarks(locations: $locations, industries: $industries, companySizes: $companySizes, startDate: $startDate, endDate: $endDate) {\n costPerEmployee {\n data {\n name\n user\n community\n benchmark\n }\n }\n tenure {\n data {\n name\n user\n community\n benchmark\n }\n }\n turnover {\n data {\n name\n user\n community\n benchmark\n }\n }\n retention {\n data {\n name\n user\n community\n benchmark\n }\n }\n }\n }\n`)\n","import { gql } from \"~/__generated__\"\n\nexport const CELEBRATION_CREATE_MUTATION = gql(`\n mutation CelebrationCreate($input: CelebrationCreateInput!) {\n subject: celebrationCreate(input: $input) {\n currentUser {\n __typename\n id\n\n celebrations {\n id\n celebrationType\n customCelebrationType\n date\n }\n }\n }\n }\n`)\n","import { CelebrationCreateInput } from \"~/__generated__/graphql\"\nimport { CELEBRATION_CREATE_MUTATION } from \"~/celebrations/celebrationCreateMutation\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\n\nexport const useCreateCelebration = () => {\n const [createCelebration, { loading }] = useSafeMutation(\n CELEBRATION_CREATE_MUTATION\n )\n\n const create = async (input: CelebrationCreateInput) => {\n return await createCelebration({\n variables: {\n input,\n },\n })\n }\n return { create, loading }\n}\n","import { useEffect, useMemo, useState } from \"react\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { CelebrationTypeEnum } from \"~/__generated__/graphql\"\nimport { useCreateCelebration } from \"./useCreateCelebration\"\nimport { Button } from \"~/ui/button\"\nimport { CelebrationForm } from \"./CelebrationForm\"\nimport { displayErrors } from \"~/common/validations\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\nexport const AddCelebration = () => {\n const community = useCommunity()\n const currentUser = useCurrentUser()\n const [date, setDate] = useState()\n const { create, loading } = useCreateCelebration()\n\n const [celebrationType, setCelebrationType] = useState(\n community.celebrationTypes[0]\n )\n const [customCelebrationType, setCustomCelebrationType] = useState(\"\")\n\n const currentCelebrations = useMemo(\n () => currentUser?.celebrations ?? [],\n [currentUser]\n )\n\n useEffect(() => {\n if (celebrationType !== CelebrationTypeEnum.Other) {\n setCustomCelebrationType(\"\")\n }\n }, [celebrationType])\n\n const enabledCelebrationTypes = useMemo(() => {\n const enabled = community.celebrationTypes.filter(\n (type) =>\n !currentCelebrations.some(\n (celebration) => celebration.celebrationType === type\n )\n )\n\n // If enabled does not contain celebrationType, change celebrationType to enabled[0]\n if (\n enabled.length &&\n !enabled.some((type) => type === celebrationType) &&\n celebrationType !== CelebrationTypeEnum.Other\n ) {\n setCelebrationType(enabled[0])\n }\n\n return enabled\n }, [community, currentCelebrations, celebrationType])\n\n const onAdd = async () => {\n const { errors } = await create({\n date: date?.toISOString() ?? \"\",\n celebrationType: celebrationType,\n customCelebrationType: customCelebrationType,\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n setDate(undefined)\n setCelebrationType(enabledCelebrationTypes[0])\n }\n }\n\n return enabledCelebrationTypes.length === 0 ? (\n <>\n ) : (\n <>\n
\n \n
\n \n
\n
\n \n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { useMemo } from \"react\"\nimport { Link } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { formatDate } from \"~/common/formatDate\"\nimport { articlePath } from \"~/common/paths\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { HighlightContent } from \"~/components/HighlightContent\"\nimport { cn } from \"~/lib/utils\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\n\nexport const DeepDiveSkeleton = () => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport const DeepDiveModule = () => {\n const { creator } = useCommunity()\n const { data, loading } = useQuery(DEEP_DIVE_QUERY_DOCUMENT, {\n variables: {\n collaborators: [creator.id],\n },\n })\n const article = useMemo(() => data?.articles.edges[0]?.node, [data])\n const ccls = useCommunityClassname()\n\n return !loading && !article ? null : (\n \n \n Latest Deep Dive\n \n \n {loading && }\n {!loading && article && (\n
\n
\n \n {article.approvedRevision?.title}\n \n
\n
\n \n
\n
\n {formatDate(article.createdAt, \"MMM d, yyyy\")}\n
\n \n See More\n \n
\n )}\n
\n
\n )\n}\n\nexport const DEEP_DIVE_QUERY_DOCUMENT = gql(`\n query DeepDiveArticles($collaborators: [ID!], $sort: ArticleSortTypeEnum) {\n articles(collaborators: $collaborators, contentTypes: [DEEP_DIVE], sort: CREATED_AT_DESC, first: 1) {\n edges {\n node {\n ...DeepDiveArticle\n }\n }\n }\n }\n`)\n\ngql(`\n fragment DeepDiveArticle on Article {\n id\n createdAt\n markedLiveAt\n collaborators {\n id\n user {\n ...User_Avatar\n }\n }\n approvedRevision {\n id\n title\n description\n }\n }\n`)\n","import { useQuery } from \"@apollo/client\"\nimport { useMemo } from \"react\"\nimport { Link } from \"react-router-dom\"\nimport { Article_CardFragment, CommunitySlug } from \"~/__generated__/graphql\"\nimport { articlePath, libraryPath } from \"~/common/paths\"\nimport { HighlightContent } from \"~/components/HighlightContent\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { DeepDiveSkeleton } from \"./DeepDiveModule\"\nimport { StackedUserAvatars } from \"~/ui/StackedUserAvatars\"\nimport { formatDate } from \"~/common/formatDate\"\nimport { UserName } from \"~/directory/UserName\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { cn } from \"~/lib/utils\"\nimport { Translation } from \"~/common/Translation\"\nimport { gql } from \"~/__generated__\"\n\nexport const NewInLibraryModule = () => {\n const ccls = useCommunityClassname()\n const { data, loading } = useQuery(NEW_ARTICLES_QUERY)\n const { article, authorNames, formattedDate } = useMemo(() => {\n if (!data) return { article: null, authorNames: \"\", formattedDate: \"\" }\n const article = data.articles.edges[0]?.node as Article_CardFragment | null\n if (!article) return { article: null, authorNames: \"\", formattedDate: \"\" }\n\n const authorNames = article.collaborators\n .map((c) => {\n return c.user ? `${c.user.firstName} ${c.user.lastName}` : \"\"\n })\n .join(\", \")\n const formattedDate = formatDate(\n article.markedLiveAt || article.createdAt,\n \"MMM do, yyyy\"\n )\n\n return { article, authorNames, formattedDate }\n }, [data])\n\n return !loading && !article ? null : (\n \n \n \n \n \n \n \n {loading && }\n {!loading && article && (\n
\n
\n c.user)}\n />\n {authorNames && (\n
\n {article.collaborators.length === 1 ? (\n \n ) : (\n authorNames\n )}\n
\n )}\n
\n
\n \n {article.revision?.title}\n \n
\n
\n \n
\n
\n {formattedDate}\n
\n \n See More\n \n
\n )}\n
\n \n )\n}\n\nexport const NEW_ARTICLES_QUERY = gql(`\n query NewArticles {\n articles(\n revisionType: APPROVED,\n visibilities: [LIVE],\n states: [APPROVED HAS_PENDING_EDITS],\n sort: CREATED_AT_DESC,\n first: 1\n newlyAdded: true\n ) {\n edges {\n node {\n ...Article_Card\n }\n }\n }\n }\n`)\n","export const commaSeparatedList = (list: string[]) => {\n return list.reduce((acc, item, index) => {\n if (index === 0) {\n return item\n } else if (index === list.length - 1) {\n return `${acc} and ${item}`\n } else {\n return `${acc}, ${item}`\n }\n }, \"\")\n}\n","import { gql } from \"~/__generated__/gql\"\nimport { toDate, formatInTimeZone } from \"date-fns-tz\"\n\nexport const PRO_EVENT_FIXED_TIMEZONE = \"America/New_York\"\n\nexport const PRO_EVENTS_ADMIN_LIST_QUERY_DOCUMENT = gql(`\n query AdminProEventsList($after: String) {\n proEvents(first: 20, after: $after) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n id\n title\n date\n published\n }\n }\n }\n }\n`)\n\nexport const PRO_EVENTS_LIST_QUERY_DOCUMENT = gql(`\n query MemberProEventsList($limit: Int) {\n proEvents(first: $limit, published: true, sort: soonest) {\n edges {\n node {\n id\n title\n description\n date\n host {\n ...User_Avatar\n }\n ctaCopy\n ctaUrl\n }\n }\n }\n }\n`)\n\ngql(`\n fragment ProEvent_Admin on ProEvent {\n id\n title\n description\n date\n host {\n ...User_Avatar\n }\n ctaCopy\n ctaUrl\n published\n }\n`)\n\nexport const PRO_EVENT_ADMIN_QUERY_DOCUMENT = gql(`\n query ProEvent($proEventId: ID!) {\n proEvent(proEventId: $proEventId) {\n ...ProEvent_Admin\n }\n }\n`)\n\nexport const PRO_EVENT_ADMIN_CREATE_MUTATION = gql(`\n mutation ProEventCreate($input: ProEventCreateInput!) {\n proEventCreate: proEventCreate(input: $input) {\n proEvent {\n ...ProEvent_Admin\n }\n }\n }\n`)\n\nexport const PRO_EVENT_ADMIN_UPDATE_MUTATION = gql(`\n mutation ProEventUpdate($input: ProEventUpdateInput!) {\n proEventUpdate: proEventUpdate(input: $input) {\n proEvent {\n ...ProEvent_Admin\n }\n }\n }\n`)\n\nexport const parseDateField = (dateString: string) => {\n return toDate(dateString, { timeZone: PRO_EVENT_FIXED_TIMEZONE })\n}\n\nexport const utcDateToIntroductionsDateField = (date: Date) => {\n return formatInTimeZone(date, PRO_EVENT_FIXED_TIMEZONE, \"yyyy-MM-dd\")\n}\n","import { cn } from \"~/lib/utils\"\nimport VideoAddIcon from \"~/images/icons/video-add.svg?react\"\nimport { Lock } from \"lucide-react\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport {\n PRO_EVENTS_LIST_QUERY_DOCUMENT,\n PRO_EVENT_FIXED_TIMEZONE,\n} from \"~/pro-events/pro-events\"\nimport { useQuery } from \"@apollo/client\"\nimport { Error } from \"~/ui/Error\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { formatInTimeZone } from \"date-fns-tz\"\nimport { Button, LinkButton } from \"~/ui/button\"\nimport { useCallback, useMemo, useState } from \"react\"\nimport { Card, CardHeader } from \"~/ui/card\"\nimport { useSubscription } from \"~/subscriptions/SubscriptionProvider\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { AhoyEventTypeEnum } from \"~/__generated__/graphql\"\nimport { UserName } from \"~/directory/UserName\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\nexport const ProEventsBanner = () => {\n const currentUser = useCurrentUser()\n const canViewProEvents = currentUser.permissions.canViewProEvents\n const { openSubscriptionWizard } = useSubscription()\n const { logEvent } = useLogEvent()\n\n const { data, loading, error } = useQuery(PRO_EVENTS_LIST_QUERY_DOCUMENT, {\n variables: {\n limit: 10,\n },\n })\n\n const proEvents = useMemo(\n () => data?.proEvents?.edges.map((e) => e.node) || [],\n [data]\n )\n\n const [index, setIndex] = useState(0)\n\n const onButtonClicked = useCallback(() => {\n logEvent(AhoyEventTypeEnum.ProEventInterestClicked, {\n pro_event_id: proEvents[index].id,\n })\n\n if (!canViewProEvents) {\n openSubscriptionWizard(\"PricingTableStep\", {\n source: \"ProEventsBanner\",\n requiredFeature: \"canViewProEvents\",\n contentId: proEvents[index].id,\n })\n }\n }, [canViewProEvents, index, logEvent, openSubscriptionWizard, proEvents])\n\n if (loading) return \n if (error || !data) return \n if (proEvents.length === 0) return null\n\n const proEvent = proEvents[index]\n\n return (\n \n \n
\n

Pro Events

\n {!canViewProEvents && (\n
\n \n Pro Membership Required\n
\n )}\n
\n
\n
\n
\n \n
\n

{proEvent.title}

\n
\n \n \n
\n

{proEvent.description}

\n
\n \n {formatInTimeZone(\n proEvent.date,\n PRO_EVENT_FIXED_TIMEZONE,\n \"M/dd/yyyy zzz\"\n )}\n
\n
\n {canViewProEvents && proEvent.ctaUrl && (\n \n {proEvent.ctaCopy}\n \n )}\n {!canViewProEvents && (\n \n {proEvent.ctaCopy}\n \n \n )}\n
\n
\n
\n
\n {proEvents.length > 1 && (\n
\n {proEvents.map((proEvent, idx) => (\n setIndex(idx)}\n className=\"p-2\"\n >\n
\n \n ))}\n
\n )}\n \n
\n )\n}\n","import { useEffect } from \"react\"\nimport { CommunitySlug, MarkReadEnum } from \"~/__generated__/graphql\"\nimport { cn } from \"~/lib/utils\"\nimport { MARK_READ_MUTATION } from \"~/common/userUpdateMutation\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { ProEventsBanner } from \"~/pro-events/ProEventsBanner\"\nimport { useConfig } from \"~/common/ConfigProvider\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { H4, Muted } from \"~/ui/typography\"\nimport { gql } from \"~/__generated__\"\nimport { useQuery } from \"@apollo/client\"\n\nexport const EventsScreen = () => {\n const { featureFlags } = useConfig()\n const community = useCommunity()\n const ccls = useCommunityClassname()\n\n const [runMarkRead] = useSafeMutation(MARK_READ_MUTATION)\n\n const { data } = useQuery(CALENDAR_EVENTS_QUERY_DOCUMENT, {\n variables: { first: 10, internalOnly: true },\n skip: !featureFlags?.internalCalendarEvents,\n })\n\n useEffect(() => {\n runMarkRead({\n variables: {\n input: {\n target: MarkReadEnum.Events,\n },\n },\n })\n }, [runMarkRead])\n\n const CALENDAR_VARIANTS: Record = {\n [CommunitySlug.Safespace]: \"light\",\n [CommunitySlug.Fintechtakes]: \"light\",\n [CommunitySlug.Boardroom]: \"dark\",\n [CommunitySlug.Marketingland]: \"dark\",\n [CommunitySlug.Gotomillions]: \"dark\",\n }\n\n if (featureFlags?.internalCalendarEvents) {\n return data?.calendarEvents?.edges?.map((edge) => {\n const event = edge.node\n return (\n \n \n

{event.name}

\n Description: {event.description}\n

\n Hosts:{\" \"}\n {event.calendarEventHosts\n .map((host) => host.user.name)\n .join(\", \")}\n

\n

\n Guests:{\" \"}\n {event.calendarEventGuests\n .map((guest) => guest.user.name)\n .join(\", \")}\n

\n

{event.startAt}

\n\n
{JSON.stringify(event, null, 2)}
\n
\n
\n )\n })\n }\n\n return (\n
\n \n \n

\n See All Events\n

\n \n
\n \n
\n
\n )\n}\n\ngql(`\n fragment CalendarEvent_Legacy on CalendarEvent {\n id\n startAt\n name\n url\n hosts {\n name\n avatarUrl\n }\n }\n`)\n\ngql(`\n fragment CalendarEvent_Display on CalendarEvent {\n accessLevel\n description\n duration\n endAt\n eventType\n featured\n geoLatitude\n geoLongitude\n id\n locationName\n locationUrl\n name\n sponsored\n startAt\n timezone\n\n imageId\n imageUrl\n\n calendarEventHosts {\n id\n role\n status\n confirmedAt\n tentativeAt\n canceledAt\n user {\n ...User_Avatar\n }\n }\n\n calendarEventGuests {\n id\n role\n status\n confirmedAt\n tentativeAt\n canceledAt\n user {\n ...User_Avatar\n }\n }\n }\n`)\n\nexport const CALENDAR_EVENTS_QUERY_DOCUMENT = gql(`\n query CalendarEvents($first: Int, $after: String, $upcoming: Boolean, $internalOnly: Boolean) {\n calendarEvents(first: $first, after: $after, upcoming: $upcoming, internalOnly: $internalOnly) {\n totalCount\n edges {\n node {\n ...CalendarEvent_Legacy\n ...CalendarEvent_Display\n }\n }\n }\n }\n`)\n","import { useQuery } from \"@apollo/client\"\nimport { useMemo } from \"react\"\nimport { Link } from \"react-router-dom\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { commaSeparatedList } from \"~/common/commaSeparatedList\"\nimport { formatDate } from \"~/common/formatDate\"\nimport { eventsPath } from \"~/common/paths\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { cn } from \"~/lib/utils\"\nimport { CALENDAR_EVENTS_QUERY_DOCUMENT } from \"~/screens/EventsScreen\"\nimport { buttonVariants } from \"~/ui/button\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\n\nconst LIMIT_EVENTS = 2\n\ntype UpcomingEventsModuleProps = {\n title?: string\n}\n\nconst UpcomingEventsSkeleton = () => (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n)\n\nexport const UpcomingEventsModule = ({ title }: UpcomingEventsModuleProps) => {\n const ccls = useCommunityClassname()\n const { data, loading } = useQuery(CALENDAR_EVENTS_QUERY_DOCUMENT, {\n variables: { first: LIMIT_EVENTS, upcoming: true },\n })\n const totalItems = useMemo(\n () => data?.calendarEvents?.totalCount ?? 0,\n [data]\n )\n const events = useMemo(\n () => data?.calendarEvents?.edges?.map((edge) => edge.node) ?? [],\n [data]\n )\n\n return !loading && events.length === 0 ? null : (\n \n \n {title || \"Upcoming Events\"}\n \n \n {loading &&\n Array.from({ length: LIMIT_EVENTS }).map((_, index) => (\n \n ))}\n {!loading &&\n events.map((event) => (\n
\n
\n {formatDate(event.startAt, \"MMM d, yyyy 'at' h:mm a\")}\n
\n
\n \n {event.name}\n \n
\n {event.hosts!.length > 0 && (\n
\n
\n
\n {event.hosts!.slice(0, 2).map((host, index) => (\n \n ))}\n
\n
\n
\n By{\" \"}\n {commaSeparatedList(event.hosts!.map((host) => host.name))}\n
\n
\n )}\n
\n *]:text-white\",\n default: \"text-primary\",\n }),\n \"w-auto\"\n )}\n >\n Register\n \n
\n
\n ))}\n {!loading && totalItems > LIMIT_EVENTS && (\n
\n \n See More Events\n \n
\n )}\n
\n \n )\n}\n","import { CommunitySlug } from \"~/__generated__/graphql\"\nimport ArrowRight from \"../images/icons/arrow-right.svg?react\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\n\nexport const DiveInModule = () => {\n const ccls = useCommunityClassname()\n\n return (\n
\n
\n Dive In\n
\n\n
\n \n 💻  Read I Hate it Here\n \n \n \n 🎧  Listen to I Hate it Here\n \n \n
\n
\n )\n}\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { useUserOffers } from \"./UserOffersProvider\"\nimport { Translation } from \"~/common/Translation\"\nimport { Button } from \"~/ui/button\"\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport {\n AhoyEventTypeEnum,\n CommunitySlug,\n OfferCategoryEnum,\n UserOffer_DisplayFragment,\n} from \"~/__generated__/graphql\"\nimport { useDiscountedAmount } from \"./useDiscountedAmount\"\nimport { Card, CardContent, CardHeader } from \"~/ui/card\"\nimport {\n differenceInDays,\n differenceInSeconds,\n Duration,\n formatDistanceToNow,\n intervalToDuration,\n parseISO,\n} from \"date-fns\"\nimport { useTranslation } from \"react-i18next\"\nimport { useSubscription } from \"~/subscriptions/SubscriptionProvider\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { useTiers } from \"~/tiers/TiersProvider\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { cn } from \"~/lib/utils\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\nexport const UserOfferModule = () => {\n const { openSubscriptionWizard } = useSubscription()\n const {\n unacknowledgedUserOffers,\n acknowledgedUserOffers,\n acceptedUserOffers,\n redeemedUserOffers,\n acknowledgeUserOffer,\n refetchUserOffers,\n } = useUserOffers()\n const { tiers } = useTiers()\n const { creator } = useCommunity()\n const currentUser = useCurrentUser()\n\n const unacknowledgedUserOffer = useMemo(\n () =>\n unacknowledgedUserOffers?.find(\n (userOffer) =>\n userOffer.offer.category === OfferCategoryEnum.PaidMembershipUpsell\n ),\n [unacknowledgedUserOffers]\n )\n const acknowledgedUserOffer = useMemo(\n () =>\n acknowledgedUserOffers?.find(\n (userOffer) =>\n userOffer.offer.category === OfferCategoryEnum.PaidMembershipUpsell\n ),\n [acknowledgedUserOffers]\n )\n\n const getRedeemedAt = (userOffer: UserOffer_DisplayFragment) => {\n if (userOffer.redeemedAt) {\n return parseISO(userOffer.redeemedAt)\n }\n return parseISO(userOffer.acceptedAt!)\n }\n\n // First redeemed offer within last 7 days\n const redeemedUserOffer = useMemo(\n () =>\n [...redeemedUserOffers, ...acceptedUserOffers].find(\n (userOffer) =>\n userOffer.offer.category === OfferCategoryEnum.PaidMembershipUpsell &&\n differenceInDays(getRedeemedAt(userOffer), new Date()) <= 7\n ),\n [redeemedUserOffers, acceptedUserOffers]\n )\n\n const claimOffer = () => {\n setIsDialogOpen(false)\n openOffer(\"UserOfferModal\")\n }\n\n const ClaimButton = ({ children }: { children?: JSX.Element }) => (\n
\n \n {children}\n \n
\n )\n\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const [selectedUserOffer, setSelectedUserOffer] =\n useState(null)\n const { discount } = useDiscountedAmount(selectedUserOffer?.offer)\n const { logEvent } = useLogEvent()\n\n useEffect(() => {\n if (unacknowledgedUserOffer) {\n setSelectedUserOffer(unacknowledgedUserOffer)\n setIsDialogOpen(true)\n } else if (acknowledgedUserOffer) {\n setSelectedUserOffer(acknowledgedUserOffer)\n }\n }, [unacknowledgedUserOffer, acknowledgedUserOffer])\n\n const onOpenChange = useCallback(\n async (open: boolean) => {\n if (!open && selectedUserOffer) {\n await acknowledgeUserOffer(selectedUserOffer)\n }\n setIsDialogOpen(false)\n },\n [acknowledgeUserOffer, selectedUserOffer]\n )\n\n const hasLoggedUpgradeModalViewedRef = useRef(false)\n useEffect(() => {\n if (\n isDialogOpen &&\n selectedUserOffer &&\n selectedUserOffer.offer.category ===\n OfferCategoryEnum.PaidMembershipUpsell\n ) {\n logEvent(\n AhoyEventTypeEnum.UpgradeModalViewed,\n {\n stripe_coupon_id: selectedUserOffer.offer.stripeCoupon.id,\n source: \"UserOfferModal\",\n },\n hasLoggedUpgradeModalViewedRef\n )\n }\n if (!isDialogOpen) {\n hasLoggedUpgradeModalViewedRef.current = false\n }\n }, [isDialogOpen, selectedUserOffer, logEvent, currentUser.tier])\n\n const [timeRemaining, setTimeRemaining] = useState({})\n\n const { t } = useTranslation(\"time\")\n\n useEffect(() => {\n if (!acknowledgedUserOffer || !acknowledgedUserOffer.expiredAt) {\n return\n }\n const duration = intervalToDuration({\n start: Date.now(),\n end: parseISO(acknowledgedUserOffer.expiredAt),\n })\n setTimeRemaining(duration)\n\n const countdown = setInterval(() => {\n if (!acknowledgedUserOffer || !acknowledgedUserOffer.expiredAt) {\n clearInterval(countdown)\n return\n }\n const duration = intervalToDuration({\n start: Date.now(),\n end: parseISO(acknowledgedUserOffer.expiredAt),\n })\n setTimeRemaining(duration)\n }, 1000)\n\n return () => clearInterval(countdown)\n }, [acknowledgedUserOffer])\n\n const openNote = (userOffer: UserOffer_DisplayFragment) => {\n setSelectedUserOffer(userOffer)\n setIsDialogOpen(true)\n }\n\n const [isClaimingOffer, setIsClaimingOffer] = useState(false)\n\n const openOffer = async (source: string) => {\n if (!selectedUserOffer) {\n return\n }\n\n setIsClaimingOffer(true)\n await acknowledgeUserOffer(selectedUserOffer)\n\n const tier = tiers.find((t) => t.id === selectedUserOffer.offer.tier.id)\n openSubscriptionWizard(\"MigrateToTierStep\", {\n source: source,\n offer: selectedUserOffer.offer,\n selectedTier: tier,\n selectedInterval: selectedUserOffer.offer.tierInterval,\n })\n }\n\n const isAcknowledgedUserOfferExpired = useMemo(() => {\n if (!acknowledgedUserOffer || !acknowledgedUserOffer.expiredAt) return false\n if (\n differenceInSeconds(\n new Date(acknowledgedUserOffer.expiredAt),\n new Date()\n ) <= 0\n )\n return true\n if (timeRemaining.days || timeRemaining.hours || timeRemaining.minutes)\n return false\n }, [acknowledgedUserOffer, timeRemaining])\n\n useEffect(() => {\n if (isAcknowledgedUserOfferExpired) {\n refetchUserOffers()\n }\n }, [isAcknowledgedUserOfferExpired, refetchUserOffers])\n\n const timeRemainingFormatted = useMemo(() => {\n const parts: string[] = []\n if (timeRemaining.days) {\n parts.push(t(\"dayWithCount\", { count: timeRemaining.days }))\n }\n if (timeRemaining.hours) {\n parts.push(t(\"hourWithCount\", { count: timeRemaining.hours }))\n }\n\n if (!parts.length && acknowledgedUserOffer?.expiredAt) {\n parts.push(formatDistanceToNow(new Date(acknowledgedUserOffer.expiredAt)))\n }\n return parts.join(\" \")\n }, [timeRemaining, t, acknowledgedUserOffer])\n\n const hasLoggedUserOfferViewedRef = useRef(false)\n useEffect(() => {\n if (\n acknowledgedUserOffer &&\n !isAcknowledgedUserOfferExpired &&\n !isClaimingOffer\n ) {\n logEvent(\n AhoyEventTypeEnum.UpgradeModalViewed,\n {\n stripe_coupon_ids: acknowledgedUserOffer.offer.stripeCoupon.id,\n source: \"UserOfferModule\",\n },\n hasLoggedUserOfferViewedRef\n )\n }\n }, [\n acknowledgedUserOffer,\n isAcknowledgedUserOfferExpired,\n isClaimingOffer,\n logEvent,\n ])\n const ccls = useCommunityClassname()\n\n return (\n <>\n {selectedUserOffer && (\n \n \n \n
\n ,\n }}\n />\n
\n
\n
\n )}\n\n {acknowledgedUserOffer &&\n !isAcknowledgedUserOfferExpired &&\n !isClaimingOffer && (\n \n {timeRemainingFormatted && (\n \n
Expires in
\n \n {timeRemainingFormatted}\n \n
\n )}\n\n \n
\n \n
\n
\n openOffer(\"UserOfferModule\")}\n className={cn(\n ccls({\n [CommunitySlug.Gotomillions]:\n \"bg-card [&>*]:text-primary hover:bg-card/90 hover:[&>*]:text-primary\",\n [CommunitySlug.Fintechtakes]:\n \"bg-link [&>*]:text-white hover:bg-link/90 hover:[&>*]:text-white\",\n default: \"\",\n })\n )}\n >\n \n \n
\n

\n P.S. See note from{\" \"}\n openNote(acknowledgedUserOffer)}\n >\n {creator.firstName}\n \n

\n \n \n )}\n\n {redeemedUserOffer && (\n \n \n \n \n \n )}\n \n )\n}\n","import { ReactNode } from \"react\"\n\nexport const PageWithRightSidebar = ({\n sidebar,\n children,\n}: {\n sidebar: ReactNode\n children: ReactNode\n}) => {\n return (\n
\n
{children}
\n
{sidebar}
\n
\n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { Error } from \"~/ui/Error\"\nimport {\n Link,\n useLocation,\n useNavigate,\n useParams,\n useSearchParams,\n} from \"react-router-dom\"\nimport invariant from \"tiny-invariant\"\nimport { gql } from \"~/__generated__\"\nimport { Channel } from \"~/__generated__/graphql\"\nimport { PostCard } from \"~/feed/PostCard\"\nimport { PageWithRightSidebar } from \"~/layouts/PageWithRightSidebar\"\nimport { FeedSidebar } from \"~/feed/FeedSidebar\"\nimport { articlePath, channelPath, feedPath, postPath } from \"~/common/paths\"\nimport ArrowLeft from \"~/images/icons/arrow-left.svg?react\"\nimport { ComposerHandle, PostComposer } from \"~/post-composer/PostComposer\"\nimport { useCreateReply } from \"~/post-composer/useCreateReply\"\nimport { useCallback, useRef } from \"react\"\nimport { ComposerContextProvider } from \"~/post-composer/ComposerContext\"\nimport { REPLIES_QUERY_DOCUMENT, RepliesFeed } from \"~/posts/RepliesFeed\"\n\nexport const PostScreen = () => {\n const { postId } = useParams()\n invariant(postId)\n\n const [searchParams] = useSearchParams()\n const autoFocusReply = !!searchParams.get(\"reply\")\n\n const composerRef = useRef(null)\n const repliesResult = useQuery(REPLIES_QUERY_DOCUMENT, {\n variables: { parentPostId: postId },\n notifyOnNetworkStatusChange: true,\n })\n const { data, loading, error } = useQuery(POST_QUERY_DOCUMENT, {\n variables: { postId },\n })\n const afterCreateReply = useCallback(() => {\n repliesResult.refetch()\n }, [repliesResult])\n const { createReply, replayIsSaving } = useCreateReply({\n parentPostId: postId,\n onSuccess: afterCreateReply,\n })\n\n if (loading) return \n if (error || !data) return \n\n const post = data.post\n\n return (\n \n }>\n
\n \n }\n isReply={!!post.isReply}\n replyDisabled\n onSinglePostPage\n trackImpressions\n />\n\n {!post.isReply && (\n <>\n \n\n \n \n )}\n
\n
\n
\n )\n}\n\ntype BackHeaderChannel = Pick\n\nconst BackHeader = ({\n parentPostId,\n articleId,\n articleTitle,\n channel,\n}: {\n parentPostId?: null | string\n articleId?: null | string\n articleTitle?: null | string\n channel?: BackHeaderChannel | null\n}) => {\n const [searchParams] = useSearchParams()\n const navigate = useNavigate()\n const { state: locationState } = useLocation()\n\n return (\n {\n if (locationState?.useBrowserBack) {\n navigate(-1)\n }\n }}\n className=\"flex items-center border-b border-mercury px-4 py-3 gap-4 text-sm font-semibold tracking-wide\"\n >\n \n Back to{\" \"}\n {parentPostId\n ? \"Post\"\n : articleTitle\n ? articleTitle\n : articleId\n ? \"Content\"\n : searchParams.get(\"from\") === \"channel\" && channel\n ? channel.name\n : \"Feed\"}\n \n )\n}\n\nexport const POST_QUERY_DOCUMENT = gql(`\n query Post($postId: ID!) {\n post(postId: $postId) {\n ...Post_Card\n }\n }\n`)\n","import { Dialog, DialogContent, DialogHeader, DialogTitle } from \"~/ui/dialog\"\nimport { useEffect, useMemo } from \"react\"\nimport { Translation } from \"~/common/Translation\"\nimport {\n AhoyEventTypeEnum,\n CommunitySlug,\n ScreenEnum,\n} from \"~/__generated__/graphql\"\nimport { camelCase } from \"change-case\"\nimport ReactPlayer from \"react-player\"\nimport { useScreenVariant } from \"~/screens/ScreenVariantsProvider\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { DialogProps } from \"@radix-ui/react-dialog\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { IconButton } from \"~/ui/IconButton\"\nimport { Bookmark } from \"lucide-react\"\nimport { POST_QUERY_DOCUMENT } from \"~/screens/PostScreen\"\nimport { useLazyQuery } from \"@apollo/client\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { cn } from \"~/lib/utils\"\nimport { useBookmarks } from \"~/post-composer/useBookmarks\"\nimport { Button } from \"~/ui/button\"\nimport { USER_UPDATE_MUTATION } from \"~/common/userUpdateMutation\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\nexport const AddToHomescreenModal = ({\n onOpenChange,\n ...dialogProps\n}: DialogProps) => {\n const { logEvent } = useLogEvent()\n const community = useCommunity()\n const screenVariant = useScreenVariant(ScreenEnum.AddToHomescreenModal)\n const [runUserUpdate] = useSafeMutation(USER_UPDATE_MUTATION)\n const currentUser = useCurrentUser()\n\n const { videoUrl, postId } = useMemo(() => {\n return {\n videoUrl:\n screenVariant?.overrides?.options?.videoUrl ||\n community.addToHomescreenVideoUrl,\n postId:\n screenVariant?.overrides?.options?.postId ||\n community.addToHomescreenPostId,\n }\n }, [community, screenVariant])\n\n const ccls = useCommunityClassname()\n\n const [fetchPost, { data: postData, loading: postLoading }] =\n useLazyQuery(POST_QUERY_DOCUMENT)\n const post = useMemo(() => postData?.post, [postData])\n\n useEffect(() => {\n if (postId && !postData && dialogProps.open) {\n fetchPost({ variables: { postId } })\n }\n }, [fetchPost, postId, postData, dialogProps.open])\n\n const { toggleBookmark } = useBookmarks({ post: post })\n\n const close = async () => {\n if (!currentUser.onboardingActions?.downloadOurApp) {\n logEvent(AhoyEventTypeEnum.NewUserChecklistItemCompleted, {\n step_name: \"Download Our App\",\n })\n await runUserUpdate({\n variables: {\n input: {\n acknowledgedPwa: true,\n },\n },\n })\n }\n onOpenChange?.(false)\n }\n\n return (\n \n \n
\n \n \n \n \n \n
\n
\n
\n \n
\n \n \n
\n
\n\n {postLoading && }\n\n {post && (\n \n \n
\n
\n \n
\n
\n
\n toggleBookmark()}>\n \n \n
\n
Bookmark
\n
\n
\n
\n \n )}\n\n
\n \n
\n
\n \n
\n
\n )\n}\n","import { Play } from \"lucide-react\"\nimport { useRef, useState } from \"react\"\nimport ReactPlayer from \"react-player\"\nimport { AhoyEventTypeEnum } from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { Button } from \"~/ui/button\"\nimport { Dialog, DialogContent, DialogFooter } from \"~/ui/dialog\"\n\nexport const GetStartedLink = () => {\n const { logEvent } = useLogEvent()\n const [isOpen, setIsOpen] = useState(false)\n const preventDuplicateRef = useRef(false)\n\n const onClick = () => {\n logEvent(\n AhoyEventTypeEnum.WelcomeVideoViewed,\n undefined,\n preventDuplicateRef\n )\n setIsOpen(true)\n }\n\n return (\n <>\n *]:flex [&>*]:items-center [&>*]:gap-2\"\n onClick={onClick}\n type=\"button\"\n >\n 🎥\n \n \n\n \n \n )\n}\n\nconst GetStartedModal = ({\n isOpen,\n setIsOpen,\n}: {\n isOpen: boolean\n setIsOpen: (value: boolean) => void\n}) => {\n const community = useCommunity()\n\n const onComplete = () => {\n setIsOpen(false)\n }\n\n return (\n \n \n \n \n \n \n \n \n )\n}\n","import { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { ArrowRight, Check } from \"lucide-react\"\nimport {\n AhoyEventTypeEnum,\n CommunitySlug,\n OfferCategoryEnum,\n OnboardingActionsEnum,\n RulesEngineEventTypeEnum,\n TierLevelEnum,\n} from \"~/__generated__/graphql\"\nimport { cn } from \"~/lib/utils\"\nimport {\n accountSettingsPath,\n channelPath,\n editProfilePath,\n} from \"~/common/paths\"\nimport { useNavigate } from \"react-router-dom\"\nimport { camelCase } from \"change-case\"\nimport { useEffect, useRef, useState } from \"react\"\nimport { AddToHomescreenModal } from \"~/components/modals/AddToHomescreenModal\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { GetStartedLink } from \"./GetStartedLink\"\nimport { useComposerContext } from \"~/post-composer/ComposerContext\"\nimport { Translation, useTranslation } from \"~/common/Translation\"\nimport { useConfirm } from \"~/ui/Confirm\"\nimport { Button } from \"~/ui/button\"\nimport { useSubscription } from \"~/subscriptions/SubscriptionProvider\"\nimport { useRulesEngine } from \"~/rules-engine/RulesEngineContext\"\nimport { useUserOffers } from \"~/offers/UserOffersProvider\"\nimport { addConfetti } from \"~/common/addConfetti\"\nimport { USER_UPDATE_MUTATION } from \"~/common/userUpdateMutation\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { useChannels } from \"~/common/ChannelsProvider\"\nimport { ComposerOriginEnum } from \"~/post-composer/PostComposer\"\nimport { CreatorSignature } from \"~/community/CreatorSignature\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\ninterface ChecklistItemProps {\n text: string\n action: OnboardingActionsEnum\n completed?: boolean\n}\n\nconst ChecklistItem = ({\n text,\n action,\n completed = false,\n}: ChecklistItemProps) => {\n const { composerRef } = useComposerContext() || {}\n const { logEvent } = useLogEvent()\n const navigate = useNavigate()\n const { t } = useTranslation(\"ctaChecklist\")\n const [isAddToHomescreenModalOpen, setIsAddToHomescreenModalOpen] =\n useState(false)\n const { openSubscriptionWizard } = useSubscription()\n const showConfirm = useConfirm()\n const { introductionsChannel } = useChannels()\n\n const handleClick = () => {\n switch (action) {\n case OnboardingActionsEnum.EnhanceYourProfile:\n if (!completed) {\n logEvent(AhoyEventTypeEnum.NewUserChecklistItemClicked, {\n step_name: t(\"enhanceYourProfile\"),\n })\n }\n navigate(editProfilePath.pattern)\n break\n case OnboardingActionsEnum.ReviewCommunityValues:\n if (!completed) {\n logEvent(AhoyEventTypeEnum.NewUserChecklistItemClicked, {\n step_name: t(\"reviewCommunityValues\"),\n })\n }\n openSubscriptionWizard(\"SocialContractStep\")\n break\n case OnboardingActionsEnum.IntroduceYourself:\n if (completed) return\n\n logEvent(AhoyEventTypeEnum.NewUserChecklistItemClicked, {\n step_name: t(\"introduceYourself\"),\n })\n\n if (introductionsChannel) {\n navigate(channelPath({ channelSlug: introductionsChannel.slug }))\n }\n\n setTimeout(() => {\n if (composerRef?.current) {\n const { content } = composerRef.current.getPostData()\n if (content && content.trim().length > 0) {\n showConfirm({\n title: \"Are you sure?\",\n body: \"You have a post in progress. If you start a new post, you will lose your current progress.\",\n confirmText: \"Start New Post\",\n cancelText: \"Cancel\",\n onConfirm: () => {\n composerRef?.current?.prefillContent(\n t(\"introduction_template\"),\n ComposerOriginEnum.CTA_CHECKLIST\n )\n },\n })\n } else {\n composerRef?.current?.prefillContent(\n t(\"introduction_template\"),\n ComposerOriginEnum.CTA_CHECKLIST\n )\n }\n }\n }, 500)\n break\n case OnboardingActionsEnum.DownloadOurApp:\n if (!completed) {\n logEvent(AhoyEventTypeEnum.NewUserChecklistItemClicked, {\n step_name: t(\"downloadOurApp\"),\n })\n }\n setIsAddToHomescreenModalOpen(true)\n break\n case OnboardingActionsEnum.OptIntoIntroductions:\n if (!completed) {\n logEvent(AhoyEventTypeEnum.NewUserChecklistItemClicked, {\n step_name: t(\"optIntoIntroductions\"),\n })\n }\n navigate(accountSettingsPath.pattern)\n break\n default:\n console.log(`Unknown action: ${action}`)\n }\n }\n\n return (\n <>\n {action === OnboardingActionsEnum.DownloadOurApp && (\n \n )}\n \n \n \n \n \n {text}\n \n \n \n )\n}\n\nconst itemOrder = [\n OnboardingActionsEnum.ReviewCommunityValues,\n OnboardingActionsEnum.EnhanceYourProfile,\n OnboardingActionsEnum.IntroduceYourself,\n OnboardingActionsEnum.DownloadOurApp,\n OnboardingActionsEnum.OptIntoIntroductions,\n]\n\nexport const CTAChecklist = () => {\n const { t } = useTranslation(\"ctaChecklist\")\n const ccls = useCommunityClassname()\n\n const onboardingActionTexts: Record = {\n [camelCase(OnboardingActionsEnum.DownloadOurApp)]: t(\"downloadOurApp\"),\n [camelCase(OnboardingActionsEnum.EnhanceYourProfile)]:\n t(\"enhanceYourProfile\"),\n [camelCase(OnboardingActionsEnum.IntroduceYourself)]:\n t(\"introduceYourself\"),\n [camelCase(OnboardingActionsEnum.ReviewCommunityValues)]: t(\n \"reviewCommunityValues\"\n ),\n [camelCase(OnboardingActionsEnum.OptIntoIntroductions)]: t(\n \"optIntoIntroductions\"\n ),\n }\n\n const currentUser = useCurrentUser()\n const userIsFreeTier = currentUser?.tier?.level === TierLevelEnum.Free\n const [runUserUpdate] = useSafeMutation(USER_UPDATE_MUTATION)\n const openWasRef = useRef(false)\n const [isHidden, setIsHidden] = useState(\n (currentUser?.checklistHidden && !userIsFreeTier) ||\n (currentUser?.checklistHidden && currentUser?.unlockedWelcomeGift)\n )\n const [startHideAnimation, setStartHideAnimation] = useState(false)\n const community = useCommunity()\n\n useEffect(() => {\n const onboardingActions = currentUser?.onboardingActions ?? {}\n const relevantActions =\n currentUser?.tier?.level === TierLevelEnum.Free\n ? Object.entries(onboardingActions).filter(\n ([key]) => key !== \"optIntoIntroductions\"\n )\n : Object.entries(onboardingActions)\n\n const allCompleted = relevantActions.every(([, value]) => Boolean(value))\n\n if (\n openWasRef.current === false &&\n !isHidden &&\n allCompleted &&\n !currentUser?.checklistHidden\n ) {\n openWasRef.current = true\n runUserUpdate({\n variables: {\n input: {\n checklistHidden: true,\n },\n },\n })\n setTimeout(() => {\n addConfetti()\n\n setTimeout(() => {\n // Kick off the animation to hide the checklist\n setStartHideAnimation(!userIsFreeTier)\n\n // Hide the checklist after the animation is complete\n setTimeout(() => {\n setIsHidden(!userIsFreeTier)\n }, 1000)\n }, 4000)\n }, 1500)\n }\n }, [\n currentUser?.checklistHidden,\n currentUser?.onboardingActions,\n currentUser?.tier?.level,\n runUserUpdate,\n isHidden,\n userIsFreeTier,\n ])\n\n const items = Object.values(OnboardingActionsEnum)\n .filter((key) => {\n return camelCase(key) in (currentUser?.onboardingActions ?? {})\n })\n .filter((key) => {\n return (\n key !== OnboardingActionsEnum.OptIntoIntroductions ||\n currentUser.permissions.canUseIntroductions\n )\n })\n .map((key) => {\n const camelCaseKey = camelCase(key)\n\n return {\n action: key as OnboardingActionsEnum,\n text: onboardingActionTexts[camelCaseKey],\n completed: Boolean(\n currentUser?.onboardingActions?.[\n camelCaseKey as keyof NonNullable<\n typeof currentUser.onboardingActions\n >\n ] ?? false\n ),\n }\n })\n .sort((a, b) => {\n const aIndex = itemOrder.indexOf(a.action)\n const bIndex = itemOrder.indexOf(b.action)\n return aIndex - bIndex\n })\n\n const areAllItemsCompleted = items.every((item) => item.completed)\n\n const { createRulesEngineEvent } = useRulesEngine()\n const { refetchUserOffers, userOffers } = useUserOffers()\n\n const paidMembershipUpsellOffer = userOffers.find((userOffer) => {\n return userOffer.offer.category === OfferCategoryEnum.PaidMembershipUpsell\n })\n\n const unlockGift = async () => {\n await createRulesEngineEvent(\n RulesEngineEventTypeEnum.UserAcceptedWelcomeOffer\n )\n await refetchUserOffers()\n\n runUserUpdate({\n variables: {\n input: {\n unlockedWelcomeGift: true,\n },\n },\n })\n }\n\n if (paidMembershipUpsellOffer) return null\n const showCompletedMessage = areAllItemsCompleted // && currentUser?.checklistHidden\n\n if (isHidden) return null\n\n return (\n \n \n \n
\n Get Started\n \n
\n \n
\n
\n \n {showCompletedMessage && (\n
\n

\n You're ready to make the most of your membership\n

\n {community.slug !== CommunitySlug.Fintechtakes && (\n
\n \n
\n )}\n
\n )}\n {!showCompletedMessage &&\n items.map(({ text, action, completed }) => (\n \n ))}\n\n {userIsFreeTier && (\n
\n \n \n \n
\n )}\n
\n \n )\n}\n","import clsx from \"clsx\"\nimport toast from \"react-hot-toast\"\nimport { useState, useEffect, useRef } from \"react\"\nimport Cup from \"../images/icons/cup.svg?react\"\nimport { useLazyQuery, useQuery } from \"@apollo/client\"\nimport { Link } from \"react-router-dom\"\nimport { benchmarkPath, directoryPath } from \"~/common/paths\"\nimport { CardFeed } from \"~/common/CardFeed\"\nimport { Card, CardContent, CardHeader, CardTitle, CardFooter } from \"~/ui/card\"\nimport { BarChart } from \"~/benchmarks/BarChart\"\nimport { retentionData, costPerEmployeeData } from \"~/benchmarks/EmptyState\"\nimport { BENCHMARK_QUERY_DOCUMENT } from \"~/benchmarks/benchmarkQuery\"\nimport { MergeLinkButton } from \"~/merge/MergeLinkButton\"\n\nimport { Chart, CommunitySlug } from \"~/__generated__/graphql\"\n\nimport { subMonths, formatISO } from \"date-fns\"\nimport { gql } from \"~/__generated__\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { useUserDialogContext } from \"~/directory/UserDialogContext\"\nimport {\n useCommunityClassname,\n useCommunityFeatures,\n} from \"~/community/useCommunity\"\nimport { cn } from \"~/lib/utils\"\nimport { NewInLibraryModule } from \"./NewInLibraryModule\"\nimport { UpcomingEventsModule } from \"~/events/UpcomingEventsModule\"\nimport { DiveInModule } from \"./DiveInModule\"\nimport { DeepDiveModule } from \"./DeepDiveModule\"\nimport { UserName } from \"~/directory/UserName\"\nimport { UserOfferModule } from \"~/offers/UserOfferModule\"\nimport { CTAChecklist } from \"./CTAChecklist\"\nimport { ArrowRight } from \"lucide-react\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\ninterface Charts {\n retention: Chart\n costPerEmployee: Chart\n}\n\nexport const FeedSidebar = () => {\n const currentUser = useCurrentUser()\n\n const today = useRef(new Date())\n\n const [chartData, setChartData] = useState(\n (!currentUser.hrisIntegration?.initialSyncComplete &&\n !currentUser.manualHrisData && {\n retention: { data: retentionData.data.slice(-3) },\n costPerEmployee: { data: costPerEmployeeData.data.slice(-3) },\n }) ||\n undefined\n )\n\n const [fetchBenchmarkData] = useLazyQuery(BENCHMARK_QUERY_DOCUMENT, {\n variables: {\n startDate: formatISO(subMonths(today.current, 3), {\n representation: \"complete\",\n }),\n endDate: formatISO(today.current, { representation: \"complete\" }),\n },\n onCompleted: (data) => {\n setChartData({\n retention: data.benchmarks.retention,\n costPerEmployee: data.benchmarks.costPerEmployee,\n })\n },\n })\n\n const [blurCharts, setBlurCharts] = useState(\n (!currentUser.hrisIntegration && !currentUser.manualHrisData) ||\n (currentUser.hrisIntegration &&\n !currentUser.hrisIntegration.initialSyncComplete)\n )\n\n const features = useCommunityFeatures()\n\n useEffect(() => {\n if (\n currentUser.manualHrisData ||\n (currentUser.hrisIntegration &&\n currentUser.hrisIntegration.initialSyncComplete)\n ) {\n fetchBenchmarkData()\n setBlurCharts(false)\n }\n }, [\n currentUser.hrisIntegration,\n fetchBenchmarkData,\n currentUser.manualHrisData,\n ])\n\n const ccls = useCommunityClassname()\n\n const height = 200\n\n const hrisDataAdded =\n currentUser.hrisIntegration || currentUser.manualHrisData\n\n return (\n \n \n \n\n {features.Benchmark && (\n \n \n \n \n Benchmarking\n \n \n \n \n\n \n
\n Retention Rate\n
\n {chartData ? (\n
\n `${value}%`}\n />\n
\n ) : (\n
\n )}\n \n \n
\n Cost Per Employee\n
\n {chartData ? (\n
\n `$${value}k`}\n />\n
\n ) : (\n
\n )}\n \n
\n {\n const urlParams = new URLSearchParams(window.location.search)\n const urlSuccessParam =\n urlParams.has(\"connect\") &&\n urlParams.get(\"connect\") === \"true\"\n if (urlSuccessParam)\n toast.success(\"Successfully added HRIS account\")\n }}\n >\n \n \n
Compare my data
\n
\n \n
\n \n \n \n
Compare my data
\n
\n \n \n )}\n\n \n\n {features.FeedDiveIn && }\n\n {features.DeepDive && }\n {features.NewInLibrary && }\n {features.FeedUpcomingEvents && }\n \n )\n}\n\nconst ConnectWithSidebarModule = () => {\n const { data } = useQuery(CONNECT_WITH_QUERY_DOCUMENT)\n const { openUserDialog } = useUserDialogContext()\n\n const ccls = useCommunityClassname()\n const features = useCommunityFeatures()\n const users = data?.connectWith || []\n if (users.length === 0) return\n\n return (\n \n \n \n \n Connect with\n \n \n \n \n\n \n {users.map((user) => (\n openUserDialog(user.id)}\n >\n \n
\n
\n \n
\n
\n {titleAndCompany(user.jobTitle, user.companyName)}\n
\n
\n {user.place?.full}\n
\n
\n
\n ))}\n \n See More\n \n
\n \n )\n}\n\nexport const CONNECT_WITH_QUERY_DOCUMENT = gql(`\n query ConnectWith {\n connectWith {\n id\n name\n jobTitle\n companyName\n ...User_Avatar\n place {\n ...Place_UserLocation\n }\n }\n }\n`)\n\nconst titleAndCompany = (\n jobTitle?: string | null,\n companyName?: string | null\n) => {\n return [jobTitle, companyName]\n .filter((text) => text && text.length > 0)\n .join(\" - \")\n}\n","import { VariantProps, cva } from \"class-variance-authority\"\nimport {\n TagConnection_FilterFragment,\n AhoyEventTypeEnum,\n CommunitySlug,\n} from \"~/__generated__/graphql\"\nimport Select from \"react-select\"\nimport clsx from \"clsx\"\nimport { gql } from \"~/__generated__\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { cn } from \"~/lib/utils\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\n\nconst tagFilterVariants = cva(\"\", {\n variants: {\n variant: {\n default: \"text-xs tracking-wide px-4 py-1 rounded-2xl\",\n directory: \"mt-4 p-1 rounded-lg text-2xs tracking-[0.5px]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n})\n\nconst placeholderVariants = cva(\"!text-placeholder\", {\n variants: {\n variant: {\n default: \"[font-weight:initial]\",\n directory: \"!px-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n})\n\nconst controlVariants = cva(\"\", {\n variants: {\n variant: {\n default: \"\",\n directory: \"!min-h-[28px]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n})\n\nconst valueContainerVariants = cva(\"\", {\n variants: {\n variant: {\n default: \"!py-0\",\n directory: \"!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n})\n\nexport const TagFilter = ({\n allTags,\n selectedTagIds,\n setTagIds,\n variant,\n title = \"Filter by Topic:\",\n placeholder = \"Search for topics...\",\n containerClassName,\n inputClassName,\n}: {\n allTags: TagConnection_FilterFragment\n selectedTagIds: string[]\n setTagIds: (tagId: string[]) => void\n title?: string\n placeholder?: string\n containerClassName?: string\n inputClassName?: string\n} & VariantProps) => {\n const options = allTags.nodes.map((t) => ({ value: t.id, label: t.name }))\n const selectedOptions =\n options.filter((option) => selectedTagIds.includes(option.value)) || []\n const ccls = useCommunityClassname()\n\n const { logEvent } = useLogEvent()\n\n return (\n \n {title.length > 0 && title}\n {\n const tagIds = tags.map((t) => t.value)\n const tagNames = tags.map((t) => t.label)\n\n if (tagNames.length === 0) {\n logEvent(AhoyEventTypeEnum.TopicFilterCleared)\n } else {\n logEvent(AhoyEventTypeEnum.TopicFilterApplied, {\n topics: tagNames.join(\", \"),\n })\n }\n\n setTagIds(tagIds)\n }}\n classNames={{\n control: () =>\n clsx(\n controlVariants({ variant }),\n \"!border-0 ![outline-none] ![box-shadow:none] !cursor-pointer py-0\",\n inputClassName\n ),\n placeholder: () => placeholderVariants({ variant }),\n valueContainer: () =>\n cn(valueContainerVariants({ variant }), inputClassName),\n }}\n styles={{\n multiValue: (baseStyles) => ({\n ...baseStyles,\n backgroundColor: `hsl(var(--primary))`,\n color: \"white\",\n borderRadius: \"1000px\",\n alignItems: \"center\",\n paddingRight: \"6px\",\n paddingLeft: \"4px\",\n }),\n multiValueLabel: (baseStyles) => ({\n ...baseStyles,\n color: \"white\",\n }),\n multiValueRemove: (baseStyles) => ({\n ...baseStyles,\n color: \"white\",\n borderRadius: \"1000px\",\n border: \"1px solid white\",\n height: \"16px\",\n width: \"16px\",\n marginLeft: \"4px\",\n padding: 0,\n justifyContent: \"center\",\n \":hover\": {\n backgroundColor: \"white\",\n color: \"red\",\n },\n }),\n input: (baseStyles) => ({\n ...baseStyles,\n // margin: 0,\n }),\n indicatorsContainer: (baseStyles) => ({\n ...baseStyles,\n }),\n clearIndicator: (baseStyles) => ({\n ...baseStyles,\n padding: 4,\n }),\n indicatorSeparator: () => ({\n display: \"none\",\n }),\n dropdownIndicator: () => ({\n display: \"none\",\n }),\n menu: (baseStyles) => ({\n ...baseStyles,\n zIndex: 100,\n }),\n option: (baseStyles) => ({\n ...baseStyles,\n cursor: \"pointer !important\",\n }),\n }}\n />\n
\n )\n}\n\ngql(`\n fragment TagConnection_Filter on TagConnection {\n nodes {\n id\n name\n }\n }\n`)\n","import { useState } from \"react\"\n\nexport const useTagFilter = () => {\n const [selectedTagIds, setSelectedTagIds] = useState([])\n\n return { selectedTagIds, setSelectedTagIds }\n}\n","import { useApolloClient } from \"@apollo/client\"\nimport invariant from \"tiny-invariant\"\nimport { FEED_QUERY_DOCUMENT } from \"~/screens/FeedScreen\"\nimport {\n FeedScreenQueryVariables,\n Post_CardFragment,\n} from \"~/__generated__/graphql\"\nimport { useCallback, useEffect, useMemo, useState } from \"react\"\nimport { StackedUserAvatars } from \"~/ui/StackedUserAvatars\"\nimport { ArrowUp } from \"lucide-react\"\nimport { usePostInViewport } from \"./PostInViewportContext\"\nimport { NewFeedPostCallback, useNewFeedPost } from \"./NewFeedPostContext\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\ninterface RecordWithId {\n id: string\n}\n\nconst hasOverlappingId = (array1: RecordWithId[], array2: RecordWithId[]) => {\n return array1\n .map((p) => p.id)\n .some((id) => array2.map((p) => p.id).includes(id))\n}\n\nexport const NewPostsIndicator = ({\n channelId,\n queryVariables,\n onClick,\n}: {\n channelId?: string\n queryVariables: FeedScreenQueryVariables\n onClick: () => void\n}) => {\n const [newPosts, setNewPosts] = useState([])\n const currentUser = useCurrentUser()\n const { postsInView } = usePostInViewport() || {}\n const [showNewPostsIndicator, setShowNewPostsIndicator] = useState(false)\n const { onNewFeedPost } = useNewFeedPost()\n const client = useApolloClient()\n\n const handleNewFeedPost: NewFeedPostCallback = useCallback(\n (newPost) => {\n console.log(\"got channel\", channelId, newPost.channel?.id)\n if (\n newPost.user.id === currentUser.id ||\n (channelId && newPost.channel?.id !== channelId)\n )\n return\n\n setNewPosts((posts) => [...posts, newPost])\n\n const cache = client.cache\n\n // read the existing cache\n const existingMessages = cache.readQuery({\n query: FEED_QUERY_DOCUMENT,\n variables: queryVariables,\n })\n\n if (!existingMessages) return\n\n // create a new list of messages with the new message and old messages, unique by id\n const updatedMessages = [\n { node: newPost },\n ...existingMessages.posts.edges,\n ].filter(\n (m, i, self) => self.findIndex((t) => t.node.id === m.node.id) === i\n )\n\n // write the new list of messages to the cache\n cache.writeQuery({\n query: FEED_QUERY_DOCUMENT,\n variables: queryVariables,\n data: {\n posts: {\n edges: updatedMessages,\n pageInfo: existingMessages.posts.pageInfo,\n },\n tags: existingMessages.tags,\n },\n })\n },\n [client, channelId, currentUser.id, queryVariables]\n )\n\n useEffect(() => {\n console.log(\"subscribing to onNewFeedPost\")\n const unsubscribe = onNewFeedPost(handleNewFeedPost)\n return () => {\n console.log(\"unsubscribing from onNewFeedPost\")\n unsubscribe()\n }\n }, [handleNewFeedPost, onNewFeedPost])\n\n invariant(postsInView, \"PostInViewport context must be provided\")\n\n useEffect(() => {\n if (\n hasOverlappingId(postsInView, newPosts) ||\n (newPosts.length > 0 && postsInView.length === 0)\n ) {\n setNewPosts([])\n }\n }, [postsInView, newPosts])\n\n // This delay is necessary to determine if the new post is in the viewport\n // after the post is added to the feed.\n useEffect(() => {\n let timeoutId: ReturnType | null = null\n\n if (newPosts.length > 0) {\n timeoutId = setTimeout(() => setShowNewPostsIndicator(true), 200)\n } else {\n setShowNewPostsIndicator(false)\n }\n\n return () => {\n if (timeoutId) clearTimeout(timeoutId)\n }\n }, [newPosts.length])\n\n const userAvatars = useMemo(() => {\n return newPosts\n .map((p) => p.user)\n .filter((u, i, self) => self.findIndex((t) => t.id === u.id) === i)\n }, [newPosts])\n\n if (newPosts.length === 0 || !showNewPostsIndicator) return null\n\n return (\n \n
\n \n \n
New Posts
\n
\n \n )\n}\n","import { useEffect, useRef, useState } from \"react\"\n\nexport const useScrollingStopped = ({\n stoppedForMs,\n}: {\n stoppedForMs: number\n}) => {\n const [scrollingStopped, setScrollingStopped] = useState(false)\n const scrollTimeoutRef = useRef | null>(null)\n\n useEffect(() => {\n if (scrollingStopped) return\n\n const scrollListener = () => {\n if (scrollTimeoutRef.current) clearTimeout(scrollTimeoutRef.current)\n\n scrollTimeoutRef.current = setTimeout(function () {\n console.log(\"User has stopped scrolling for n MS\")\n setScrollingStopped(true)\n }, stoppedForMs)\n }\n\n window.addEventListener(\"scroll\", scrollListener)\n\n return () => {\n window.removeEventListener(\"scroll\", scrollListener)\n if (scrollTimeoutRef.current) clearTimeout(scrollTimeoutRef.current)\n }\n }, [scrollingStopped, stoppedForMs])\n\n return scrollingStopped\n}\n","import invariant from \"tiny-invariant\"\nimport { ArrowDown } from \"lucide-react\"\nimport { usePostInViewport } from \"./PostInViewportContext\"\nimport { useMemo } from \"react\"\nimport { parseISO } from \"date-fns\"\nimport { Selector_ChannelFragment } from \"~/__generated__/graphql\"\nimport { useScrollingStopped } from \"~/common/useScrollingStopped\"\n\nexport const UnreadPostsIndicator = ({\n channel,\n}: {\n channel?: Selector_ChannelFragment | null\n}) => {\n const scrollingStopped = useScrollingStopped({ stoppedForMs: 3000 })\n const { postsInView } = usePostInViewport() || {}\n invariant(postsInView, \"PostInViewport context must be provided\")\n\n const hasMoreUnreads = useMemo(() => {\n if (!channel) return\n\n const firstPostInViewCreatedAt = postsInView\n .map((post) => parseISO(post.createdAt))\n .sort()[0]\n\n if (!firstPostInViewCreatedAt) return false\n\n const oldestPostTime = channel?.channelOldestUnreadPostTime\n ? parseISO(channel.channelOldestUnreadPostTime)\n : null\n\n return !!oldestPostTime && oldestPostTime < firstPostInViewCreatedAt\n }, [postsInView, channel])\n\n if (!hasMoreUnreads || !scrollingStopped) return null\n\n return (\n
\n
\n
More Unread
\n \n
\n
\n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { RefObject, useRef, useState, useEffect, useMemo } from \"react\"\nimport toast from \"react-hot-toast\"\nimport invariant from \"tiny-invariant\"\nimport { gql } from \"~/__generated__\"\nimport {\n AhoyEventTypeEnum,\n ChannelVisibilityEnum,\n CommunitySlug,\n PostCreateInput,\n} from \"~/__generated__/graphql\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { FeedSidebar } from \"~/feed/FeedSidebar\"\nimport { PostFeed } from \"~/feed/PostFeed\"\nimport { TagFilter } from \"~/feed/TagFilter\"\nimport { useTagFilter } from \"~/feed/useTagFilter\"\nimport { PageWithRightSidebar } from \"~/layouts/PageWithRightSidebar\"\nimport { ComposerContextProvider } from \"~/post-composer/ComposerContext\"\nimport {\n ComposerHandle,\n ComposerOnSave,\n PostComposer,\n} from \"~/post-composer/PostComposer\"\nimport { Error } from \"~/ui/Error\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\nimport { useNavigate, useParams, useSearchParams } from \"react-router-dom\"\nimport { channelPath } from \"~/common/paths\"\nimport { useDebounce } from \"use-debounce\"\nimport { SearchInput } from \"~/ui/SearchInput\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { NewPostsIndicator } from \"~/feed/NewPostsIndicator\"\nimport { PostInViewportProvider } from \"~/feed/PostInViewportContext\"\nimport { UnreadPostsIndicator } from \"~/feed/UnreadPostsIndicator\"\nimport { CTAChecklist } from \"~/feed/CTAChecklist\"\nimport { USER_UPDATE_MUTATION } from \"~/common/userUpdateMutation\"\nimport { useChannels } from \"~/common/ChannelsProvider\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport ChatLocked from \"../images/icons/chat-locked.svg?react\"\nimport { H6, P } from \"~/ui/typography\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { cn } from \"~/lib/utils\"\nimport { useAuthenticatedLayout } from \"~/layouts/AuthenticatedLayout\"\nimport { useConfig } from \"~/common/ConfigProvider\"\n\nexport const FeedScreen = () => {\n const composerRef = useRef(null)\n\n return (\n \n }>\n \n \n \n )\n}\n\nconst FeedScreenInner = ({\n composerRef,\n}: {\n composerRef: RefObject\n}) => {\n const { channelSlug } = useParams()\n const { channels, goToChannel } = useChannels()\n const { selectedTagIds, setSelectedTagIds } = useTagFilter()\n const [retweetPostId, setRetweetPostId] = useState(null)\n const [retweetArticleId, setRetweetArticleId] = useState(null)\n const [searchTerm, setSearchTerm] = useState(\"\")\n const [debouncedSearchTerm] = useDebounce(searchTerm, 400)\n const topOfFeedRef = useRef(null)\n const queryVariables = useMemo(\n () => ({\n channelSlug,\n selectedTagIds,\n search: debouncedSearchTerm,\n }),\n [channelSlug, selectedTagIds, debouncedSearchTerm]\n )\n\n const channel = useMemo(() => {\n if (!channelSlug) return null\n return channels.find((c) => c.slug === channelSlug) || null\n }, [channels, channelSlug])\n\n const { setIsBlurred } = useAuthenticatedLayout()\n\n useEffect(() => {\n if (channel) {\n if (!channel.hasCurrentUserJoined) {\n setIsBlurred(true)\n goToChannel(channel.slug)\n } else {\n setIsBlurred(false)\n }\n }\n\n return () => {\n setIsBlurred(false)\n }\n }, [channel, goToChannel, setIsBlurred])\n\n const {\n data: currentData,\n previousData,\n loading,\n error,\n refetch,\n fetchMore,\n } = useQuery(FEED_QUERY_DOCUMENT, {\n variables: queryVariables,\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-and-network\",\n skip: !!(channel && !channel.hasCurrentUserJoined),\n })\n const ccls = useCommunityClassname()\n\n const { logEvent } = useLogEvent()\n const navigate = useNavigate()\n\n const data = currentData || previousData\n const [searchParams, setSearchParams] = useSearchParams()\n\n const advertizedChannel = useMemo(() => {\n return channels.find(\n (c) => c.slug !== channelSlug && !c.hasCurrentUserJoined\n )\n }, [channels, channelSlug])\n\n useEffect(() => {\n const postId = searchParams.get(\"share_post_id\")\n const articleId = searchParams.get(\"share_article_id\")\n if (postId) setRetweetPostId(postId)\n if (articleId) setRetweetArticleId(articleId)\n }, [searchParams])\n\n useEffect(() => {\n if (data && !loading) {\n if (composerRef && composerRef.current) {\n if (searchParams.get(\"post\") === \"focus\") {\n composerRef.current.focus()\n searchParams.set(\"post\", \"focused\")\n setSearchParams(searchParams)\n }\n }\n }\n }, [composerRef, searchParams, setSearchParams, loading, data])\n\n const [runUserUpdate] = useSafeMutation(USER_UPDATE_MUTATION)\n const [runPostCreate, postCreateResult] =\n useSafeMutation(POST_CREATE_MUTATION)\n\n const createPost: ComposerOnSave = async (input: PostCreateInput) => {\n const { data, errors } = await runPostCreate({\n variables: {\n input,\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n return false\n } else {\n toast.success(\"Created post\")\n invariant(data?.postCreate.post.id)\n\n const mentionedUsers = data.postCreate.post.mentionedUsers || []\n const mentionedGroups = data.postCreate.post.mentionedGroups || []\n\n logEvent(AhoyEventTypeEnum.PostSubmitted, {\n topics_selected: data.postCreate.post.tag?.name,\n post_id: data.postCreate.post.id,\n channel: data.postCreate.post.channel?.name,\n channel_id: data.postCreate.post.channel?.id,\n post_id_retweeted: data.postCreate.post.retweetPostId,\n article_id_retweeted: data.postCreate.post.retweetArticleId,\n is_anon: input.anonymous ? true : false,\n tagged_entities: mentionedUsers\n .map((u) => {\n return { id: u.id, type: \"user\" }\n })\n .concat(\n mentionedGroups.map((u) => {\n return { id: u.id, type: \"group\" }\n })\n ),\n number_entities_tagged: mentionedUsers.length + mentionedGroups.length,\n })\n\n // switch channel if the post was placed in a different channel\n if (\n channel &&\n data.postCreate.post.channel &&\n data.postCreate.post.channel.id !== channel.id\n ) {\n navigate(\n channelPath({ channelSlug: data.postCreate.post.channel.slug })\n )\n }\n\n setRetweetArticleId(null)\n setRetweetPostId(null)\n setSelectedTagIds([])\n refetch({ selectedTagIds: [] })\n\n return true\n }\n }\n\n const postComposerPost = useMemo(\n () => ({ channel, retweetArticleId, retweetPostId }),\n [channel, retweetArticleId, retweetPostId]\n )\n\n const { qaToolsEnabled } = useConfig()\n\n if (!data && loading)\n return (\n
\n Loading posts...\n
\n )\n if (error || !data) return \n\n const posts = data.posts.edges.map((e) => e.node)\n\n return (\n \n
\n
\n \n
\n\n \n \n
\n {channel?.visibility === ChannelVisibilityEnum.Private && (\n
\n \n
\n )}\n
\n
\n {channelSlug && channel ? channel.name : \"Community Feed\"}\n
\n {channel?.description &&

{channel.description}

}\n
\n
\n
\n
\n\n \n\n
\n
\n \n
\n \n
\n\n {(!channelSlug || channel?.id) && (\n \n topOfFeedRef.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"start\",\n })\n }\n />\n )}\n {channelSlug && }\n\n
\n 0}\n trackReadStates\n trackImpressions\n advertizedChannel={advertizedChannel}\n />\n
\n\n \n fetchMore({\n variables: { postsCursor: data.posts.pageInfo.endCursor },\n })\n }\n canLoadMore={!loading && data.posts.pageInfo.hasNextPage}\n loadingText=\"Loading posts...\"\n loading={loading && posts.length > 0}\n />\n
\n {qaToolsEnabled && (\n
\n
\n

QA Tools

\n
\n {\n const { errors } = await runUserUpdate({\n variables: {\n input: { checklistHidden: false, acknowledgedPwa: false },\n },\n })\n if (!errors) {\n window.location.reload()\n }\n }}\n className=\"px-4 py-2 bg-green-500 text-white rounded hover:bg-gray-600 text-sm\"\n >\n Show Checklist\n \n
\n
\n
\n )}\n
\n )\n}\n\nexport const FEED_QUERY_DOCUMENT = gql(`\n query FeedScreen($selectedTagIds: [ID!], $channelSlug: String, $search: String, $postsCursor: String) {\n tags {\n ...TagConnection_Composer\n ...TagConnection_Filter\n }\n posts(selectedTagIds: $selectedTagIds, channelSlug: $channelSlug, search: $search, first: 20, after: $postsCursor) {\n edges {\n node {\n ...Post_Card\n }\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n`)\n\nconst POST_CREATE_MUTATION = gql(`\n mutation PostCreate($input: PostCreateInput!) {\n postCreate(input: $input) {\n currentUser {\n id\n onboardingActions {\n introduceYourself\n }\n }\n post {\n id\n retweetPostId\n retweetArticleId\n mentionedUsers {\n id\n }\n mentionedGroups {\n id\n }\n tag {\n name\n }\n channel {\n id\n name\n slug\n }\n }\n }\n }\n`)\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n\nimport ImageTool from \"@editorjs/image\"\nimport { IconAddBorder, IconAddBackground } from \"@codexteam/icons\"\n\nexport class WorkweekImageTool extends ImageTool {\n static get pasteConfig() {\n // Overrides https://github.com/editor-js/image/blob/master/src/index.js#L272\n // Disable converting pasted URLs to images\n return {}\n }\n\n static get tunes() {\n return [\n {\n name: \"withBorder\",\n icon: IconAddBorder,\n title: \"With border\",\n toggle: true,\n },\n // {\n // name: \"stretched\",\n // icon: IconStretch,\n // title: \"Stretch image2\",\n // toggle: true,\n // },\n {\n name: \"withBackground\",\n icon: IconAddBackground,\n title: \"With background\",\n toggle: true,\n },\n ]\n }\n\n renderSettings() {\n // Merge default tunes with the ones that might be added by user\n // @see https://github.com/editor-js/image/pull/49\n const tunes = WorkweekImageTool.tunes.concat(this.config.actions)\n\n return tunes.map((tune) => ({\n icon: tune.icon,\n label: this.api.i18n.t(tune.title),\n name: tune.name,\n toggle: tune.toggle,\n isActive: this.data[tune.name],\n onActivate: () => {\n /* If it'a user defined tune, execute it's callback stored in action property */\n if (typeof tune.action === \"function\") {\n tune.action(tune.name)\n\n return\n }\n this.tuneToggled(tune.name)\n },\n }))\n }\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n\n// This file is duplicated from @editorjs/editorjs internals\n// for use in our custom tools.\n\n/**\n * TextRange interface for IE9-\n */\ninterface TextRange {\n boundingTop: number\n boundingLeft: number\n boundingBottom: number\n boundingRight: number\n boundingHeight: number\n boundingWidth: number\n}\n\n/**\n * Interface for object returned by document.selection in IE9-\n */\ninterface MSSelection {\n createRange: () => TextRange\n type: string\n}\n\n/**\n * Extends Document interface for IE9-\n */\ninterface Document {\n selection?: MSSelection\n}\n\n/**\n * Working with selection\n *\n * @typedef {SelectionUtils} SelectionUtils\n */\nexport class SelectionUtils {\n /**\n * Selection instances\n *\n * @todo Check if this is still relevant\n */\n public instance: Selection = null\n public selection: Selection = null\n\n /**\n * This property can store SelectionUtils's range for restoring later\n *\n * @type {Range|null}\n */\n public savedSelectionRange: Range = null\n\n /**\n * Fake background is active\n *\n * @returns {boolean}\n */\n public isFakeBackgroundEnabled = false\n\n /**\n * Native Document's commands for fake background\n */\n private readonly commandBackground: string = \"backColor\"\n private readonly commandRemoveFormat: string = \"removeFormat\"\n\n /**\n * Editor styles\n *\n * @returns {{editorWrapper: string, editorZone: string}}\n */\n public static get CSS(): { editorWrapper: string; editorZone: string } {\n return {\n editorWrapper: \"codex-editor\",\n editorZone: \"codex-editor__redactor\",\n }\n }\n\n /**\n * Returns selected anchor\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorNode}\n *\n * @returns {Node|null}\n */\n public static get anchorNode(): Node | null {\n const selection = window.getSelection()\n\n return selection ? selection.anchorNode : null\n }\n\n /**\n * Returns selection offset according to the anchor node\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorOffset}\n *\n * @returns {number|null}\n */\n public static get anchorOffset(): number | null {\n const selection = window.getSelection()\n\n return selection ? selection.anchorOffset : null\n }\n\n /**\n * Is current selection range collapsed\n *\n * @returns {boolean|null}\n */\n public static get isCollapsed(): boolean | null {\n const selection = window.getSelection()\n\n return selection ? selection.isCollapsed : null\n }\n\n /**\n * Check current selection if it is at Editor's zone\n *\n * @returns {boolean}\n */\n public static get isAtEditor(): boolean {\n return this.isSelectionAtEditor(SelectionUtils.get())\n }\n\n /**\n * Check if passed selection is at Editor's zone\n *\n * @param selection - Selection object to check\n */\n public static isSelectionAtEditor(selection: Selection): boolean {\n if (!selection) {\n return false\n }\n\n /**\n * Something selected on document\n */\n let selectedNode = (selection.anchorNode ||\n selection.focusNode) as HTMLElement\n\n if (selectedNode && selectedNode.nodeType === Node.TEXT_NODE) {\n selectedNode = selectedNode.parentNode as HTMLElement\n }\n\n let editorZone = null\n\n if (selectedNode && selectedNode instanceof Element) {\n editorZone = selectedNode.closest(`.${SelectionUtils.CSS.editorZone}`)\n }\n\n /**\n * SelectionUtils is not out of Editor because Editor's wrapper was found\n */\n return editorZone ? editorZone.nodeType === Node.ELEMENT_NODE : false\n }\n\n /**\n * Check if passed range at Editor zone\n *\n * @param range - range to check\n */\n public static isRangeAtEditor(range: Range): boolean {\n if (!range) {\n return false\n }\n\n let selectedNode = range.startContainer as HTMLElement\n\n if (selectedNode && selectedNode.nodeType === Node.TEXT_NODE) {\n selectedNode = selectedNode.parentNode as HTMLElement\n }\n\n let editorZone = null\n\n if (selectedNode && selectedNode instanceof Element) {\n editorZone = selectedNode.closest(`.${SelectionUtils.CSS.editorZone}`)\n }\n\n /**\n * SelectionUtils is not out of Editor because Editor's wrapper was found\n */\n return editorZone ? editorZone.nodeType === Node.ELEMENT_NODE : false\n }\n\n /**\n * Methods return boolean that true if selection exists on the page\n */\n public static get isSelectionExists(): boolean {\n const selection = SelectionUtils.get()\n\n return !!selection.anchorNode\n }\n\n /**\n * Return first range\n *\n * @returns {Range|null}\n */\n public static get range(): Range | null {\n return this.getRangeFromSelection(this.get())\n }\n\n /**\n * Returns range from passed Selection object\n *\n * @param selection - Selection object to get Range from\n */\n public static getRangeFromSelection(selection: Selection): Range | null {\n return selection && selection.rangeCount ? selection.getRangeAt(0) : null\n }\n\n /**\n * Calculates position and size of selected text\n *\n * @returns {DOMRect | ClientRect}\n */\n public static get rect(): DOMRect | ClientRect {\n let sel: Selection | MSSelection = (document as Document).selection,\n range: TextRange | Range\n\n let rect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n } as DOMRect\n\n if (sel && sel.type !== \"Control\") {\n sel = sel as MSSelection\n range = sel.createRange() as TextRange\n rect.x = range.boundingLeft\n rect.y = range.boundingTop\n rect.width = range.boundingWidth\n rect.height = range.boundingHeight\n\n return rect\n }\n\n if (!window.getSelection) {\n console.log(\"Method window.getSelection is not supported\", \"warn\")\n\n return rect\n }\n\n sel = window.getSelection()\n\n if (sel.rangeCount === null || isNaN(sel.rangeCount)) {\n console.log(\"Method SelectionUtils.rangeCount is not supported\", \"warn\")\n\n return rect\n }\n\n if (sel.rangeCount === 0) {\n return rect\n }\n\n range = sel.getRangeAt(0).cloneRange() as Range\n\n if (range.getBoundingClientRect) {\n rect = range.getBoundingClientRect() as DOMRect\n }\n // Fall back to inserting a temporary element\n if (rect.x === 0 && rect.y === 0) {\n const span = document.createElement(\"span\")\n\n if (span.getBoundingClientRect) {\n // Ensure span has dimensions and position by\n // adding a zero-width space character\n span.appendChild(document.createTextNode(\"\\u200b\"))\n range.insertNode(span)\n rect = span.getBoundingClientRect() as DOMRect\n\n const spanParent = span.parentNode\n\n spanParent.removeChild(span)\n\n // Glue any broken text nodes back together\n spanParent.normalize()\n }\n }\n\n return rect\n }\n\n /**\n * Returns selected text as String\n *\n * @returns {string}\n */\n public static get text(): string {\n return window.getSelection ? window.getSelection().toString() : \"\"\n }\n\n /**\n * Returns window SelectionUtils\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Window/getSelection}\n *\n * @returns {Selection}\n */\n public static get(): Selection {\n return window.getSelection()\n }\n\n /**\n * Check if current range exists and belongs to container\n *\n * @param container - where range should be\n */\n public static isRangeInsideContainer(container: HTMLElement): boolean {\n const range = SelectionUtils.range\n\n if (range === null) {\n return false\n }\n\n return container.contains(range.startContainer)\n }\n\n /**\n * Removes fake background\n */\n public removeFakeBackground(): void {\n if (!this.isFakeBackgroundEnabled) {\n return\n }\n\n this.isFakeBackgroundEnabled = false\n document.execCommand(this.commandRemoveFormat)\n }\n\n /**\n * Sets fake background\n */\n public setFakeBackground(): void {\n document.execCommand(this.commandBackground, false, \"#a8d6ff\")\n\n this.isFakeBackgroundEnabled = true\n }\n\n /**\n * Save SelectionUtils's range\n */\n public save = (): void => {\n this.tester = \"true\"\n this.savedSelectionRange = SelectionUtils.range\n console.log(\"saved range\", this.savedSelectionRange)\n }\n\n /**\n * Restore saved SelectionUtils's range\n */\n public restore = (): void => {\n console.log(\"tester\", this.tester)\n if (!this.savedSelectionRange) {\n console.log(\"no saved range\")\n return\n } else {\n console.log(\"restoring saved range\")\n }\n\n const sel = window.getSelection()\n\n sel.removeAllRanges()\n sel.addRange(this.savedSelectionRange)\n }\n\n /**\n * Clears saved selection\n */\n public clearSaved(): void {\n console.log(\"clear saved\")\n this.savedSelectionRange = null\n }\n\n /**\n * Collapse current selection\n */\n public collapseToEnd(): void {\n const sel = window.getSelection()\n const range = document.createRange()\n\n range.selectNodeContents(sel.focusNode)\n range.collapse(false)\n sel.removeAllRanges()\n sel.addRange(range)\n }\n\n /**\n * Looks ahead to find passed tag from current selection\n *\n * @param {string} tagName - tag to found\n * @param {string} [className] - tag's class name\n * @param {number} [searchDepth] - count of tags that can be included. For better performance.\n * @returns {HTMLElement|null}\n */\n public findParentTag(\n tagName: string,\n className?: string,\n searchDepth = 10\n ): HTMLElement | null {\n const selection = window.getSelection()\n let parentTag = null\n\n /**\n * If selection is missing or no anchorNode or focusNode were found then return null\n */\n if (!selection || !selection.anchorNode || !selection.focusNode) {\n return null\n }\n\n /**\n * Define Nodes for start and end of selection\n */\n const boundNodes = [\n /** the Node in which the selection begins */\n selection.anchorNode as HTMLElement,\n /** the Node in which the selection ends */\n selection.focusNode as HTMLElement,\n ]\n\n /**\n * For each selection parent Nodes we try to find target tag [with target class name]\n * It would be saved in parentTag variable\n */\n boundNodes.forEach((parent) => {\n /** Reset tags limit */\n let searchDepthIterable = searchDepth\n\n while (searchDepthIterable > 0 && parent.parentNode) {\n /**\n * Check tag's name\n */\n if (parent.tagName === tagName) {\n /**\n * Save the result\n */\n parentTag = parent\n\n /**\n * Optional additional check for class-name mismatching\n */\n if (\n className &&\n parent.classList &&\n !parent.classList.contains(className)\n ) {\n parentTag = null\n }\n\n /**\n * If we have found required tag with class then go out from the cycle\n */\n if (parentTag) {\n break\n }\n }\n\n /**\n * Target tag was not found. Go up to the parent and check it\n */\n parent = parent.parentNode as HTMLElement\n searchDepthIterable--\n }\n })\n\n /**\n * Return found tag or null\n */\n return parentTag\n }\n\n /**\n * Expands selection range to the passed parent node\n *\n * @param {HTMLElement} element - element which contents should be selected\n */\n public expandToTag(element: HTMLElement): void {\n const selection = window.getSelection()\n\n selection.removeAllRanges()\n const range = document.createRange()\n\n range.selectNodeContents(element)\n selection.addRange(range)\n }\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n\nimport { SelectionUtils } from \"../SelectionUtils\"\n\nexport class ColorTool {\n static get isInline() {\n return true\n }\n\n get state() {\n return this._state\n }\n\n static get sanitize() {\n return {\n font: {\n class: \"ww-colored-font\",\n style: true,\n },\n mark: {\n class: \"ww-bg-color\",\n style: true,\n },\n }\n }\n\n set state(state) {\n this._state = state\n\n this.button.classList.toggle(this.api.styles.inlineToolButtonActive, state)\n }\n\n constructor({ config, api }) {\n this.api = api\n this.config = config\n this.button = null\n this._state = false\n this.selection = new SelectionUtils()\n\n this.tag = \"FONT\"\n this.class = \"ww-colored-font\"\n }\n\n render() {\n this.button = document.createElement(\"button\")\n this.button.type = \"button\"\n this.button.innerHTML =\n ''\n this.button.classList.add(this.api.styles.inlineToolButton)\n\n return this.button\n }\n\n surround(range) {\n if (this.state) {\n this.selection.restore()\n this.unwrap(range)\n } else {\n this.selection.save()\n this.wrap(range)\n }\n }\n\n wrap(range) {\n const selectedText = range.extractContents()\n const mark = document.createElement(this.tag)\n\n mark.classList.add(this.class)\n mark.appendChild(selectedText)\n range.insertNode(mark)\n\n this.api.selection.expandToTag(mark)\n\n this.mark = mark\n }\n\n unwrap(_range) {\n const mark = this.api.selection.findParentTag(this.tag, this.class)\n this.api.selection.expandToTag(mark)\n\n const sel = window.getSelection()\n const fullRange = sel.getRangeAt(0)\n\n const unwrappedContent = fullRange.extractContents()\n mark.remove()\n\n fullRange.insertNode(unwrappedContent)\n\n // Restore selection\n sel.removeAllRanges()\n sel.addRange(fullRange)\n\n this.mark = null\n }\n\n checkState() {\n const mark = this.api.selection.findParentTag(this.tag)\n\n this.state = !!mark\n\n if (this.state) {\n this.maybeRestoreMarkColor(mark)\n this.setMarkColor(mark)\n this.showActions(mark)\n this.selection.save()\n } else {\n this.hideActions()\n this.selectedColor = null\n }\n\n return this.state\n }\n\n renderActions() {\n this.actionsContainer = document.createElement(\"div\")\n this.actionsContainer.classList.add(\"color-tool-actions\")\n\n this.actionsContainer.innerHTML = `\n
\n Text Color:\n
\n
\n ${this.config.colors\n .map(\n (c) =>\n `
`\n )\n .join(\"\")}\n
\n `\n\n this.actionsContainer.addEventListener(\"click\", () => {\n this.selection.restore()\n })\n\n const colors = this.actionsContainer.querySelectorAll(\".color-tool-entry\")\n const mark = this.api.selection.findParentTag(this.tag)\n\n colors.forEach((colorElement) => {\n colorElement.addEventListener(\"click\", (e) => {\n this.selectedColor = e.target.style.backgroundColor\n this.setMarkColor(mark)\n })\n })\n\n return this.actionsContainer\n }\n\n maybeRestoreMarkColor = (mark) => {\n if (mark?.style?.color) {\n this.selectedColor = mark.style.color\n }\n }\n\n setMarkColor = (mark) => {\n if (!this.selectedColor) {\n this.selectedColor = this.config.defaultColor\n }\n if (mark) {\n mark.style.color = this.selectedColor\n }\n }\n\n showActions(_mark) {\n this.actionsContainer.style.display = \"block\"\n }\n\n hideActions() {\n this.actionsContainer.style.display = \"none\"\n }\n}\n","import Warning from \"@editorjs/warning\"\nimport { IconWarning } from \"@codexteam/icons\"\n\nexport class WorkweekCalloutTool extends Warning {\n static get toolbox() {\n return {\n icon: IconWarning,\n title: \"Callout\",\n }\n }\n}\n","import LinkTool from \"@editorjs/link\"\nimport { IconLink } from \"@codexteam/icons\"\n\nexport function createWorkweekLinkTool(title: string) {\n return class WorkweekLinkTool extends LinkTool {\n static get toolbox() {\n return {\n icon: IconLink,\n title: title,\n }\n }\n }\n}\n","import { IconChevronDown, IconFile } from \"@codexteam/icons\"\nimport AttachesTool from \"@editorjs/attaches\"\n\nexport class WorkweekPdfEmbedTool extends AttachesTool {\n static get toolbox() {\n return {\n icon: IconFile,\n title: \"PDF Embed\",\n }\n }\n\n // Copied from\n // https://github.com/editor-js/attaches/blob/master/src/index.js#L402\n showFileData() {\n this.nodes.wrapper.classList.add(this.CSS.wrapperWithFile)\n\n const { file, title } = this.data\n\n this.appendFileIcon(file)\n\n const fileInfo = make(\"div\", this.CSS.fileInfo)\n\n this.nodes.title = make(\"div\", this.CSS.title, {\n contentEditable: this.readOnly === false,\n })\n\n this.nodes.title.dataset.placeholder = this.api.i18n.t(\"File title\")\n this.nodes.title.textContent = title || \"\"\n fileInfo.appendChild(this.nodes.title)\n\n if (file.size) {\n let sizePrefix\n let formattedSize\n const fileSize = make(\"div\", this.CSS.size)\n\n if (Math.log10(+file.size) >= 6) {\n sizePrefix = \"MiB\"\n formattedSize = file.size / Math.pow(2, 20)\n } else {\n sizePrefix = \"KiB\"\n formattedSize = file.size / Math.pow(2, 10)\n }\n\n fileSize.textContent = formattedSize.toFixed(1)\n fileSize.setAttribute(\"data-size\", sizePrefix)\n fileInfo.appendChild(fileSize)\n }\n\n const embeddedPdfText = make(\"div\", \"cdx-attaches__pdf-text\")\n embeddedPdfText.innerHTML =\n \"Embedded PDF: This will appear as an embedded PDF.\"\n fileInfo.appendChild(embeddedPdfText)\n\n this.nodes.wrapper.appendChild(fileInfo)\n\n if (file.url !== undefined) {\n const downloadIcon = make(\"a\", this.CSS.downloadButton, {\n innerHTML: IconChevronDown,\n href: file.url,\n target: \"_blank\",\n rel: \"nofollow noindex noreferrer\",\n })\n\n this.nodes.wrapper.appendChild(downloadIcon)\n }\n }\n}\n\nconst make = (\n tagName: string,\n classNames: string | string[] | null = null,\n attributes: any = {}\n) => {\n const el = document.createElement(tagName)\n\n if (Array.isArray(classNames)) {\n el.classList.add(...classNames)\n } else if (classNames) {\n el.classList.add(classNames)\n }\n\n for (const attrName in attributes) {\n // @ts-expect-error - TS doesn't like setting arbitrary attributes on elements\n el[attrName] = attributes[attrName]\n }\n\n return el\n}\n","export default \"\\n\\n\\n\"","import Delimiter from \"@editorjs/delimiter\"\nimport DelimiterIcon from \"~/images/icons/delimiter.svg?raw\"\n\nexport class WorkweekDelimiterTool extends Delimiter {\n static get toolbox() {\n return {\n icon: DelimiterIcon,\n title: \"Divider\",\n }\n }\n}\n","export default \"\\n\\n\\n\"","import { PollEditor, PollEditorFragment } from \"~/polls/PollEditor\"\nimport {\n API,\n BlockAPI,\n BlockToolConstructorOptions,\n ToolConfig,\n} from \"@editorjs/editorjs\"\nimport { ReactPortal } from \"react\"\nimport BarChartIcon from \"~/images/icons/bar-chart.svg?raw\"\nimport invariant from \"tiny-invariant\"\n\ninterface PollConfig extends ToolConfig {\n createPortal: (\n blockId: string,\n node: React.ReactNode,\n container: HTMLElement\n ) => ReactPortal\n removePortal: (blockId: string) => void\n}\n\ninterface PollData {\n pollId: string\n}\n\ninterface PollParams extends BlockToolConstructorOptions {\n data: PollData\n config?: PollConfig\n block: BlockAPI\n}\n\nexport class PollTool {\n api: API\n block: BlockAPI\n pollId: string | null = null\n createPortal: PollConfig[\"createPortal\"]\n removePortal: PollConfig[\"removePortal\"]\n portal: ReactPortal | null = null\n\n constructor(config: PollParams) {\n invariant(config.config?.createPortal, \"createPortal is required in config\")\n\n this.block = config.block\n this.api = config.api\n this.pollId = config.data.pollId || null\n this.createPortal = config.config.createPortal\n this.removePortal = config.config.removePortal\n return this\n }\n\n static get toolbox() {\n return {\n title: \"Poll\",\n icon: BarChartIcon,\n }\n }\n\n render() {\n const rootEl = document.createElement(\"div\")\n this.portal = this.createPortal(\n this.block.id,\n this.onPollChange(poll)}\n tool={this}\n />,\n rootEl\n )\n return rootEl\n }\n\n onPollChange(poll: PollEditorFragment) {\n this.pollId = poll.id\n }\n\n remove() {\n const totalBlocks = this.api.blocks.getBlocksCount()\n for (let i = 0; i < totalBlocks; i++) {\n const block = this.api.blocks.getBlockByIndex(i)\n if (block && block.id === this.block.id) {\n this.api.blocks.delete(i)\n break\n }\n }\n }\n\n removed() {\n this.removePortal(this.block.id)\n }\n\n save() {\n return {\n pollId: this.pollId,\n }\n }\n}\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { Info } from \"lucide-react\"\nimport { useCallback, useEffect } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\nimport { Alert, AlertDescription } from \"~/ui/alert\"\nimport { Button } from \"~/ui/button\"\nimport {\n Dialog,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"~/ui/dialog\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Input } from \"~/ui/input\"\n\nconst airTableFormEmbedModalFormSchema = z.object({\n url: z\n .string()\n .min(1, {\n message: \"URL is required\",\n })\n .url(\"Invalid URL\")\n .includes(\"airtable.com\", {\n message: \"URL must be an AirTable form\",\n })\n .trim(),\n})\n\ntype AirTableFormEmbedEditorModalFormValues = z.infer<\n typeof airTableFormEmbedModalFormSchema\n>\n\ntype AirTableFormEmbedEditorModalProps = {\n onSave: (url: string) => void\n open: boolean\n url: string\n setIsOpen: (value: boolean) => void\n}\n\nexport const AirTableFormEmbedEditorModal = ({\n onSave,\n open,\n url,\n setIsOpen,\n}: AirTableFormEmbedEditorModalProps) => {\n const form = useForm({\n resolver: zodResolver(airTableFormEmbedModalFormSchema),\n defaultValues: {\n url: url,\n },\n })\n\n useEffect(() => {\n form.reset({\n url: url,\n })\n }, [form, url])\n\n const onSubmit = useCallback(\n async (values: AirTableFormEmbedEditorModalFormValues) => {\n onSave(values.url)\n setIsOpen(false)\n },\n [onSave, setIsOpen]\n )\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n \n \n {url ? \"Edit AirTable Form\" : \"Add AirTable Form\"}\n \n \n
\n \n (\n \n URL\n \n \n \n \n \n )}\n />\n\n \n \n \n
\n If your form contains the following field names, they will be\n prefilled with the user's information:\n
\n
    \n
  • UserId
  • \n
  • Email Address
  • \n
  • Name
  • \n
  • First Name
  • \n
  • Last Name
  • \n
\n
\n
\n\n \n setIsOpen(false)}\n >\n Cancel\n \n \n \n \n \n
\n \n )\n}\n","import { AlertCircleIcon, Clipboard } from \"lucide-react\"\nimport * as React from \"react\"\nimport { useCallback, useEffect, useMemo, useState } from \"react\"\nimport { cn } from \"~/lib/utils\"\nimport { Button } from \"~/ui/button\"\nimport { AirTableFormEmbedTool } from \"./editorTools/AirTableFormEmbedTool\"\nimport { AirTableFormEmbed } from \"./AirTableFormEmbed\"\nimport { AirTableFormEmbedEditorModal } from \"./AirTableFormEmbedModal\"\n\ntype AirTableFormEmbedEditorProps = React.HTMLAttributes & {\n url?: string\n onAirTableFormEmbedChange: (url: string) => void\n tool: AirTableFormEmbedTool\n}\n\nexport const AirTableFormEmbedEditor = React.forwardRef<\n HTMLDivElement,\n AirTableFormEmbedEditorProps\n>(({ url, onAirTableFormEmbedChange, tool, className, ...props }, ref) => {\n const [wasModalOpened, setWasModalOpened] = useState(false)\n const [isModalOpen, setIsModalOpen] = useState(!url)\n const [airTableFormUrl, setAirTableFormUrl] = React.useState(\n url || \"\"\n )\n\n useEffect(() => {\n if (url) {\n setAirTableFormUrl(url)\n }\n }, [url])\n\n useEffect(() => {\n if (isModalOpen) {\n setWasModalOpened(true)\n }\n }, [isModalOpen])\n\n const isError = useMemo(\n () => !isModalOpen && wasModalOpened && !airTableFormUrl,\n [airTableFormUrl, wasModalOpened, isModalOpen]\n )\n useEffect(() => {\n if (!isModalOpen && wasModalOpened && !airTableFormUrl) {\n tool.remove()\n }\n }, [airTableFormUrl, tool, wasModalOpened, isModalOpen])\n\n useEffect(() => {\n if (!wasModalOpened && !airTableFormUrl) {\n setIsModalOpen(true)\n }\n }, [airTableFormUrl, wasModalOpened])\n\n const onAirTableFormEmbedSave = useCallback(\n (url: string) => {\n setAirTableFormUrl(url)\n onAirTableFormEmbedChange(url)\n },\n [onAirTableFormEmbedChange]\n )\n\n return (\n <>\n \n \n
\n
\n {isError ? (\n \n ) : (\n \n )}\n
\n
AirTable Form
\n
\n
\n {airTableFormUrl && (\n <>\n
{airTableFormUrl}
\n \n \n )}\n
\n setIsModalOpen(true)}\n className=\"w-min text-xs text-link font-normal\"\n >\n {airTableFormUrl ? <>Edit Form URL : <>Add Form URL}\n \n
\n
\n \n \n )\n})\n","import {\n API,\n BlockAPI,\n BlockToolConstructorOptions,\n ToolConfig,\n} from \"@editorjs/editorjs\"\nimport { ReactPortal } from \"react\"\nimport invariant from \"tiny-invariant\"\nimport { AirTableFormEmbedEditor } from \"../AirTableFormEmbedEditor\"\nimport { Clipboard } from \"lucide-static\"\n\ninterface AirTableFormEmbedConfig extends ToolConfig {\n createPortal: (\n blockId: string,\n node: React.ReactNode,\n container: HTMLElement\n ) => ReactPortal\n removePortal: (blockId: string) => void\n}\n\ninterface AirTableFormEmbedData {\n url: string | null\n}\n\ninterface AirTableFormEmbedParams extends BlockToolConstructorOptions {\n data: AirTableFormEmbedData\n config?: AirTableFormEmbedConfig\n block: BlockAPI\n}\n\nexport class AirTableFormEmbedTool {\n api: API\n block: BlockAPI\n url: string | null = null\n createPortal: AirTableFormEmbedConfig[\"createPortal\"]\n removePortal: AirTableFormEmbedConfig[\"removePortal\"]\n portal: ReactPortal | null = null\n\n constructor(config: AirTableFormEmbedParams) {\n invariant(config.config?.createPortal, \"createPortal is required in config\")\n\n this.block = config.block\n this.api = config.api\n this.url = config.data.url || null\n this.createPortal = config.config.createPortal\n this.removePortal = config.config.removePortal\n return this\n }\n\n static get toolbox() {\n return {\n title: \"AirTable Embed\",\n icon: Clipboard,\n }\n }\n\n render() {\n const rootEl = document.createElement(\"div\")\n this.portal = this.createPortal(\n this.block.id,\n this.onAirTableFormEmbedChange(url)}\n tool={this}\n />,\n rootEl\n )\n return rootEl\n }\n\n onAirTableFormEmbedChange(url: string) {\n this.url = url\n }\n\n remove() {\n const totalBlocks = this.api.blocks.getBlocksCount()\n for (let i = 0; i < totalBlocks; i++) {\n const block = this.api.blocks.getBlockByIndex(i)\n if (block && block.id === this.block.id) {\n this.api.blocks.delete(i)\n break\n }\n }\n }\n\n removed() {\n this.removePortal(this.block.id)\n }\n\n save() {\n return {\n url: this.url,\n }\n }\n}\n","// Inspired by the offical Underline implementation: https://github.com/editor-js/underline/blob/master/src/index.ts\n\nimport { IconStrikethrough } from \"@codexteam/icons\"\nimport {\n type API,\n type InlineTool,\n type SanitizerConfig,\n} from \"@editorjs/editorjs\"\nimport { type InlineToolConstructorOptions } from \"@editorjs/editorjs/types/tools/inline-tool\"\n\n/**\n * Strikethrough Tool for the Editor.js\n *\n * Allows to wrap inline fragment and style it somehow.\n */\nexport default class Strikethrough implements InlineTool {\n /**\n * Class name for term-tag\n *\n * @type {string}\n */\n static get CSS(): string {\n return \"cdx-strikethrough\"\n }\n\n /**\n * Toolbar Button\n *\n * @type {HTMLButtonElement}\n */\n private button: HTMLButtonElement | undefined\n\n /**\n * Tag represented the term\n *\n * @type {string}\n */\n private tag: string = \"S\"\n\n /**\n * API InlineToolConstructorOptions\n *\n * @type {API}\n */\n private api: API\n\n /**\n * CSS classes\n *\n * @type {object}\n */\n private iconClasses: { base: string; active: string }\n\n /**\n * @param options InlineToolConstructorOptions\n */\n public constructor(options: InlineToolConstructorOptions) {\n this.api = options.api\n\n /**\n * CSS classes\n */\n this.iconClasses = {\n base: this.api.styles.inlineToolButton,\n active: this.api.styles.inlineToolButtonActive,\n }\n }\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @returns {boolean}\n */\n public static isInline = true\n\n /**\n * Create button element for Toolbar\n *\n * @returns {HTMLElement}\n */\n public render(): HTMLElement {\n this.button = document.createElement(\"button\")\n this.button.type = \"button\"\n this.button.classList.add(this.iconClasses.base)\n this.button.innerHTML = this.toolboxIcon\n\n return this.button\n }\n\n /**\n * Wrap/Unwrap selected fragment\n *\n * @param {Range} range - selected fragment\n */\n public surround(range: Range): void {\n if (!range) {\n return\n }\n\n const termWrapper = this.api.selection.findParentTag(\n this.tag,\n Strikethrough.CSS\n )\n\n /**\n * If start or end of selection is in the highlighted block\n */\n if (termWrapper) {\n this.unwrap(termWrapper)\n } else {\n this.wrap(range)\n }\n }\n\n /**\n * Wrap selection with term-tag\n *\n * @param {Range} range - selected fragment\n */\n public wrap(range: Range) {\n /**\n * Create a wrapper for highlighting\n */\n const u = document.createElement(this.tag)\n\n u.classList.add(Strikethrough.CSS)\n\n /**\n * SurroundContent throws an error if the Range splits a non-Text node with only one of its boundary points\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Range/surroundContents}\n *\n * // range.surroundContents(span);\n */\n u.appendChild(range.extractContents())\n range.insertNode(u)\n\n /**\n * Expand (add) selection to highlighted block\n */\n this.api.selection.expandToTag(u)\n }\n\n /**\n * Unwrap term-tag\n *\n * @param {HTMLElement} termWrapper - term wrapper tag\n */\n public unwrap(termWrapper: HTMLElement): void {\n /**\n * Expand selection to all term-tag\n */\n this.api.selection.expandToTag(termWrapper)\n\n const sel = window.getSelection()\n if (!sel) {\n return\n }\n const range = sel.getRangeAt(0)\n if (!range) {\n return\n }\n\n const unwrappedContent = range.extractContents()\n if (!unwrappedContent) {\n return\n }\n\n /**\n * Remove empty term-tag\n */\n termWrapper.parentNode?.removeChild(termWrapper)\n\n /**\n * Insert extracted content\n */\n range.insertNode(unwrappedContent)\n\n /**\n * Restore selection\n */\n sel.removeAllRanges()\n sel.addRange(range)\n }\n\n /**\n * Check and change Term's state for current selection\n */\n public checkState(): boolean {\n const termTag = this.api.selection.findParentTag(\n this.tag,\n Strikethrough.CSS\n )\n\n this.button?.classList.toggle(this.iconClasses.active, !!termTag)\n\n return !!termTag\n }\n\n /**\n * Get Tool icon's SVG\n *\n * @returns {string}\n */\n public get toolboxIcon(): string {\n return IconStrikethrough\n }\n\n /**\n * Sanitizer rule\n *\n * @returns {{s: {class: string}}}\n */\n public static get sanitize(): SanitizerConfig {\n return {\n s: {\n class: Strikethrough.CSS,\n },\n }\n }\n}\n","import EditorJS from \"@editorjs/editorjs\"\nimport RawTool from \"@editorjs/raw\"\nimport Header from \"@editorjs/header\"\nimport Quote from \"@editorjs/quote\"\nimport Table from \"@editorjs/table\"\nimport Underline from \"@editorjs/underline\"\nimport AttachesTool from \"@editorjs/attaches\"\nimport Paragraph from \"@editorjs/paragraph\"\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from \"react\"\nimport { WorkweekImageTool } from \"./editorTools/WorkweekImageTool\"\nimport { useFileUpload } from \"./useFileUpload\"\nimport { ColorTool } from \"./editorTools/ColorTool\"\nimport { WorkweekCalloutTool } from \"./editorTools/WorkweekCalloutTool\"\nimport { createWorkweekLinkTool } from \"./editorTools/WorkweekLinkTool\"\nimport { WorkweekPdfEmbedTool } from \"./editorTools/WorkweekPdfEmbedTool\"\nimport Undo from \"editorjs-undo\"\nimport { WorkweekListTool } from \"./editorTools/WorkweekListTool\"\nimport { WorkweekDelimiterTool } from \"./editorTools/WorkweekDelimiterTool\"\nimport { createPortal } from \"react-dom\"\nimport { PollTool } from \"./editorTools/PollTool\"\nimport { AirTableFormEmbedTool } from \"./editorTools/AirTableFormEmbedTool\"\nimport { useConfig } from \"~/common/ConfigProvider\"\nimport Strikethrough from \"./editorTools/Strikethrough\"\n\nexport type EditorHandle = {\n getContent: () => Promise\n}\n\ntype Props = {\n articleId: string\n initialData?: any\n onChange: () => void\n}\n\n// The editorjs onChange callback doesn't work well with hooks because\n// it's not possible to update the onChange callback dynamically\nlet localOnChange = () => {}\nconst localOnChangeCaller = () => {\n localOnChange()\n}\n\nexport const Editor = forwardRef(\n ({ articleId, onChange, initialData = {} }, ref) => {\n const { linkMetadataPath } = useConfig()\n const [pollPortals, setPollPortals] = React.useState(\n []\n )\n\n const createBlockPortal = useCallback(\n (blockId: string, node: React.ReactNode, container: HTMLElement) => {\n setPollPortals((portals) => {\n const portal = createPortal(\n node,\n container,\n `block-portal-${blockId}`\n )\n return [...portals, portal]\n })\n },\n []\n )\n const removeBlockPortal = useCallback(\n (blockId: string) => {\n setPollPortals((portals) => {\n return portals.filter(\n (portal) => portal.key !== `block-portal-${blockId}`\n )\n })\n },\n [setPollPortals]\n )\n\n const editorRef = useRef(null)\n\n useImperativeHandle(\n ref,\n () => {\n return {\n getContent: async () => {\n if (!editorRef.current) return null\n return editorRef.current?.save()\n },\n }\n },\n []\n )\n\n const { uploadAndAttachFile, uploadAndAttachImage } = useFileUpload({\n articleId,\n })\n\n useEffect(() => {\n return () => {\n if (editorRef.current) {\n console.log(\"detaching editor\")\n editorRef.current.destroy?.()\n }\n }\n }, [])\n\n useEffect(() => {\n localOnChange = onChange\n }, [onChange])\n\n useEffect(() => {\n if (editorRef.current === null) {\n console.log(\"attaching editor\")\n\n editorRef.current = new EditorJS({\n holder: \"editorjs\",\n autofocus: true,\n data: initialData,\n placeholder: \"Start creating content here...\",\n hideToolbar: false,\n inlineToolbar: true,\n onChange: localOnChangeCaller,\n onReady: () => {\n const undo = new Undo({\n editor: editorRef.current,\n config: {\n shortcuts: {\n undo: \"CMD+Z\",\n redo: \"CMD+SHIFT+Z\",\n },\n },\n })\n undo.initialize(initialData)\n },\n // onChange: async () => {\n // const content = await editorRef.current?.saver.save()\n // console.log(content)\n // },\n defaultBlock: \"paragraph\",\n tools: {\n raw: RawTool,\n paragraph: {\n class: Paragraph,\n inlineToolbar: true,\n config: {\n preserveBlank: true,\n },\n },\n color: {\n // @ts-expect-error - editorjs types are incomplete\n class: ColorTool,\n config: {\n colors: [\n \"var(--editor-text-color-1)\",\n \"var(--editor-text-color-2)\",\n \"var(--editor-text-color-3)\",\n \"var(--editor-text-color-4)\",\n \"var(--editor-text-color-5)\",\n \"var(--editor-text-color-6)\",\n ],\n defaultColor: \"var(--editor-text-color-1)\",\n type: \"text\",\n },\n },\n // marker: {\n // class: ColorPlugin, // if load from CDN, please try: window.ColorPlugin\n // config: {\n // defaultColor: \"#FFBF00\",\n // type: \"marker\",\n // },\n // },\n header: {\n class: Header,\n inlineToolbar: true,\n config: {\n levels: [1, 2, 3],\n defaultLevel: 3,\n },\n },\n underline: Underline,\n strikethrough: Strikethrough,\n list: {\n // @ts-expect-error - editorjs types are incomplete\n class: WorkweekListTool,\n inlineToolbar: true,\n config: {\n defaultStyle: \"unordered\",\n },\n },\n quote: Quote,\n delimiter: WorkweekDelimiterTool,\n linkTool: {\n class: createWorkweekLinkTool(\"Embed Link\"),\n config: {\n endpoint: linkMetadataPath,\n },\n },\n // disabled due to security concerns\n // raw: RawTool,\n warning: {\n class: WorkweekCalloutTool,\n inlineToolbar: true,\n config: {\n titlePlaceholder: \"💡️\",\n },\n },\n table: {\n class: Table,\n inlineToolbar: true,\n },\n image: {\n // @ts-expect-error - editorjs types are incomplete\n class: WorkweekImageTool,\n config: {\n uploader: {\n uploadByFile: uploadAndAttachImage,\n },\n types: \"image/*\",\n captionPlaceholder: \"Caption (optional - leave blank for none)\",\n altPlaceholder: \"Alt text (for accessibility)\",\n },\n },\n attaches: {\n class: AttachesTool,\n config: {\n uploader: {\n uploadByFile: uploadAndAttachFile,\n },\n },\n },\n pdfEmbed: {\n // @ts-expect-error - editorjs types are incomplete\n class: WorkweekPdfEmbedTool,\n config: {\n uploader: {\n uploadByFile: uploadAndAttachFile,\n },\n types: \"application/pdf\",\n },\n },\n poll: {\n class: PollTool as any, // There's a bug with editorjs's type definitions around class definitions\n config: {\n createPortal: createBlockPortal,\n removePortal: removeBlockPortal,\n },\n },\n airTableFormEmbed: {\n class: AirTableFormEmbedTool as any, // There's a bug with editorjs's type definitions around class definitions\n config: {\n createPortal: createBlockPortal,\n removePortal: removeBlockPortal,\n },\n },\n },\n })\n }\n }, [\n initialData,\n uploadAndAttachFile,\n uploadAndAttachImage,\n onChange,\n createBlockPortal,\n removeBlockPortal,\n linkMetadataPath,\n ])\n\n return (\n <>\n {pollPortals.map((portal) => (\n {portal}\n ))}\n
\n \n )\n }\n)\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { z } from \"zod\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Input } from \"~/ui/input\"\nimport { Button } from \"~/ui/button\"\nimport { Textarea } from \"~/ui/textarea\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"~/ui/select\"\nimport { gql } from \"~/__generated__\"\nimport { useQuery } from \"@apollo/client\"\nimport {\n ArticleContentTypeEnum,\n AhoyEventTypeEnum,\n CommunitySlug,\n} from \"~/__generated__/graphql\"\nimport { ArticleDetailsModalHelpers } from \"./useArticleDetailsModal\"\nimport { useEffect } from \"react\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { cn } from \"~/lib/utils\"\nimport { useTranslation } from \"~/common/Translation\"\n\nconst articleFormSchema = z.object({\n contentType: z.nativeEnum(ArticleContentTypeEnum, {\n required_error: \"Select a type\",\n }),\n tagId: z.string({\n required_error: \"Select a topic\",\n }),\n title: z.string().min(1, {\n message: \"Title is required\",\n }),\n description: z.string().min(1, {\n message: \"Description is required\",\n }),\n})\n\nexport type ArticleDetailsFormValues = z.infer\n\nexport const ArticleDetailsModal = ({\n isOpen,\n setIsOpen,\n onSubmit,\n isLoading,\n initialFormValues,\n}: ArticleDetailsModalHelpers) => {\n const { logEvent } = useLogEvent()\n const { data } = useQuery(ARTICLE_MODAL_QUERY_DOCUMENT)\n const isEditing = !!initialFormValues\n const community = useCommunity()\n const ccls = useCommunityClassname()\n const { t: contentTypes } = useTranslation(\"contentTypes\")\n\n const form = useForm>({\n resolver: zodResolver(articleFormSchema),\n defaultValues: initialFormValues || {\n title: \"\",\n description: \"\",\n tagId: undefined,\n contentType: undefined,\n },\n })\n\n useEffect(() => {\n if (isOpen === true && !isEditing) {\n logEvent(AhoyEventTypeEnum.ContentUploadInitiated)\n }\n\n if (isOpen === false && !isEditing) {\n form.reset()\n }\n }, [isOpen, form, isEditing, logEvent])\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n
\n {isEditing ? \"Edit Content Details\" : \"Start Creating!\"}\n
\n
\n {isEditing\n ? \"Edit the details of your content.\"\n : \"Get started by selecting a topic for your content.\"}\n
\n\n
\n \n
\n (\n \n Select Topic\n \n \n \n \n \n \n \n {data?.tags.nodes.map((tag) => (\n \n {tag.name}\n \n ))}\n \n \n \n \n )}\n />\n (\n \n Select Type\n {!!initialFormValues &&\n (initialFormValues.contentType ===\n ArticleContentTypeEnum.Lesson ||\n initialFormValues.contentType ===\n ArticleContentTypeEnum.Course) ? (\n \n ) : (\n \n \n \n \n \n \n \n {community.contentTypes.map((type) => (\n \n {contentTypes(type)}\n \n ))}\n \n \n )}\n \n \n )}\n />\n
\n (\n \n Title\n \n \n \n \n \n )}\n />\n\n (\n \n Description\n \n \n \n \n \n )}\n />\n\n
\n\n
\n \n {isEditing ? \"Submit\" : \"Continue\"}\n \n
\n \n \n \n \n )\n}\n\nexport const ARTICLE_MODAL_QUERY_DOCUMENT = gql(`\n query ArticleModal {\n tags {\n nodes {\n id\n name\n }\n }\n }\n`)\n","import { useCallback, useMemo, useState } from \"react\"\nimport { gql } from \"~/__generated__\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { ArticleDetailsFormValues } from \"./ArticleDetailsModal\"\nimport { displayErrors } from \"~/common/validations\"\nimport toast from \"react-hot-toast\"\nimport invariant from \"tiny-invariant\"\nimport {\n ArticleContentTypeEnum,\n Article_EditorContentFragment,\n AhoyEventTypeEnum,\n} from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\n\nexport type ArticleDetailsModalHelpers = {\n isOpen: boolean\n setIsOpen: (value: boolean) => void\n onSubmit: (values: ArticleDetailsFormValues) => void\n isLoading: boolean\n initialFormValues: ArticleDetailsFormValues | null\n}\n\nexport const useArticleDetailsModal = ({\n onSuccess,\n existingArticle,\n}: {\n onSuccess?: (articleId: string) => void\n existingArticle?: Article_EditorContentFragment\n} = {}): ArticleDetailsModalHelpers => {\n const { logEvent } = useLogEvent()\n const [isOpen, setIsOpen] = useState(false)\n\n const [runCreateArticle, createArticleResult] = useSafeMutation(\n CREATE_ARTICLE_MUTATION\n )\n\n const createArticle = useCallback(\n async (values: ArticleDetailsFormValues) => {\n const { data, errors } = await runCreateArticle({\n variables: {\n input: {\n ...values,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\"Created content\")\n setIsOpen(false)\n invariant(data?.articleCreate.article.id)\n\n logEvent(AhoyEventTypeEnum.ContentSubmitted, {\n content_id: data.articleCreate.article.id,\n })\n onSuccess?.(data.articleCreate.article.id)\n }\n },\n [runCreateArticle, onSuccess, logEvent]\n )\n\n const [runUpdateArticle, updateArticleResult] = useSafeMutation(\n UPDATE_ARTICLE_METADATA_MUTATION\n )\n\n const updateArticle = useCallback(\n async (values: ArticleDetailsFormValues) => {\n invariant(existingArticle?.id)\n\n const { data, errors } = await runUpdateArticle({\n variables: {\n input: {\n articleId: existingArticle.id,\n ...values,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\"Details saved\")\n setIsOpen(false)\n invariant(data?.articleUpdate.article.id)\n onSuccess?.(data.articleUpdate.article.id)\n }\n },\n [onSuccess, existingArticle?.id, runUpdateArticle]\n )\n\n const onSubmit = useCallback(\n async (values: ArticleDetailsFormValues) => {\n if (existingArticle?.id) {\n updateArticle(values)\n } else {\n createArticle(values)\n }\n },\n [createArticle, updateArticle, existingArticle?.id]\n )\n\n const initialFormValues = useMemo(\n () =>\n existingArticle\n ? {\n contentType:\n existingArticle.revision.contentType ||\n ArticleContentTypeEnum.Course,\n tagId: existingArticle.revision.tag.id,\n title: existingArticle.revision.title || \"\",\n description: existingArticle.revision.description || \"\",\n }\n : null,\n [existingArticle]\n )\n\n const value = useMemo(\n () => ({\n isOpen,\n setIsOpen,\n onSubmit,\n isLoading: createArticleResult.loading || updateArticleResult.loading,\n initialFormValues,\n }),\n [\n isOpen,\n setIsOpen,\n onSubmit,\n createArticleResult.loading,\n updateArticleResult.loading,\n initialFormValues,\n ]\n )\n\n return value\n}\n\nexport const CREATE_ARTICLE_MUTATION = gql(`\n mutation CreateArticle($input: ArticleCreateInput!) {\n articleCreate(input: $input) {\n article {\n ...Article_EditorContent\n }\n }\n }\n`)\n\nconst UPDATE_ARTICLE_METADATA_MUTATION = gql(`\n mutation UpdateArticleMetadata($input: ArticleUpdateInput!) {\n articleUpdate(input: $input) {\n article {\n ...Article_EditorContent\n }\n }\n }\n`)\n","import {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"~/ui/tooltip\"\nimport { AvatarWithFallback } from \"./AvatarWithFallback\"\nimport { cn } from \"~/lib/utils\"\nimport { X } from \"lucide-react\"\nimport { UserName } from \"~/directory/UserName\"\nimport { User } from \"~/__generated__/graphql\"\n\ntype UserPillUser = Pick<\n User,\n \"id\" | \"firstName\" | \"lastName\" | \"photoUrl\" | \"role\"\n>\n\nexport const UserPill = ({\n user,\n canRemove,\n onRemove,\n pending = false,\n}: {\n user: UserPillUser\n canRemove: boolean\n pending?: boolean\n onRemove: () => void\n}) => (\n \n \n \n \n \n \n
\n \n
\n
\n {canRemove && (\n
\n \n
\n )}\n
\n \n {pending && (\n \n {user.firstName} has not yet accepted the invitation to collaborate.\n \n )}\n \n \n)\n","import { Dispatch, SetStateAction } from \"react\"\nimport {\n Section_FullFragment,\n Article_EditorContentFragment,\n Lesson_EditorContentFragment,\n ArticleCollaborator_AddModalFragment,\n Course_EditorContentFragment,\n} from \"~/__generated__/graphql\"\n\nexport type StateSetter = Dispatch>\n\nexport const generateTempId = (prefix: string) => {\n return `${prefix}-${Date.now()}-${Math.random().toString(36).slice(2)}`\n}\n\nexport const withoutId = (object: any) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { id, ...rest } = object\n return rest\n}\n\ntype SavedCourse = Omit & {\n sections: SavedOrUnsavedSection[]\n}\n\nexport type SavedOrUnsavedCourse = SavedCourse\n\nexport type UnsavedSection = Omit & {\n tempId: string\n lessons: UnsavedLesson[]\n}\n\ntype SavedSection = Omit & {\n lessons: SavedOrUnsavedLesson[]\n}\n\ntype UnsavedDraftRevision = Omit<\n Article_EditorContentFragment[\"revision\"],\n \"id\"\n> & { tempId: string }\n\ntype SavedOrUnsavedDraftRevision =\n | UnsavedDraftRevision\n | Article_EditorContentFragment[\"revision\"]\n\nexport const isSavedDraftRevision = (\n revision: SavedOrUnsavedDraftRevision\n): revision is Article_EditorContentFragment[\"revision\"] => {\n return \"id\" in revision\n}\n\nexport const revisionId = (revision: SavedOrUnsavedDraftRevision) => {\n return isSavedDraftRevision(revision) ? revision.id : revision.tempId\n}\n\ntype UnsavedArticle = Omit<\n Article_EditorContentFragment,\n \"id\" | \"revision\" | \"approvedRevision\" | \"collaborators\"\n> & {\n tempId: string\n approvedRevision?: Article_EditorContentFragment[\"approvedRevision\"]\n revision: SavedOrUnsavedDraftRevision\n collaborators?: UnsavedArticleCollaborator[]\n}\n\ntype SavedArticle = Omit & {\n collaborators?: SavedOrUnsavedArticleCollaborator[]\n}\n\nexport type SavedOrUnsavedArticle = SavedArticle | UnsavedArticle\n\nexport const isSavedArticle = (\n article: SavedOrUnsavedArticle\n): article is SavedArticle => {\n return \"id\" in article\n}\n\nexport const getArticleId = (article: SavedOrUnsavedArticle) => {\n return isSavedArticle(article) ? article.id : article.tempId\n}\n\nexport type UnsavedLesson = Omit<\n Lesson_EditorContentFragment,\n \"id\" | \"article\"\n> & {\n tempId: string\n article: UnsavedArticle\n}\n\ntype SavedLesson = Omit & {\n article: SavedOrUnsavedArticle\n}\n\nexport type SavedOrUnsavedSection = SavedSection | UnsavedSection\n\nexport type SavedOrUnsavedLesson = SavedLesson | UnsavedLesson\n\nexport const isSavedSection = (\n section: SavedOrUnsavedSection\n): section is SavedSection => {\n return \"id\" in section\n}\n\nexport const sectionId = (section: SavedOrUnsavedSection) => {\n return isSavedSection(section) ? section.id : section.tempId\n}\n\nexport const isSavedLesson = (\n lesson: Pick | Pick\n): lesson is SavedLesson => {\n return \"id\" in lesson\n}\n\nexport const lessonId = (\n lesson: Pick | Pick\n) => {\n return isSavedLesson(lesson) ? lesson.id : (lesson as UnsavedLesson).tempId\n}\n\nexport const isSavedArticleCollaborator = (\n collaborator: SavedOrUnsavedArticleCollaborator\n): collaborator is ArticleCollaborator_AddModalFragment => {\n return \"id\" in collaborator\n}\n\nexport const articleCollaboratorId = (\n collaborator: SavedOrUnsavedArticleCollaborator\n) => {\n return isSavedArticleCollaborator(collaborator)\n ? collaborator.id\n : collaborator.tempId\n}\n\nexport type UnsavedArticleCollaborator = Omit<\n ArticleCollaborator_AddModalFragment,\n \"id\"\n> & { tempId: string }\nexport type SavedOrUnsavedArticleCollaborator =\n | ArticleCollaborator_AddModalFragment\n | UnsavedArticleCollaborator\n","import { useEffect, useState } from \"react\"\nimport { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { Button } from \"~/ui/button\"\nimport { gql } from \"~/__generated__\"\nimport { useLazyQuery } from \"@apollo/client\"\nimport AsyncSelect from \"react-select/async\"\nimport { useCallback } from \"react\"\nimport { MENTION_USER_QUERY_DOCUMENT } from \"~/post-composer/useMentionDataSource\"\nimport { useDebouncedCallback } from \"use-debounce\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport {\n AhoyEventTypeEnum,\n ArticleCollaboratorsModalQuery,\n CommunitySlug,\n User_ArticleCollaboratorModalFragment,\n} from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { UserPill } from \"~/ui/UserPill\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport {\n SavedOrUnsavedArticleCollaborator,\n isSavedArticleCollaborator,\n} from \"~/types\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\ntype UserOption = {\n value: User_ArticleCollaboratorModalFragment\n label: string\n}\n\nexport const useCreateCollaborator = () => {\n const [runCollaboratorCreate, collaboratorCreateResult] = useSafeMutation(\n COLLABORATOR_CREATE_MUTATION\n )\n\n const createCollaborator = useCallback(\n async (\n users:\n | User_ArticleCollaboratorModalFragment\n | User_ArticleCollaboratorModalFragment[],\n articleId?: string\n ) => {\n if (!articleId) {\n return\n }\n\n const userArray = Array.isArray(users) ? users : [users]\n const userIds = userArray.map((user) => user.id)\n\n const { data, errors } = await runCollaboratorCreate({\n variables: {\n input: {\n userIds,\n articleId,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n }\n\n return data\n },\n [runCollaboratorCreate]\n )\n\n return { createCollaborator, collaboratorCreateResult }\n}\n\nexport const useDestroyCollaborator = () => {\n const [runCollaboratorDestroy, collaboratorDestroyResult] = useSafeMutation(\n COLLABORATOR_DESTROY_MUTATION\n )\n const destroyCollaborator = useCallback(\n async (user: User_ArticleCollaboratorModalFragment, articleId?: string) => {\n if (!articleId) {\n return\n }\n\n const { errors } = await runCollaboratorDestroy({\n variables: {\n input: {\n userId: user.id,\n articleId,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n }\n },\n [runCollaboratorDestroy]\n )\n\n return { destroyCollaborator, collaboratorDestroyResult }\n}\n\nexport const ArticleCollaboratorsModal = ({\n setIsOpen,\n articleId,\n isEditing = false,\n collaborators,\n includeCollaborators = [],\n onSubmit,\n onRemoveCollaborator,\n}: {\n setIsOpen: (value: boolean) => void\n articleId?: string\n isEditing?: boolean\n collaborators?: SavedOrUnsavedArticleCollaborator[]\n includeCollaborators?: string[]\n onSubmit?: (\n collaborators: SavedOrUnsavedArticleCollaborator[],\n articleId?: string\n ) => void\n onAddCollaborator?: (\n user: User_ArticleCollaboratorModalFragment,\n articleId?: string\n ) => void\n onRemoveCollaborator?: (\n user: User_ArticleCollaboratorModalFragment,\n articleId?: string\n ) => void\n}) => {\n const [getArticleCollaborators] = useLazyQuery(\n ARTICLE_COLLABORATORS_MODAL_QUERY_DOCUMENT\n )\n\n const [data, setData] = useState(null)\n\n useEffect(() => {\n async function fetchData() {\n if (articleId) {\n const { data } = await getArticleCollaborators({\n variables: { articleId },\n })\n setData(data || null)\n }\n }\n\n if (!collaborators) {\n fetchData()\n }\n }, [articleId, getArticleCollaborators, collaborators])\n\n const community = useCommunity()\n\n const [currentCollaborators, setCurrentCollaborators] = useState<\n SavedOrUnsavedArticleCollaborator[]\n >([])\n\n useEffect(() => {\n if (data?.article) {\n setCurrentCollaborators(data.article.collaborators)\n }\n }, [data])\n\n useEffect(() => {\n if (collaborators && collaborators.length > 0) {\n setCurrentCollaborators(collaborators)\n }\n }, [collaborators])\n\n const handleAddCollaborator = useCallback(\n (user: User_ArticleCollaboratorModalFragment) => {\n setCurrentCollaborators((collaborators) => {\n if (collaborators.some((c) => c.user.id === user.id)) {\n return collaborators\n }\n\n return [\n ...collaborators,\n {\n tempId: user.id,\n user: {\n ...user,\n },\n pending: true,\n currentUserCanDestroy: {\n value: true,\n },\n },\n ]\n })\n },\n []\n )\n\n const handleRemoveCollaborator = useCallback(\n (user: User_ArticleCollaboratorModalFragment) => {\n setCurrentCollaborators((collaborators) => {\n if (!collaborators) return []\n\n return collaborators.filter((c) => c.user.id !== user.id)\n })\n\n if (onRemoveCollaborator) {\n onRemoveCollaborator(user, articleId)\n }\n },\n [onRemoveCollaborator, articleId]\n )\n\n const [getCollaboratorSearch] = useLazyQuery(MENTION_USER_QUERY_DOCUMENT, {\n variables: { excludeSelf: false },\n })\n\n const _loadOptions = useCallback(\n (query: string, callback: (options: UserOption[]) => void) => {\n getCollaboratorSearch({\n variables: { query },\n }).then(({ data }) => {\n if (!data) {\n callback([])\n } else {\n callback(\n data.users.nodes.map((u) => ({\n value: u,\n label: u.name || \"\",\n }))\n )\n }\n })\n },\n [getCollaboratorSearch]\n )\n const loadOptions = useDebouncedCallback(_loadOptions, 400)\n\n const [fetchUser] = useLazyQuery(USER_FETCH_QUERY_DOCUMENT, {\n fetchPolicy: \"network-only\",\n })\n\n useEffect(() => {\n if (includeCollaborators.length > 0) {\n includeCollaborators.forEach(async (userId) => {\n const { data } = await fetchUser({ variables: { userId } })\n if (data?.user) {\n handleAddCollaborator(data.user)\n }\n })\n }\n }, [includeCollaborators, fetchUser, handleAddCollaborator])\n\n const { createCollaborator } = useCreateCollaborator()\n const { logEvent } = useLogEvent()\n const currentUser = useCurrentUser()\n\n const onButtonClick = useCallback(async () => {\n if (!articleId) return\n\n const newCollaborators = currentCollaborators.filter(\n (collaborator) => collaborator.user.id !== currentUser.id\n )\n\n if (newCollaborators.length !== 0) {\n const result = await createCollaborator(\n newCollaborators.map((c) => c.user),\n articleId\n )\n\n if (result?.collaboratorCreate?.article?.collaborators) {\n const collaboratorUserIds =\n result.collaboratorCreate.article.collaborators.map(\n (c) => c.user.id\n ) || []\n\n collaboratorUserIds.forEach((collaboratorId) => {\n const collaborator = newCollaborators.find((c) =>\n isSavedArticleCollaborator(c)\n ? c.id === collaboratorId\n : c.tempId === collaboratorId\n )\n if (collaborator) {\n logEvent(AhoyEventTypeEnum.CollaborationInviteSent, {\n content_id: articleId,\n user_id: collaborator.user.id,\n })\n }\n })\n }\n }\n\n if (onSubmit) {\n onSubmit(currentCollaborators || [], articleId)\n }\n }, [\n onSubmit,\n articleId,\n currentCollaborators,\n createCollaborator,\n logEvent,\n currentUser,\n ])\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n
\n Invite Collaborators\n
\n
\n Work on this content with {community.name} peers. They'll receive an\n invite to collaborate with you, get edit access, and be listed as a\n co-author when you're ready to publish.\n
\n\n
\n
\n {\n if (selection?.value) {\n handleAddCollaborator(selection.value)\n }\n }}\n styles={{\n control: (baseStyles) => ({\n ...baseStyles,\n outline: \"none !important\",\n boxShadow: \"none\",\n borderColor:\n community.slug === CommunitySlug.Gotomillions\n ? \"#6F2229\"\n : \"inherit\",\n paddingTop: 8,\n paddingBottom: 8,\n paddingLeft: 12,\n fontSize: 16,\n borderRadius: 8,\n }),\n }}\n />\n
\n\n
\n {currentCollaborators &&\n currentCollaborators\n .toReversed()\n .map((c) => (\n handleRemoveCollaborator(c.user)}\n pending={c.pending}\n />\n ))}\n
\n\n
\n\n
\n \n
\n
\n \n \n )\n}\n\ngql(`\n fragment User_ArticleCollaboratorModal on User {\n id\n name\n ...User_Avatar\n }\n`)\n\ngql(`\n fragment ArticleCollaborator_AddModal on ArticleCollaborator {\n id\n pending\n currentUserCanDestroy {\n value\n }\n user {\n ...User_ArticleCollaboratorModal\n }\n }\n`)\n\ngql(`\n fragment Article_AddCollaboratorModal on Article {\n id\n collaborators(includePending: true) {\n ...ArticleCollaborator_AddModal\n }\n }\n`)\n\nconst ARTICLE_COLLABORATORS_MODAL_QUERY_DOCUMENT = gql(`\n query ArticleCollaboratorsModal($articleId: ID!) {\n article(articleId: $articleId) {\n ...Article_AddCollaboratorModal\n }\n }\n`)\n\nconst COLLABORATOR_CREATE_MUTATION = gql(`\n mutation CollaboratorCreate($input: CollaboratorCreateInput!) {\n collaboratorCreate(input: $input) {\n article {\n ...Article_AddCollaboratorModal\n }\n }\n }\n`)\n\nconst COLLABORATOR_DESTROY_MUTATION = gql(`\n mutation CollaboratorDestroy($input: CollaboratorDestroyInput!) {\n collaboratorDestroy(input: $input) {\n article {\n ...Article_AddCollaboratorModal\n }\n }\n }\n`)\n\nconst USER_FETCH_QUERY_DOCUMENT = gql(`\n query ArticleCollaboratorModalUserFetch($userId: ID!) {\n user(userId: $userId) {\n ...User_ArticleCollaboratorModal\n }\n }\n`)\n","import * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"~/lib/utils\"\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps) => (\n \n)\nDrawer.displayName = \"Drawer\"\n\nconst DrawerTrigger = DrawerPrimitive.Trigger\n\nconst DrawerPortal = DrawerPrimitive.Portal\n\nconst DrawerClose = DrawerPrimitive.Close\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, ...props }, ref) => (\n \n \n \n {children}\n \n \n))\nDrawerContent.displayName = \"DrawerContent\"\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes) => (\n
\n)\nDrawerHeader.displayName = \"DrawerHeader\"\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes) => (\n \n)\nDrawerFooter.displayName = \"DrawerFooter\"\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\n","import { useQuery } from \"@apollo/client\"\nimport { format, parseISO } from \"date-fns\"\nimport { ReactNode, useState } from \"react\"\nimport { gql } from \"~/__generated__\"\nimport { UserName } from \"~/directory/UserName\"\nimport { Button } from \"~/ui/button\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"~/ui/drawer\"\n\nexport const RevisionHistoryDrawer = ({\n articleId,\n children,\n defaultOpen = false,\n}: {\n articleId: string\n children: ReactNode\n defaultOpen?: boolean\n}) => {\n const [open, setOpen] = useState(defaultOpen)\n const { data } = useQuery(REVISION_LOGS_QUERY_DOCUMENT, {\n variables: { articleId },\n })\n\n return (\n setOpen(open)}\n >\n {children}\n \n \n Revision History\n \n
\n {(!data?.articleRevisionLogs.nodes ||\n data.articleRevisionLogs.nodes.length === 0) && (\n
No history yet!
\n )}\n {data?.articleRevisionLogs.nodes.map((revision) => (\n
\n
{revision.logType}
\n
\n @{\" \"}\n {format(parseISO(revision.createdAt), \"LLL d, y - h:mmaaa\")}\n
\n {revision.message &&
{revision.message}
}\n
\n ))}\n
\n \n \n \n \n \n
\n \n )\n}\n\nconst REVISION_LOGS_QUERY_DOCUMENT = gql(`\n query RevisionLogs($articleId: ID!) {\n articleRevisionLogs(articleId: $articleId) {\n nodes {\n id\n logType\n user {\n ...User_Avatar\n }\n message\n createdAt\n }\n }\n }\n`)\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { Button } from \"~/ui/button\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { Trans } from \"react-i18next\"\nimport Toggle from \"react-toggle\"\nimport { UPDATE_ARTICLE_MUTATION } from \"~/content/ArticleEditor\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport toast from \"react-hot-toast\"\nimport { useState } from \"react\"\n\nexport const ExternalShareSettingsModal = ({\n isOpen,\n setIsOpen,\n allowExternalShare: allowExternalShareDefault,\n articleId,\n onSubmit,\n}: {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n allowExternalShare: boolean\n articleId: string\n onSubmit?: () => void\n}) => {\n const community = useCommunity()\n const [runArticleUpdate, { loading }] = useSafeMutation(\n UPDATE_ARTICLE_MUTATION\n )\n const [allowExternalShare, setAllowExternalShare] = useState(\n allowExternalShareDefault\n )\n\n const saveSetting = async () => {\n const { errors } = await runArticleUpdate({\n variables: { input: { articleId, allowExternalShare } },\n })\n\n if (errors) {\n toast.error(\"Error updating share settings.\")\n } else {\n setIsOpen(false)\n onSubmit?.()\n }\n }\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n
\n Allow External Sharing?\n
\n
\n Allowing external share enables members of {community.name} to share a\n short preview of this content outside of the community via a link.\n Rest assured, non-members will not be able to read the full content\n until they have been vetted as an official member of {community.name}.\n
\n
\n A good reason to enable preview share is to enable{\" \"}\n and peers to\n highlight and celebrate your contributions across their socials and in\n their newsletter!\n
\n\n \n\n
\n\n
\n \n Save & Continue\n \n
\n \n \n )\n}\n","import { useEffect, useState } from \"react\"\nimport {\n Control,\n ControllerRenderProps,\n FieldPath,\n FieldValues,\n} from \"react-hook-form\"\nimport Dropzone from \"react-dropzone\"\nimport { useDirectImageUpload } from \"~/common/directImageUpload\"\nimport { Button } from \"~/ui/button\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\nimport { Card, CardContent } from \"./card\"\nimport { IconButton } from \"./IconButton\"\nimport { Upload, X } from \"lucide-react\"\nimport { H6, Muted } from \"./typography\"\nimport { FormField } from \"./form\"\n\nexport const UploadDropzone = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>({\n control,\n name,\n initialUrl,\n title,\n body,\n onChange,\n aspectRatio = 1,\n}: {\n control: Control | undefined\n name: TName\n initialUrl?: string\n title: JSX.Element\n body: JSX.Element\n aspectRatio?: number\n onChange?: (url: string | null) => void\n}) => {\n const { directImageUpload } = useDirectImageUpload()\n const [uploading, setUploading] = useState(false)\n const [url, setUrl] = useState(initialUrl || null)\n\n const removeImage = (field: ControllerRenderProps) => {\n field.onChange(null)\n setUrl(null)\n }\n\n useEffect(() => {\n onChange?.(url)\n }, [url])\n\n // calculate dimensions of image AS A PERCENTAGE based on aspectRatio\n const width = aspectRatio > 1 ? 100 : 100 * aspectRatio\n const height = aspectRatio < 1 ? 100 : 100 / aspectRatio\n\n return (\n (\n {\n setUploading(true)\n const blob = await directImageUpload(acceptedFiles[0])\n field.onChange(blob.signedId)\n setUrl(URL.createObjectURL(acceptedFiles[0]))\n setUploading(false)\n }}\n >\n {({ getRootProps, getInputProps, open }) => (\n \n \n \n
\n {uploading ? (\n \n ) : url ? (\n <>\n removeImage(field)}\n className=\"absolute top-1 right-1\"\n size=\"inline\"\n >\n \n \n \n \n ) : (\n <>\n
\n \n \n \n
\n
Drag & Drop
\n \n )}\n
\n
\n
{title}
\n
{body}
\n
\n \n \n
\n
\n \n Supported formats: JPG, PNG, GIF - Maximum size: 25MB\n \n
\n
\n
\n \n \n )}\n \n )}\n />\n )\n}\n","import { Dialog, DialogContent, DialogHeader, DialogTitle } from \"~/ui/dialog\"\nimport { Button } from \"~/ui/button\"\nimport { UPDATE_ARTICLE_MUTATION } from \"~/content/ArticleEditor\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport toast from \"react-hot-toast\"\nimport { useCallback, useState } from \"react\"\nimport { useForm, useWatch } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n} from \"~/ui/form\"\nimport { UploadDropzone } from \"~/ui/UploadDropzone\"\nimport { z } from \"zod\"\nimport { Article_CardFragment } from \"~/__generated__/graphql\"\nimport { Switch } from \"~/ui/switch\"\nimport { cn } from \"~/lib/utils\"\nimport { ArticleCard } from \"~/ui/ArticleCard\"\n\nconst formSchema = z.object({\n portraitImageId: z.string().nullable().optional(),\n landscapeImageId: z.string().nullable().optional(),\n usePortraitForBothOrientations: z.boolean().optional().default(true),\n})\n\nexport type FormValues = z.infer\n\nexport const ImageCoverModal = ({\n isOpen,\n setIsOpen,\n portraitImageUrl: initialPortraitImageUrl,\n portraitImageId: initialPortraitImageId,\n landscapeImageUrl: initialLandscapeImageUrl,\n landscapeImageId: initialLandscapeImageId,\n article,\n onSubmit,\n}: {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n portraitImageUrl?: string | null\n portraitImageId?: string | null\n landscapeImageUrl?: string | null\n landscapeImageId?: string | null\n article: Article_CardFragment\n onSubmit?: () => void\n}) => {\n const form = useForm({\n resolver: zodResolver(formSchema),\n defaultValues: {\n portraitImageId: initialPortraitImageId,\n landscapeImageId: initialLandscapeImageId,\n usePortraitForBothOrientations: !initialLandscapeImageId,\n },\n })\n const [mode, setMode] = useState<\"edit\" | \"preview\">(\"edit\")\n const [portraitImageUrl, setPortraitImageUrl] = useState(\n initialPortraitImageUrl || null\n )\n const [landscapeImageUrl, setLandscapeImageUrl] = useState(\n initialLandscapeImageUrl || null\n )\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [runArticleUpdate, { loading }] = useSafeMutation(\n UPDATE_ARTICLE_MUTATION\n )\n\n const handleSubmit = useCallback(\n async (values: FormValues) => {\n setIsSubmitting(true)\n const { errors } = await runArticleUpdate({\n variables: {\n input: {\n articleId: article.id,\n portraitImageId: values.portraitImageId,\n landscapeImageId: values.usePortraitForBothOrientations\n ? values.portraitImageId\n : values.landscapeImageId,\n removePortraitImage: !values.portraitImageId,\n removeLandscapeImage:\n !values.landscapeImageId &&\n !values.usePortraitForBothOrientations,\n },\n },\n })\n\n if (errors) {\n toast.error(\"Error updating image.\")\n } else {\n setIsOpen(false)\n onSubmit?.()\n }\n setIsSubmitting(false)\n },\n [runArticleUpdate, article, onSubmit, setIsOpen]\n )\n\n const values = useWatch({ control: form.control })\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n \n Edit Article Cover Image\n \n
\n \n
\n {mode === \"edit\" && (\n <>\n \n
\n \n Portrait Orientation\n
\n }\n body={<>}\n onChange={setPortraitImageUrl}\n aspectRatio={0.713}\n />\n
\n\n {!values.usePortraitForBothOrientations && (\n \n Landscape Orientation\n
\n }\n body={<>}\n onChange={setLandscapeImageUrl}\n aspectRatio={2.125}\n />\n )}\n\n (\n \n
\n \n Use portrait image for both orientations?\n \n \n If enabled, the portrait image will be used for\n both portrait and landscape orientations. The\n image will be cropped to fit the landscape\n orientation.\n \n
\n \n \n \n
\n )}\n />\n
\n \n )}\n\n {mode === \"preview\" && (\n
\n \n \n
\n )}\n\n
\n
\n \n setMode(checked ? \"preview\" : \"edit\")\n }\n options={[\"Edit\", \"Preview\"]}\n />\n
\n \n Save Changes\n \n
\n \n \n \n
\n \n )\n}\n","import { Article_EditorContentFragment } from \"~/__generated__/graphql\"\nimport ArrowRight from \"~/images/icons/arrow-right.svg?react\"\nimport { ArticleDetailsModal } from \"~/articles/ArticleDetailsModal\"\nimport { useArticleDetailsModal } from \"~/articles/useArticleDetailsModal\"\nimport {\n ArticleCollaboratorsModal,\n useCreateCollaborator,\n useDestroyCollaborator,\n} from \"~/articles/ArticleCollaboratorsModal\"\nimport { useState } from \"react\"\nimport { RevisionHistoryDrawer } from \"~/articles/RevisionHistoryDrawer\"\nimport { ExternalShareSettingsModal } from \"~/articles/ExternalShareSettingModal\"\nimport { ArticleCard } from \"~/ui/ArticleCard\"\nimport { ImageCoverModal } from \"~/articles/ImageCoverModal\"\n\nexport const EditorMetadataSection = ({\n article,\n revisionHistoryDefaultOpen = false,\n}: {\n article: Article_EditorContentFragment\n revisionHistoryDefaultOpen?: boolean\n}) => {\n const [collaboratorsModalOpen, setCollaboratorsModalOpen] = useState(false)\n const articleDetailsModalHelpers = useArticleDetailsModal({\n existingArticle: article,\n })\n const [externalSharingModalOpen, setExternalSharingModalOpen] =\n useState(false)\n const [editImageCoverModalOpen, setEditImageCoverModalOpen] = useState(false)\n\n const { createCollaborator } = useCreateCollaborator()\n const { destroyCollaborator } = useDestroyCollaborator()\n\n return (\n
\n
\n div]:p-0\"\n />\n
\n\n
\n articleDetailsModalHelpers.setIsOpen(true)}\n />\n setCollaboratorsModalOpen(true)}\n />\n {article.currentUserCanChangeExternalShareSetting && (\n setExternalSharingModalOpen(true)}\n />\n )}\n setEditImageCoverModalOpen(true)}\n />\n\n {article.currentUserCanViewRevisionLogs.value && (\n \n \n \n )}\n
\n\n \n \n {collaboratorsModalOpen && (\n setCollaboratorsModalOpen(false)}\n isEditing\n />\n )}\n {editImageCoverModalOpen && (\n \n )}\n
\n )\n}\n\nconst ContentModalLink = ({\n text,\n onClick,\n}: {\n onClick?: () => void\n text: string\n}) => (\n \n {text}\n \n \n)\n","import { useCallback } from \"react\"\nimport invariant from \"tiny-invariant\"\nimport { gql } from \"~/__generated__\"\nimport { Article } from \"~/__generated__/graphql\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { ConfirmContextProviderProps, useConfirm } from \"~/ui/Confirm\"\n\nexport type SubmitForReviewConfirmProps = {\n article: Pick\n} & Partial\n\nexport const useSubmitForReviewConfirm = ({\n article,\n ...confirmProps\n}: SubmitForReviewConfirmProps) => {\n const showConfirm = useConfirm()\n const [runSubmitForReview] = useSafeMutation(SUBMIT_FOR_REVIEW_MUTATION)\n\n const submitForReview = useCallback(() => {\n showConfirm({\n title: \"Submit Content for Review\",\n body: \"Request admin review of your content.\",\n confirmText: \"Submit\",\n prompt: {\n label: \"Note to admin\",\n placeholder:\n \"Describe the content in general or changes that you've made\",\n required: true,\n },\n onConfirm: async (promptValue) => {\n invariant(promptValue)\n const { errors } = await runSubmitForReview({\n variables: {\n input: {\n articleId: article.id,\n message: promptValue,\n },\n },\n })\n\n if (errors) {\n console.log(errors)\n }\n },\n ...confirmProps,\n })\n }, [showConfirm, confirmProps, runSubmitForReview, article.id])\n\n return submitForReview\n}\n\nexport const SUBMIT_FOR_REVIEW_MUTATION = gql(`\n mutation ArticleSubmitForReview($input: ArticleSubmitForReviewInput!) {\n articleSubmitForReview(input: $input) {\n article {\n ...Article_EditorContent\n }\n }\n }\n`)\n","import { useCallback } from \"react\"\nimport toast from \"react-hot-toast\"\nimport invariant from \"tiny-invariant\"\nimport { gql } from \"~/__generated__\"\nimport { Article } from \"~/__generated__/graphql\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { ConfirmContextProviderProps, useConfirm } from \"~/ui/Confirm\"\n\nexport type RequestEditsConfirmProps = {\n article: Pick\n} & Partial\n\nexport const useRequestEditsConfirm = ({\n article,\n ...confirmProps\n}: RequestEditsConfirmProps) => {\n const showConfirm = useConfirm()\n const [runRequestEdits] = useSafeMutation(REQUEST_EDITS_MUTATION)\n\n const submitForReview = useCallback(() => {\n showConfirm({\n title: \"Request Edits\",\n body: \"Request that the author makes edits to their content.\",\n confirmText: \"Request Edits\",\n prompt: {\n label: \"Requested changes\",\n placeholder: \"Describe the issues or changes you'd like to see\",\n required: true,\n },\n onConfirm: async (promptValue) => {\n invariant(promptValue)\n const { errors } = await runRequestEdits({\n variables: {\n input: {\n articleId: article.id,\n message: promptValue,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\"Requested edits\")\n }\n },\n ...confirmProps,\n })\n }, [showConfirm, confirmProps, runRequestEdits, article.id])\n\n return submitForReview\n}\n\nexport const REQUEST_EDITS_MUTATION = gql(`\n mutation ArticleRequestEdits($input: ArticleRequestEditsInput!) {\n articleRequestEdits(input: $input) {\n article {\n ...Article_EditorContent\n }\n }\n }\n`)\n","import * as React from \"react\";\nconst SvgDollarSquare = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 26, height: 26, viewBox: \"0 0 26 26\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { id: \"vuesax/linear/dollar-square\" }, /* @__PURE__ */ React.createElement(\"g\", { id: \"dollar-square\" }, /* @__PURE__ */ React.createElement(\"path\", { id: \"Vector\", d: \"M9.40234 15.5237C9.40234 16.9212 10.4748 18.0478 11.8073 18.0478H14.5265C15.6857 18.0478 16.6282 17.062 16.6282 15.8487C16.6282 14.527 16.054 14.0612 15.1982 13.7578L10.8323 12.2412C9.97651 11.9378 9.40234 11.472 9.40234 10.1503C9.40234 8.937 10.3448 7.95117 11.504 7.95117H14.2232C15.5557 7.95117 16.6282 9.07784 16.6282 10.4753\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { id: \"Vector_2\", d: \"M13 6.5V19.5\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { id: \"Vector_3\", d: \"M16.2474 23.8337H9.7474C4.33073 23.8337 2.16406 21.667 2.16406 16.2503V9.75032C2.16406 4.33366 4.33073 2.16699 9.7474 2.16699H16.2474C21.6641 2.16699 23.8307 4.33366 23.8307 9.75032V16.2503C23.8307 21.667 21.6641 23.8337 16.2474 23.8337Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))));\nexport default SvgDollarSquare;\n","import { useCallback, useMemo } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { Article } from \"~/__generated__/graphql\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { ConfirmContextProviderProps, useConfirm } from \"~/ui/Confirm\"\nimport { UPDATE_ARTICLE_MUTATION } from \"./ArticleEditor\"\nimport { addWeeks, compareAsc, parseISO } from \"date-fns\"\n\nexport type ToggleFeaturedConfirmProps = {\n article: Pick\n} & Partial\n\nexport const isArticleFeatured = (featuredUntil: Article[\"featuredUntil\"]) => {\n return featuredUntil && compareAsc(parseISO(featuredUntil), new Date()) === 1\n}\n\nexport const useToggleFeaturedConfirm = ({\n article,\n ...confirmProps\n}: ToggleFeaturedConfirmProps) => {\n const showConfirm = useConfirm()\n const [runFeature] = useSafeMutation(UPDATE_ARTICLE_MUTATION)\n\n const isFeatured = useMemo(\n () => isArticleFeatured(article.featuredUntil),\n [article.featuredUntil]\n )\n\n const feature = useCallback(() => {\n showConfirm({\n title: isFeatured ? \"Remove 'Featured' Flag\" : \"Feature Content\",\n body: isFeatured\n ? \"Would you like to remove the 'Featured' flag from this content?\"\n : \"Would you like to mark this content as featured?\",\n confirmText: isFeatured ? \"Remove Featured\" : \"Feature\",\n onConfirm: async () => {\n const { errors } = await runFeature({\n variables: {\n input: {\n articleId: article.id,\n featuredUntil: isFeatured ? new Date() : addWeeks(new Date(), 2),\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\n isFeatured\n ? \"Removed 'Featured' flag\"\n : \"Content marked as featured\"\n )\n }\n },\n ...confirmProps,\n })\n }, [article, confirmProps, runFeature, showConfirm, isFeatured])\n\n return feature\n}\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { Button } from \"~/ui/button\"\nimport { gql } from \"~/__generated__\"\nimport { useQuery } from \"@apollo/client\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport {\n AhoyEventTypeEnum,\n ArticleApproveInput,\n ArticleVisibilityEnum,\n} from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport toast from \"react-hot-toast\"\nimport Bookmark from \"../images/icons/bookmark.svg?react\"\nimport { Eye } from \"lucide-react\"\nimport DollarSquare from \"../images/icons/dollar-square.svg?react\"\nimport { ReactNode, useEffect, useRef, useState } from \"react\"\nimport {\n ButtonGroupToggle,\n ButtonToggleGroupProps,\n} from \"~/ui/ButtonGroupToggle\"\nimport { cn } from \"~/lib/utils\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\nimport { ARTICLE_QUERY_DOCUMENT } from \"~/screens/ArticleEditorScreen\"\nimport { isArticleFeatured } from \"~/content/useToggleFeaturedConfirm\"\nimport { addWeeks } from \"date-fns\"\n\nconst PREMIUM_DEFAULT = false\nconst FEATURED_DEFAULT = false\nconst VISIBILITY_DEFAULT = ArticleVisibilityEnum.Hidden\n\nexport const ArticlePublishModal = ({\n isOpen,\n setIsOpen,\n articleId,\n onSuccess,\n}: {\n isOpen: boolean\n setIsOpen: (value: boolean) => void\n articleId: string\n onSuccess?: () => void\n}) => {\n const initialValuesSetRef = useRef(false)\n const [runApproveContent] = useSafeMutation(APPROVE_ARTICLE_MUTATION)\n const { logEvent } = useLogEvent()\n const { data } = useQuery(ARTICLE_QUERY_DOCUMENT, {\n variables: { articleId },\n })\n\n const [premium, setPremium] = useState(PREMIUM_DEFAULT)\n const [featured, setFeatured] = useState(FEATURED_DEFAULT)\n const [visibility, setVisibility] = useState(VISIBILITY_DEFAULT)\n\n const onOpenChange = (open: boolean) => {\n if (open === false) {\n const featured = data?.article\n ? isArticleFeatured(data.article.featuredUntil)\n : FEATURED_DEFAULT\n setFeatured(featured)\n setPremium(data?.article?.premium ?? PREMIUM_DEFAULT)\n setVisibility(data?.article?.visibility ?? VISIBILITY_DEFAULT)\n }\n setIsOpen(open)\n }\n\n const onSubmit = async () => {\n const input: ArticleApproveInput = {\n articleId,\n premium,\n visibility,\n featuredUntil: featured ? addWeeks(new Date(), 2) : new Date(),\n }\n const { errors } = await runApproveContent({ variables: { input } })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\"Content approved\")\n logEvent(AhoyEventTypeEnum.ContentSubmissionApproved, {\n content_id: articleId,\n })\n onSuccess?.()\n onOpenChange(false)\n }\n }\n\n useEffect(() => {\n if (initialValuesSetRef.current || !data?.article) return\n initialValuesSetRef.current = true\n\n setPremium(data.article.premium)\n setFeatured(isArticleFeatured(data.article.featuredUntil))\n setVisibility(data.article.visibility)\n }, [data?.article])\n\n return (\n \n \n
\n Ready to Publish?\n
\n\n {data?.article ? (\n <>\n
Publication Settings
\n\n
\n }\n leftButtonCopy=\"Free\"\n rightButtonCopy={}\n leftButtonOnClick={() => setPremium(false)}\n rightButtonOnClick={() => setPremium(true)}\n activeButton={premium ? \"right\" : \"left\"}\n />\n }\n leftButtonCopy=\"Off\"\n rightButtonCopy={}\n leftButtonOnClick={() => setFeatured(false)}\n rightButtonOnClick={() => setFeatured(true)}\n activeButton={featured ? \"right\" : \"left\"}\n />\n }\n leftButtonCopy=\"Hide\"\n rightButtonCopy=\"Live\"\n leftButtonOnClick={() =>\n setVisibility(ArticleVisibilityEnum.Hidden)\n }\n rightButtonOnClick={() =>\n setVisibility(ArticleVisibilityEnum.Live)\n }\n activeButton={\n visibility === ArticleVisibilityEnum.Hidden ? \"left\" : \"right\"\n }\n />\n
\n\n
\n onOpenChange(false)}\n >\n Close\n \n \n
\n \n ) : (\n \n )}\n
\n
\n )\n}\n\nconst SettingRow = ({\n icon,\n settingTitle,\n settingDescription,\n bottomBorder = true,\n ...toggleProps\n}: {\n icon: ReactNode\n settingTitle: string\n settingDescription: string\n bottomBorder?: boolean\n} & ButtonToggleGroupProps) => {\n return (\n \n
\n {icon}\n
\n\n
\n
{settingTitle}
\n
\n {settingDescription}\n
\n
\n\n \n \n )\n}\n\nconst APPROVE_ARTICLE_MUTATION = gql(`\n mutation ArticleApprove($input: ArticleApproveInput!) {\n articleApprove(input: $input) {\n article {\n ...Article_EditorContent\n }\n }\n }\n`)\n","import { ArrowLeft, Info } from \"lucide-react\"\nimport { Link } from \"react-router-dom\"\nimport { myContentPath } from \"~/common/paths\"\nimport { Button } from \"~/ui/button\"\nimport {\n Article,\n Article_ReviewActionsFragment,\n ArticleRevision,\n ArticleCollaborator_AddModalFragment,\n ArticleStateEnum,\n Lesson,\n} from \"~/__generated__/graphql\"\nimport {\n SubmitForReviewConfirmProps,\n useSubmitForReviewConfirm,\n} from \"~/content/useSubmitForReviewConfirm\"\nimport {\n RequestEditsConfirmProps,\n useRequestEditsConfirm,\n} from \"~/content/useRequestEditsConfirm\"\nimport { ArticlePublishModal } from \"./ArticlePublishModal\"\nimport { useState } from \"react\"\nimport { SimpleTooltip } from \"~/ui/SimpleTooltip\"\n\ntype RequiredArticleProps =\n | \"id\"\n | \"state\"\n | \"currentUserCanSubmitForApproval\"\n | \"currentUserCanRequestEdits\"\n | \"currentUserCanApprove\"\n\ntype ToolbarArticleBase = Pick & {\n approvedRevision?: Partial | null\n}\n\ntype LessonForToggleHidden = Pick & {\n section: Pick\n}\ntype ToolbarArticleForToggleHidden = ToolbarArticleBase & {\n draftLesson: LessonForToggleHidden\n}\n\ntype ToolbarOptions = \"approve\" | \"submitForReview\" | \"requestEdits\"\n\ntype BackLink = {\n label: string\n path: string\n}\n\ninterface ArticleActionToolbarPropsBase {\n article: ToolbarArticleBase\n isLocked: boolean\n options?: Record\n submitForReviewConfirmOptions?: Partial\n requestEditsConfirmOptions?: Partial\n backLink?: BackLink\n pendingCollaborators?: ArticleCollaborator_AddModalFragment[]\n}\n\ntype ArticleActionToolbarPropsToggleHidden = Omit<\n ArticleActionToolbarPropsBase,\n \"article\"\n> & { article: ToolbarArticleForToggleHidden }\nexport type ArticleActionToolbarProps =\n | ArticleActionToolbarPropsBase\n | ArticleActionToolbarPropsToggleHidden\n\nconst defaultOptions: Record = {\n approve: true,\n submitForReview: true,\n requestEdits: true,\n}\n\nconst defaultBackLink: BackLink = {\n label: \"Back to library\",\n path: myContentPath.pattern,\n}\n\nexport const shouldShowSubmitForReview = (\n article: Article_ReviewActionsFragment,\n enabled = true\n) => {\n return (\n enabled &&\n article.currentUserCanSubmitForApproval.value &&\n article.state !== ArticleStateEnum.Approved &&\n article.state !== ArticleStateEnum.Submitted\n )\n}\n\nexport const shouldShowRequestEdits = (\n article: Article_ReviewActionsFragment,\n enabled = true\n) => {\n return (\n enabled &&\n article.currentUserCanRequestEdits.value &&\n article.state !== ArticleStateEnum.Approved &&\n article.state !== ArticleStateEnum.EditsRequested\n )\n}\nexport const shouldShowApprove = (\n article: Article_ReviewActionsFragment,\n enabled = true\n) => {\n return (\n enabled &&\n article.currentUserCanApprove.value &&\n article.state !== ArticleStateEnum.Approved\n )\n}\n\nexport const ArticleTopActionToolbar = ({\n article,\n isLocked,\n options: optionProps,\n submitForReviewConfirmOptions = {},\n requestEditsConfirmOptions = {},\n backLink = defaultBackLink,\n pendingCollaborators = [],\n}: ArticleActionToolbarProps) => {\n const options = {\n ...defaultOptions,\n ...optionProps,\n }\n\n const [publishModalOpen, setPublishModalOpen] = useState(false)\n const submitForReview = useSubmitForReviewConfirm({\n article,\n ...submitForReviewConfirmOptions,\n })\n const requestEdits = useRequestEditsConfirm({\n article,\n ...requestEditsConfirmOptions,\n })\n\n const showSubmitForReview = shouldShowSubmitForReview(\n article,\n options.submitForReview\n )\n const showRequestEdits = shouldShowRequestEdits(article, options.requestEdits)\n const showApprove = shouldShowApprove(article, options.approve)\n\n return (\n <>\n
\n \n \n {backLink.label}\n \n\n {!isLocked && (\n
\n {showSubmitForReview && (\n \n )}\n\n
\n
\n {showRequestEdits && (\n \n )}\n\n {showApprove && (\n setPublishModalOpen(true)}\n >\n {article.state === ArticleStateEnum.Submitted\n ? \"Approve\"\n : \"Publish\"}\n \n )}\n
\n {showApprove && pendingCollaborators.length > 0 && (\n
\n collaborator.user.name)\n .join(\", \")}\n >\n
\n \n Article has pending collaborators\n
\n \n
\n )}\n
\n
\n )}\n
\n \n \n )\n}\n","import { User } from \"~/__generated__/graphql\"\nimport { dmPath } from \"~/common/paths\"\nimport { cn } from \"~/lib/utils\"\nimport { UserName } from \"~/directory/UserName\"\nimport { LinkButton } from \"~/ui/button\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\n\nexport const ArticleLockedBanner = ({\n lockedByUser,\n}: {\n lockedByUser?: Pick<\n User,\n | \"id\"\n | \"name\"\n | \"firstName\"\n | \"lastName\"\n | \"photoUrl\"\n | \"coach\"\n | \"admin\"\n | \"role\"\n >\n}) => {\n if (!lockedByUser) return null\n\n return (\n
\n \n \n
\n\n
\n
\n \n \n {\" \"}\n is currently working on this content...\n
\n
\n Note: Editing content while another collaborator is using the edit\n could overwrite content.\n
\n
\n\n \n Message\n \n \n )\n}\n","import { useCallback, useEffect, useMemo, useRef } from \"react\"\nimport { useThrottledCallback } from \"use-debounce\"\nimport { gql } from \"~/__generated__\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\n\nexport const useArticleLocking = ({\n isDirty,\n articleId,\n}: {\n isDirty: boolean\n articleId: string\n}) => {\n const isDirtyWasRef = useRef(isDirty)\n\n const [runLockArticle] = useSafeMutation(LOCK_ARTICLE_MUTATION)\n const lockArticle = useCallback(async () => {\n console.log(\"locking article\")\n const { errors } = await runLockArticle({\n variables: {\n input: {\n articleId,\n },\n },\n })\n\n if (errors) {\n console.log(errors)\n }\n }, [articleId, runLockArticle])\n\n const throttledLockArticle = useThrottledCallback(lockArticle, 15000, {\n trailing: false,\n })\n\n const onChange = useCallback(() => {\n if (!isDirty) {\n return\n }\n throttledLockArticle()\n }, [throttledLockArticle, isDirty])\n\n useEffect(() => {\n if (isDirty && !isDirtyWasRef.current) {\n onChange()\n }\n isDirtyWasRef.current = isDirty\n }, [isDirty, onChange])\n\n return useMemo(\n () => ({\n onChange,\n }),\n [onChange]\n )\n}\n\nconst LOCK_ARTICLE_MUTATION = gql(`\n mutation ArticleLock($input: ArticleLockInput!) {\n articleLock(input: $input) {\n article {\n id\n isLockedBySomeoneElse\n lockedByUser {\n ...User_Avatar\n }\n }\n }\n }\n`)\n","import { Check } from \"lucide-react\"\nimport { Button } from \"~/ui/button\"\nimport { ButtonGroupToggle } from \"~/ui/ButtonGroupToggle\"\n\ninterface ArticleBottomActionToolbarProps {\n preview: () => void\n edit: () => void\n save: () => void\n isPreviewing: boolean\n isSaving: boolean\n isDirty: boolean\n isLocked: boolean\n}\n\nexport const ArticleBottomActionToolbar = ({\n preview,\n edit,\n isPreviewing,\n save,\n isSaving,\n isDirty,\n isLocked,\n}: ArticleBottomActionToolbarProps) => {\n if (isLocked) return null\n\n return (\n
\n
\n \n\n \n {isDirty ? (\n \"Save\"\n ) : (\n <>\n Saved\n \n \n )}\n \n
\n
\n )\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { useParams, useSearchParams } from \"react-router-dom\"\nimport invariant from \"tiny-invariant\"\nimport { gql } from \"~/__generated__\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { Editor, EditorHandle } from \"~/editor/Editor\"\nimport clsx from \"clsx\"\nimport { RenderedArticle } from \"~/editor/RenderedArticle\"\nimport { Article_EditorContentFragment } from \"~/__generated__/graphql\"\nimport { EditorMetadataSection } from \"~/editor/EditorMetadataSection\"\nimport { Card, CardHeader, CardTitle } from \"~/ui/card\"\nimport { ArticleTopActionToolbar } from \"~/articles/ArticleTopActionToolbar\"\nimport { useDirtyTracking } from \"~/editor/useDirtyTracking\"\nimport { ArticleLockedBanner } from \"~/editor/ArticleLockedBanner\"\nimport { useArticleLocking } from \"~/editor/useArticleLocking\"\nimport { editArticlePath, myContentPath } from \"~/common/paths\"\nimport { ArticleBottomActionToolbar } from \"~/articles/ArticleBottomActionToolbar\"\n\nexport const ArticleEditor = ({\n article,\n}: {\n article: Article_EditorContentFragment\n}) => {\n const editorRef = useRef(null)\n const { articleId } = useParams()\n invariant(articleId)\n\n const [searchParams] = useSearchParams()\n const [previewData, setPreviewData] = useState(null)\n const [previewSelected, setPreviewSelected] = useState(\n searchParams.get(\"preview\") !== null\n )\n\n const [currentTrackedObject, setCurrentTrackedObject] = useState(\n getBlocks(article)\n )\n const dirtyTracking = useDirtyTracking({\n savedTrackedObject: getBlocks(article),\n currentTrackedObject,\n })\n const articleLocking = useArticleLocking({\n articleId,\n isDirty: dirtyTracking.isDirty,\n })\n\n const [runSaveArticle, saveArticleResult] = useSafeMutation(\n UPDATE_ARTICLE_MUTATION\n )\n\n const previewArticle = useCallback(async () => {\n const content = await editorRef?.current?.getContent()\n setPreviewData(content)\n setPreviewSelected(true)\n }, [setPreviewSelected, setPreviewData])\n\n useEffect(() => {\n if (article && !previewData) {\n setPreviewData(article.revision.editorjsContent)\n }\n }, [article, previewData])\n\n const saveArticle = async () => {\n const content = await editorRef?.current?.getContent()\n\n const { data, errors } = await runSaveArticle({\n variables: {\n input: {\n articleId,\n editorjsContent: content,\n contentVersion: article.revision.contentVersion,\n },\n },\n })\n\n dirtyTracking.onSave(errors)\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else if (data?.articleUpdate) {\n toast.success(\"Article saved\")\n }\n }\n\n const onChange = useCallback(async () => {\n const content = await editorRef?.current?.getContent()\n setCurrentTrackedObject(content.blocks)\n articleLocking.onChange()\n }, [articleLocking])\n\n const isPreviewing = useMemo(\n () => previewSelected || !!article.isLockedBySomeoneElse,\n [previewSelected, article.isLockedBySomeoneElse]\n )\n\n const pendingCollaborators = article.collaborators.filter(\n (collaborator) => collaborator.pending\n )\n\n return (\n <>\n
\n \n\n {article.isLockedBySomeoneElse && article.lockedByUser && (\n \n )}\n\n \n \n \n {article.draftLesson ? \"Lesson\" : \"Content\"} Editor\n \n \n\n \n\n
\n \n
\n
\n {previewData && (\n
\n \n
\n )}\n
\n
\n
\n\n setPreviewSelected(false)}\n isSaving={saveArticleResult.loading}\n isDirty={dirtyTracking.isDirty}\n />\n \n )\n}\n\nconst getBlocks = (article: Article_EditorContentFragment) =>\n article.revision.editorjsContent?.blocks\n\nexport const UPDATE_ARTICLE_MUTATION = gql(`\n mutation UpdateDemoArticle($input: ArticleUpdateInput!) {\n articleUpdate(input: $input) {\n article {\n ...Article_EditorContent\n }\n }\n }\n`)\n\nexport const ARCHIVE_ARTICLE_MUTATION = gql(`\n mutation ArchiveArticle($input: ArticleArchiveInput!) {\n articleArchive(input: $input) {\n article {\n __typename\n id\n }\n }\n }\n`)\n","import { DialogProps } from \"@radix-ui/react-dialog\"\nimport { useCallback, useEffect, useMemo } from \"react\"\nimport { gql } from \"~/__generated__\"\nimport { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { z } from \"zod\"\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Input } from \"~/ui/input\"\nimport { Button } from \"~/ui/button\"\nimport { SavedOrUnsavedSection, UnsavedSection, generateTempId } from \"~/types\"\nimport { Textarea } from \"~/ui/textarea\"\nimport { useCourseEditorContext } from \"./CourseEditor\"\n\nconst createSectionModalFormSchema = z.object({\n title: z.string().min(1, {\n message: \"Title is required\",\n }),\n description: z.string().min(1, {\n message: \"Description is required\",\n }),\n})\nexport type CreateSectionModalFormValues = z.infer<\n typeof createSectionModalFormSchema\n>\n\nexport type CreateSectionModalProps = {\n onCreateSection?: (section: SavedOrUnsavedSection) => void\n} & DialogProps\n\nexport const CreateSectionModal = ({\n onCreateSection,\n ...dialogProps\n}: CreateSectionModalProps) => {\n const { course, sections, setSections } = useCourseEditorContext()\n const courseId = useMemo(() => course?.id, [course])\n\n const form = useForm>({\n resolver: zodResolver(createSectionModalFormSchema),\n defaultValues: {\n title: \"\",\n description: \"\",\n },\n })\n\n useEffect(() => {\n if (!dialogProps.open) {\n form.reset()\n }\n }, [dialogProps.open, form])\n\n const onSubmit = useCallback(\n async (values: CreateSectionModalFormValues) => {\n if (!courseId) {\n return\n }\n\n const newSection: UnsavedSection = {\n tempId: generateTempId(\"section\"),\n title: values.title,\n position: sections.length,\n lessons: [],\n hidden: false,\n description: values.description,\n }\n\n setSections((sections: SavedOrUnsavedSection[]) => [\n ...sections,\n newSection,\n ])\n onCreateSection?.(newSection)\n },\n [onCreateSection, courseId, sections, setSections]\n )\n\n const cancel = useCallback(() => {\n if (dialogProps.onOpenChange) {\n dialogProps.onOpenChange(false)\n }\n }, [dialogProps])\n\n return (\n \n \n
Add Module
\n
\n Modules are sections that help organize a course. You will be able to\n add individual Lessons within Modules.\n
\n\n
\n \n (\n \n Module Name\n \n \n \n \n \n )}\n />\n\n (\n \n Description\n \n \n \n \n \n )}\n />\n\n
\n \n\n \n
\n \n \n
\n
\n )\n}\n\ngql(`\n fragment Section_Full on Section {\n id\n title\n position\n hidden\n description\n\n lessons {\n ...Lesson_EditorContent\n }\n }\n`)\n","import {\n closestCorners,\n getFirstCollision,\n KeyboardCode,\n DroppableContainer,\n KeyboardCoordinateGetter,\n} from \"@dnd-kit/core\"\n\nconst directions: string[] = [\n KeyboardCode.Down,\n KeyboardCode.Right,\n KeyboardCode.Up,\n KeyboardCode.Left,\n]\n\nexport const coordinateGetter: KeyboardCoordinateGetter = (\n event,\n { context: { active, droppableRects, droppableContainers, collisionRect } }\n) => {\n if (directions.includes(event.code)) {\n event.preventDefault()\n\n if (!active || !collisionRect) {\n return\n }\n\n const filteredContainers: DroppableContainer[] = []\n\n droppableContainers.getEnabled().forEach((entry) => {\n if (!entry || entry?.disabled) {\n return\n }\n\n const rect = droppableRects.get(entry.id)\n\n if (!rect) {\n return\n }\n\n const data = entry.data.current\n\n if (data) {\n const { type, children } = data\n\n if (type === \"Column\" && children?.length > 0) {\n if (active.data.current?.type !== \"Column\") {\n return\n }\n }\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (active.data.current?.type === \"Column\") {\n return\n }\n if (collisionRect.top < rect.top) {\n // find all droppable areas below\n filteredContainers.push(entry)\n }\n break\n case KeyboardCode.Up:\n if (active.data.current?.type === \"Column\") {\n return\n }\n if (collisionRect.top > rect.top) {\n // find all droppable areas above\n filteredContainers.push(entry)\n }\n break\n case KeyboardCode.Left:\n if (collisionRect.left >= rect.left + rect.width) {\n // find all droppable areas to left\n filteredContainers.push(entry)\n }\n break\n case KeyboardCode.Right:\n // find all droppable areas to right\n if (collisionRect.left + collisionRect.width <= rect.left) {\n filteredContainers.push(entry)\n }\n break\n }\n })\n const collisions = closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null,\n })\n const closestId = getFirstCollision(collisions, \"id\")\n\n if (closestId != null) {\n const newDroppable = droppableContainers.get(closestId)\n const newNode = newDroppable?.node.current\n const newRect = newDroppable?.rect.current\n\n if (newNode && newRect) {\n return {\n x: newRect.left,\n y: newRect.top,\n }\n }\n }\n }\n\n return undefined\n}\n","import { useQuery } from \"@apollo/client\"\nimport { gql } from \"~/__generated__\"\n\nexport const TAGS_QUERY_DOCUMENT = gql(`\n query Tags {\n tags {\n nodes {\n id\n name\n }\n }\n }\n`)\n\nexport const useTags = () => {\n const { data } = useQuery(TAGS_QUERY_DOCUMENT)\n return data?.tags.nodes\n}\n","import { DialogProps } from \"@radix-ui/react-dialog\"\nimport { useCallback, useEffect } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { gql } from \"~/__generated__\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { z } from \"zod\"\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Input } from \"~/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"~/ui/select\"\nimport { Textarea } from \"~/ui/textarea\"\nimport { Button } from \"~/ui/button\"\nimport { useTags } from \"~/common/queries\"\nimport {\n ArticleContentTypeEnum,\n ArticleStateEnum,\n ArticleVisibilityEnum,\n} from \"~/__generated__/graphql\"\nimport {\n SavedOrUnsavedLesson,\n SavedOrUnsavedSection,\n UnsavedLesson,\n generateTempId,\n sectionId as getSectionId,\n} from \"~/types\"\n\nconst createLessonModalFormSchema = z.object({\n tagId: z.string({\n required_error: \"Select a topic\",\n }),\n title: z.string().min(1, {\n message: \"Title is required\",\n }),\n description: z.string().min(1, {\n message: \"Description is required\",\n }),\n})\nexport type CreateLessonModalFormValues = z.infer<\n typeof createLessonModalFormSchema\n>\n\nexport const useCreateLesson = () => {\n const [runCreateLesson, createLessonResult] = useSafeMutation(\n CREATE_LESSON_MUTATION\n )\n\n const createLesson = useCallback(\n async (lesson: UnsavedLesson) => {\n const { data, errors } = await runCreateLesson({\n variables: {\n input: {\n sectionId: lesson.sectionId,\n title: lesson.article.revision.title,\n description: lesson.article.revision.description || \"\",\n tagId: lesson.article.revision.tag.id,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n toast.success(\"Lesson created\")\n }\n\n return data?.lessonCreate.lesson\n },\n [runCreateLesson]\n )\n\n return { createLesson, createLessonResult }\n}\n\nexport type CreateLessonModalProps = {\n onCreateLesson?: (lesson: SavedOrUnsavedLesson) => void\n loading: boolean\n section: SavedOrUnsavedSection\n} & DialogProps\n\nexport const CreateLessonModal = ({\n onCreateLesson,\n loading,\n section,\n ...dialogProps\n}: CreateLessonModalProps) => {\n const tags = useTags()\n const form = useForm>({\n resolver: zodResolver(createLessonModalFormSchema),\n defaultValues: {\n title: \"\",\n description: \"\",\n tagId: undefined,\n },\n })\n const sectionId = getSectionId(section)\n\n const onSubmit = useCallback(\n async (values: CreateLessonModalFormValues) => {\n const newLesson: UnsavedLesson = {\n tempId: generateTempId(\"lesson\"),\n position: 0,\n sectionId,\n hidden: section.hidden,\n article: {\n tempId: generateTempId(\"article\"),\n collaborators: [],\n currentUserCanApprove: { value: false },\n currentUserCanChangeVisibility: { value: false },\n currentUserCanMarkAsFeatured: { value: false },\n currentUserCanRequestEdits: { value: false },\n currentUserCanSubmitForApproval: { value: false },\n currentUserCanViewRevisionLogs: { value: false },\n currentUserCanToggleHidden: { value: false },\n currentUserCanMarkAsPremium: { value: false },\n currentUserCanChangeExternalShareSetting: { value: false },\n currentUserCanArchive: { value: false },\n featuredUntil: null,\n premium: false,\n allowExternalShare: false,\n isLockedBySomeoneElse: false,\n createdAt: new Date().toISOString(),\n state: ArticleStateEnum.Draft,\n visibility: ArticleVisibilityEnum.Hidden,\n revision: {\n tempId: generateTempId(\"revision\"),\n contentType: ArticleContentTypeEnum.Lesson,\n contentVersion: \"-1\",\n description: values.description,\n tag: {\n id: values.tagId,\n name: tags?.find((tag) => tag.id === values.tagId)?.name || \"\",\n },\n title: values.title,\n },\n },\n }\n onCreateLesson?.(newLesson)\n },\n [onCreateLesson, sectionId, tags, section.hidden]\n )\n\n const cancel = useCallback(() => {\n if (dialogProps.onOpenChange) {\n dialogProps.onOpenChange(false)\n }\n }, [dialogProps])\n\n useEffect(() => {\n if (!dialogProps.open) {\n form.reset()\n }\n }, [dialogProps.open, form])\n\n return (\n \n \n
\n Add New Lesson\n
\n
\n Get started by telling us the type of content you would like to\n create.\n
\n\n
\n \n (\n \n Select Topic\n \n \n \n \n \n \n \n {tags &&\n tags.map((tag) => (\n \n {tag.name}\n \n ))}\n \n \n \n \n )}\n />\n\n (\n \n Title\n \n \n \n \n \n )}\n />\n\n (\n \n Description\n \n \n \n \n \n )}\n />\n\n
\n \n\n \n
\n \n \n
\n
\n )\n}\n\nconst CREATE_LESSON_MUTATION = gql(`\n mutation CreateLesson($input: LessonCreateInput!) {\n lessonCreate(input: $input) {\n lesson {\n ...Lesson_EditorContent\n }\n }\n }\n`)\n","import { useSortable } from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport { cva } from \"class-variance-authority\"\nimport { CheckCircleIcon, GripVertical } from \"lucide-react\"\nimport { Button } from \"~/ui/button\"\nimport {\n DotsHorizontalIcon,\n ExclamationTriangleIcon,\n EyeNoneIcon,\n} from \"@radix-ui/react-icons\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport {\n SavedOrUnsavedLesson,\n articleCollaboratorId,\n isSavedLesson,\n getArticleId,\n SavedOrUnsavedArticle,\n isSavedArticle,\n lessonId as getLessonId,\n generateTempId,\n withoutId,\n sectionId,\n} from \"~/types\"\nimport { SimpleTooltip } from \"~/ui/SimpleTooltip\"\nimport { useCallback, useMemo, useRef, useState } from \"react\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { editArticlePath } from \"~/common/paths\"\nimport toast from \"react-hot-toast\"\nimport { cn } from \"~/lib/utils\"\nimport { ArticleCollaboratorsModal } from \"~/articles/ArticleCollaboratorsModal\"\nimport { useConfirm } from \"~/ui/Confirm\"\nimport { useCourseEditorContext } from \"./CourseEditor\"\nimport { useNavigate } from \"react-router-dom\"\n\ninterface LessonProps {\n lesson: SavedOrUnsavedLesson\n isOverlay?: boolean\n onUpdateLesson: (lesson: SavedOrUnsavedLesson) => void\n}\n\nexport type LessonType = \"Lesson\"\n\nexport interface LessonDragData {\n type: LessonType\n lesson: SavedOrUnsavedLesson\n}\n\nconst lessonHasChanges = (\n lesson: SavedOrUnsavedLesson,\n initialLesson: SavedOrUnsavedLesson | null\n) => {\n return (\n !isSavedLesson(lesson) ||\n lesson.sectionId !== initialLesson?.sectionId ||\n lesson.hidden !== initialLesson?.hidden ||\n lesson.article.collaborators\n ?.map((c) => articleCollaboratorId(c))\n .join(\",\") !==\n initialLesson?.article.collaborators\n ?.map((c) => articleCollaboratorId(c))\n .join(\",\")\n )\n}\n\nexport function Lesson({ lesson, isOverlay, onUpdateLesson }: LessonProps) {\n const contextMenuTriggerRef = useRef(null)\n const { course, setSections } = useCourseEditorContext()\n const initialLesson = useMemo(() => {\n return (\n course.sections\n .flatMap((s) => s.lessons)\n .find((l) => getLessonId(l) === getLessonId(lesson)) || null\n )\n }, [course, lesson])\n const [collaboratorsModalOpen, setCollaboratorsModalOpen] = useState(false)\n const lessonId = useMemo(\n () => (isSavedLesson(lesson) ? lesson.id : lesson.tempId),\n [lesson]\n )\n const navigate = useNavigate()\n const showConfirm = useConfirm()\n\n const {\n setNodeRef,\n attributes,\n listeners,\n transform,\n transition,\n isDragging,\n } = useSortable({\n id: lessonId,\n data: {\n type: \"Lesson\",\n lesson,\n } satisfies LessonDragData,\n attributes: {\n roleDescription: \"Lesson\",\n },\n })\n\n const style = {\n transition,\n transform: CSS.Translate.toString(transform),\n }\n\n const variants = cva(\n \"rounded-full hover:bg-pretext-light-gray/10 p-2 flex gap-2 items-center\",\n {\n variants: {\n dragging: {\n over: \"ring-2 opacity-30\",\n overlay: \"ring-2 ring-primary\",\n },\n visibility: {\n visible: \"\",\n hidden: \"border-dashed border-2 border-gray-300\",\n },\n },\n }\n )\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n const editLesson = () => {\n if (!isSavedLesson(lesson)) {\n toast.error(\"Cannot edit unsaved lesson\")\n return\n }\n\n navigate(editArticlePath({ articleId: getArticleId(lesson.article) }))\n }\n\n const toggleHidden = useCallback(() => {\n showConfirm({\n title: lesson.hidden ? \"Un-hide Lesson\" : \"Hide Lesson\",\n body: `Are you sure you want to ${\n lesson.hidden ? \"un-hide\" : \"hide\"\n } this lesson?`,\n onConfirm: () => {\n onUpdateLesson({\n ...lesson,\n hidden: !lesson.hidden,\n } as SavedOrUnsavedLesson)\n },\n })\n }, [lesson, onUpdateLesson, showConfirm])\n\n const duplicate = useCallback(() => {\n showConfirm({\n title: \"Duplicate Lesson\",\n body: \"Are you sure you want to duplicate this lesson?\",\n onConfirm: () => {\n setSections((sections) => {\n const duplicatedLesson = {\n ...withoutId(lesson),\n tempId: generateTempId(\"lesson\"),\n article: {\n ...withoutId(lesson.article),\n tempId: generateTempId(\"article\"),\n revision: {\n ...withoutId(lesson.article.revision),\n title: `${lesson.article.revision.title} (Copy)`,\n tempId: generateTempId(\"revision\"),\n },\n collaborators:\n lesson.article.collaborators?.map((collaborator) => ({\n ...withoutId(collaborator),\n tempId: generateTempId(\"collaborator\"),\n })) || [],\n },\n }\n\n return sections.map((section) => {\n if (sectionId(section) !== lesson.sectionId) {\n return section\n }\n\n return {\n ...section,\n lessons: [...section.lessons, duplicatedLesson],\n }\n })\n })\n },\n })\n }, [lesson, setSections, showConfirm])\n\n return (\n <>\n \n
\n \n Move lesson\n \n \n
\n\n \n \n \n {isSavedLesson(lesson) ? (\n \"Edit Lesson\"\n ) : (\n <>\n \n
Edit Lesson
\n
\n \n )}\n \n setCollaboratorsModalOpen(true)}\n >\n Add Collaborator(s)\n \n \n {lesson.hidden ? \"Un-hide\" : \"Hide\"} Lesson\n \n \n Duplicate Lesson\n \n
\n \n \n
{lesson.article.revision.title}
\n {lesson.hidden && (\n \n \n \n )}\n
\n {lessonHasChanges(lesson, initialLesson) ? (\n \n \n \n ) : (\n \n \n \n )}\n
\n \n
\n
\n\n
\n {lesson.article?.collaborators?.map((c) => (\n \n ))}\n
\n\n
\n \n
\n \n\n {collaboratorsModalOpen && (\n {\n onUpdateLesson({\n ...lesson,\n article: {\n ...lesson.article,\n collaborators,\n } as SavedOrUnsavedArticle,\n } as SavedOrUnsavedLesson)\n setCollaboratorsModalOpen(false)\n }}\n />\n )}\n \n )\n}\n","import { useDndContext } from \"@dnd-kit/core\"\nimport { SortableContext, useSortable } from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport {\n DotsVerticalIcon,\n ExclamationTriangleIcon,\n EyeNoneIcon,\n TriangleDownIcon,\n TriangleUpIcon,\n} from \"@radix-ui/react-icons\"\nimport { cva } from \"class-variance-authority\"\nimport { CheckCircleIcon, GripVertical, Plus } from \"lucide-react\"\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport { ArticleCollaboratorsModal } from \"~/articles/ArticleCollaboratorsModal\"\nimport { cn } from \"~/lib/utils\"\nimport {\n SavedOrUnsavedArticle,\n SavedOrUnsavedLesson,\n SavedOrUnsavedSection,\n isSavedLesson,\n isSavedSection,\n sectionId as getSectionId,\n generateTempId,\n withoutId,\n} from \"~/types\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent, CardHeader } from \"~/ui/card\"\nimport { CreateLessonModal } from \"./CreateLessonModal\"\nimport { Lesson } from \"./Lesson\"\nimport { useConfirm } from \"~/ui/Confirm\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport invariant from \"tiny-invariant\"\nimport { SimpleTooltip } from \"~/ui/SimpleTooltip\"\nimport { useCourseEditorContext } from \"./CourseEditor\"\n\nexport type SectionType = \"Section\"\n\nexport interface SectionDragData {\n type: SectionType\n section: SavedOrUnsavedSection\n}\n\ninterface SectionProps {\n section: SavedOrUnsavedSection\n isOverlay?: boolean\n onCreateLesson: (lesson: SavedOrUnsavedLesson) => void\n onUpdateLesson: (lesson: SavedOrUnsavedLesson) => void\n}\n\nconst sectionHasChanges = (\n section: SavedOrUnsavedSection,\n initialSection: SavedOrUnsavedSection | null\n) => {\n return (\n !isSavedSection(section) ||\n section.title !== initialSection?.title ||\n section.hidden !== initialSection?.hidden ||\n section.lessons.some((lesson) => !isSavedLesson(lesson))\n )\n}\n\nexport function Section({\n section,\n isOverlay,\n onCreateLesson,\n onUpdateLesson,\n}: SectionProps) {\n const { article, course, setSections } = useCourseEditorContext()\n const initialSection = useMemo(() => {\n const matchedSections = course.sections.filter(\n (s) => getSectionId(s) === getSectionId(section)\n )\n return matchedSections.length > 0 ? matchedSections[0] : null\n }, [course, section])\n const [isExpanded, setIsExpanded] = useState(false)\n const [isCreateLessonModalOpen, setIsCreateLessonModalOpen] = useState(false)\n const lessons = useMemo(\n () => section.lessons,\n [section]\n )\n const lessonIds = useMemo(() => {\n return lessons.map((lesson) =>\n isSavedLesson(lesson) ? lesson.id : lesson.tempId\n )\n }, [lessons])\n const sectionId = useMemo(\n () => (isSavedSection(section) ? section.id : section.tempId),\n [section]\n )\n\n const showConfirm = useConfirm()\n\n const rename = useCallback(() => {\n showConfirm({\n title: \"Rename Module\",\n prompt: {\n label: \"Module Name\",\n value: section.title,\n required: true,\n placeholder: \"Enter a name for this module\",\n type: \"text\",\n },\n onConfirm: (newTitle) => {\n invariant(newTitle)\n setSections((sections) => {\n return sections.map((s) => {\n if (getSectionId(s) === getSectionId(section)) {\n return {\n ...s,\n title: newTitle,\n }\n }\n return s\n })\n })\n },\n })\n }, [section, setSections, showConfirm])\n\n const toggleHidden = useCallback(() => {\n showConfirm({\n title: section.hidden ? \"Un-hide Module\" : \"Hide Module\",\n body: `Are you sure you want to ${\n section.hidden ? \"un-hide\" : \"hide\"\n } this module?`,\n onConfirm: () => {\n setSections((sections) => {\n return sections.map((s) => {\n if (getSectionId(s) === getSectionId(section)) {\n return {\n ...s,\n hidden: !s.hidden,\n }\n }\n return s\n })\n })\n },\n })\n }, [section, setSections, showConfirm])\n\n const duplicate = useCallback(() => {\n showConfirm({\n title: \"Duplicate Module\",\n body: \"Are you sure you want to duplicate this module and all lessons contained within?\",\n onConfirm: () => {\n setSections((sections) => {\n const duplicatedSection = {\n ...withoutId(section),\n tempId: generateTempId(\"section\"),\n title: `${section.title} (Copy)`,\n lessons: [] as SavedOrUnsavedLesson[],\n }\n\n duplicatedSection.lessons = section.lessons.map((lesson) => ({\n ...withoutId(lesson),\n sectionId: duplicatedSection.tempId,\n tempId: generateTempId(\"lesson\"),\n article: {\n ...withoutId(lesson.article),\n tempId: generateTempId(\"article\"),\n revision: {\n ...withoutId(lesson.article.revision),\n title: `${lesson.article.revision.title} (Copy)`,\n tempId: generateTempId(\"revision\"),\n },\n collaborators:\n lesson.article.collaborators?.map((collaborator) => ({\n ...withoutId(collaborator),\n tempId: generateTempId(\"collaborator\"),\n })) || [],\n },\n }))\n\n return [...sections, duplicatedSection]\n })\n },\n })\n }, [section, setSections, showConfirm])\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n const {\n setNodeRef,\n attributes,\n listeners,\n transform,\n transition,\n isDragging,\n } = useSortable({\n id: sectionId,\n data: {\n type: \"Section\",\n section,\n } satisfies SectionDragData,\n attributes: {\n roleDescription: `Section: ${section.title}`,\n },\n })\n const style = {\n transition,\n transform: CSS.Translate.toString(transform),\n }\n const dndContext = useDndContext()\n\n useEffect(() => {\n if (\n dndContext.over?.id === sectionId &&\n dndContext.active?.data.current?.type === \"Lesson\"\n ) {\n setIsExpanded(true)\n }\n }, [dndContext, sectionId])\n\n const variants = cva(\"flex flex-row items-center\", {\n variants: {\n dragging: {\n default: \"border-2 border-transparent\",\n over: \"ring-2 opacity-30\",\n overlay: \"ring-2 ring-primary\",\n },\n visibility: {\n visible: \"border-solid border border-gray-300\",\n hidden: \"border-dashed border-2 border-gray-300\",\n },\n },\n })\n\n const handleCreateLesson = useCallback(\n (lesson: SavedOrUnsavedLesson) => {\n onCreateLesson(lesson)\n setIsExpanded(true)\n setIsCreateLessonModalOpen(false)\n setCollaboratorsModalLesson(lesson)\n setCollaboratorsModalOpen(true)\n },\n [onCreateLesson]\n )\n\n const handleUpdateLesson = useCallback(\n (lesson: SavedOrUnsavedLesson) => {\n onUpdateLesson(lesson)\n },\n [onUpdateLesson]\n )\n\n const [collaboratorsModalOpen, setCollaboratorsModalOpen] = useState(false)\n const [collaboratorsModalLesson, setCollaboratorsModalLesson] =\n useState(null)\n\n const contextMenuTriggerRef = useRef(null)\n\n return (\n <>\n \n {collaboratorsModalOpen && (\n c.user.id)}\n setIsOpen={setCollaboratorsModalOpen}\n onSubmit={(collaborators) => {\n if (collaboratorsModalLesson) {\n handleUpdateLesson({\n ...collaboratorsModalLesson,\n article: {\n ...collaboratorsModalLesson.article,\n collaborators,\n } as SavedOrUnsavedArticle,\n } as SavedOrUnsavedLesson)\n }\n setCollaboratorsModalOpen(false)\n }}\n />\n )}\n\n \n
\n \n {`Move section: ${section.title}`}\n \n \n
\n
\n \n \n \n Rename\n \n \n {section.hidden ? \"Un-hide\" : \"Hide\"}\n \n \n Duplicate\n \n \n \n \n : }\n onClick={() => setIsExpanded(!isExpanded)}\n className=\"p-2 text-foreground\"\n >\n
\n \n {section.title}\n \n\n {section.hidden && (\n \n \n \n )}\n {!sectionHasChanges(section, initialSection) ? (\n \n \n \n ) : (\n \n \n \n )}\n
\n \n
\n }\n className=\"text-2xs\"\n onClick={() => setIsCreateLessonModalOpen(true)}\n >\n Add New Lesson\n \n \n \n \n
\n \n
\n
\n \n \n {lessons.map((lesson) => (\n \n ))}\n \n \n
\n \n \n )\n}\n\nexport function SectionContainer({ children }: { children: React.ReactNode }) {\n return (\n
\n {children}\n
\n )\n}\n","import {\n Announcements,\n DndContext,\n DragEndEvent,\n DragOverEvent,\n DragOverlay,\n DragStartEvent,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n UniqueIdentifier,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\"\nimport { SortableContext, arrayMove } from \"@dnd-kit/sortable\"\nimport { useCallback, useMemo, useRef, useState } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { coordinateGetter } from \"./multipleContainersKeyboardPreset\"\nimport { Active, DataRef, Over } from \"@dnd-kit/core\"\n\nimport { Section, SectionContainer, SectionDragData } from \"./Section\"\nimport { Lesson, LessonDragData } from \"./Lesson\"\nimport {\n isSavedSection,\n SavedOrUnsavedLesson,\n SavedOrUnsavedSection,\n isSavedLesson,\n lessonId,\n} from \"~/types\"\nimport { useCourseEditorContext } from \"./CourseEditor\"\n\ntype DraggableData = SectionDragData | LessonDragData\n\nexport function hasDraggableData(\n entry: T | null | undefined\n): entry is T & {\n data: DataRef\n} {\n if (!entry) {\n return false\n }\n\n const data = entry.data.current\n\n if (data?.type === \"Section\" || data?.type === \"Lesson\") {\n return true\n }\n\n return false\n}\n\nexport const SectionsEditor = () => {\n const { sections, setSections } = useCourseEditorContext()\n const pickedUpLessonSectionId = useRef(null)\n const sectionIds = useMemo(\n () =>\n sections.map((section) =>\n isSavedSection(section) ? section.id : section.tempId\n ),\n [sections]\n )\n\n const lessons = useMemo(() => {\n return sections.flatMap((section) => section.lessons)\n }, [sections])\n const setLessons = useCallback(\n (callback: (lessons: SavedOrUnsavedLesson[]) => SavedOrUnsavedLesson[]) => {\n const newLessons = callback(lessons)\n setSections((sections) => {\n return sections.map((section) => {\n return {\n ...section,\n lessons: newLessons.filter(\n (lesson) =>\n lesson.sectionId ===\n (isSavedSection(section) ? section.id : section.tempId)\n ),\n } as SavedOrUnsavedSection\n })\n })\n },\n [lessons, setSections]\n )\n\n const [activeSection, setActiveSection] =\n useState(null)\n const [activeLesson, setActiveLesson] = useState(\n null\n )\n\n const sensors = useSensors(\n useSensor(MouseSensor),\n useSensor(TouchSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter,\n })\n )\n\n const getDraggingLessonData = (\n lessonId: UniqueIdentifier,\n sectionId: UniqueIdentifier\n ) => {\n const lessonsInSection = lessons.filter(\n (lesson) => lesson.sectionId === sectionId\n )\n const lessonPosition = lessonsInSection.findIndex(\n (lesson) =>\n lessonId === (isSavedLesson(lesson) ? lesson.id : lesson.tempId)\n )\n const section = sections.find(\n (section) =>\n sectionId === (isSavedSection(section) ? section.id : section.tempId)\n )\n return {\n lessonPosition,\n section,\n lessonsInSection,\n }\n }\n\n const announcements: Announcements = {\n onDragStart({ active }) {\n if (!hasDraggableData(active)) return\n if (active.data.current?.type === \"Section\") {\n const startSectionIdx = sectionIds.findIndex((id) => id === active.id)\n const startSection = sections[startSectionIdx]\n return `Picked up Section ${startSection?.title} at position: ${\n startSectionIdx + 1\n } of ${sectionIds.length}`\n } else if (active.data.current?.type === \"Lesson\") {\n pickedUpLessonSectionId.current = active.data.current.lesson.sectionId\n const { lessonsInSection, lessonPosition, section } =\n getDraggingLessonData(active.id, pickedUpLessonSectionId.current!)\n return `Picked up Lesson ${\n active.data.current.lesson.article.revision.title\n } at position: ${lessonPosition + 1} of ${\n lessonsInSection.length\n } in section ${section?.title}`\n }\n },\n onDragOver({ active, over }) {\n if (!hasDraggableData(active) || !hasDraggableData(over)) return\n\n if (\n active.data.current?.type === \"Section\" &&\n over.data.current?.type === \"Section\"\n ) {\n const overSectionIdx = sectionIds.findIndex((id) => id === over.id)\n return `Section ${active.data.current.section.title} was moved over ${\n over.data.current.section.title\n } at position ${overSectionIdx + 1} of ${sectionIds.length}`\n } else if (\n active.data.current?.type === \"Lesson\" &&\n over.data.current?.type === \"Lesson\"\n ) {\n const { lessonsInSection, lessonPosition, section } =\n getDraggingLessonData(over.id, over.data.current.lesson.sectionId)\n if (\n over.data.current.lesson.sectionId !== pickedUpLessonSectionId.current\n ) {\n return `Lesson ${\n active.data.current.lesson.article.revision.title\n } was moved over section ${section?.title} in position ${\n lessonPosition + 1\n } of ${lessonsInSection.length}`\n }\n return `Lesson was moved over position ${lessonPosition + 1} of ${\n lessonsInSection.length\n } in section ${section?.title}`\n }\n },\n onDragEnd({ active, over }) {\n if (!hasDraggableData(active) || !hasDraggableData(over)) {\n pickedUpLessonSectionId.current = null\n return\n }\n if (\n active.data.current?.type === \"Section\" &&\n over.data.current?.type === \"Section\"\n ) {\n const overSectionPosition = sectionIds.findIndex((id) => id === over.id)\n\n return `Section ${\n active.data.current.section.title\n } was dropped into position ${overSectionPosition + 1} of ${\n sectionIds.length\n }`\n } else if (\n active.data.current?.type === \"Lesson\" &&\n over.data.current?.type === \"Lesson\"\n ) {\n const { lessonsInSection, lessonPosition, section } =\n getDraggingLessonData(over.id, over.data.current.lesson.sectionId)\n if (\n over.data.current.lesson.sectionId !== pickedUpLessonSectionId.current\n ) {\n return `Lesson was dropped into section ${section?.title} in position ${\n lessonPosition + 1\n } of ${lessonsInSection.length}`\n }\n return `Lesson was dropped into position ${lessonPosition + 1} of ${\n lessonsInSection.length\n } in section ${section?.title}`\n }\n pickedUpLessonSectionId.current = null\n },\n onDragCancel({ active }) {\n pickedUpLessonSectionId.current = null\n if (!hasDraggableData(active)) return\n return `Dragging ${active.data.current?.type} cancelled.`\n },\n }\n\n function onDragStart(event: DragStartEvent) {\n if (!hasDraggableData(event.active)) return\n const data = event.active.data.current\n if (data?.type === \"Section\") {\n setActiveSection(data.section)\n return\n }\n\n if (data?.type === \"Lesson\") {\n setActiveLesson(data.lesson)\n return\n }\n }\n\n function onDragEnd(event: DragEndEvent) {\n setActiveSection(null)\n setActiveLesson(null)\n\n const { active, over } = event\n if (!over) return\n\n const activeId = active.id\n const overId = over.id\n\n if (!hasDraggableData(active)) return\n\n const activeData = active.data.current\n\n if (activeId === overId) return\n\n const isActiveASection = activeData?.type === \"Section\"\n if (!isActiveASection) return\n\n const activeSectionIndex = sections.findIndex(\n (section) =>\n activeId === (isSavedSection(section) ? section.id : section.tempId)\n )\n\n const overSectionIndex = sections.findIndex(\n (section) =>\n overId === (isSavedSection(section) ? section.id : section.tempId)\n )\n\n const newSections = arrayMove(\n sections,\n activeSectionIndex,\n overSectionIndex\n )\n setSections(newSections)\n }\n\n function onDragOver(event: DragOverEvent) {\n const { active, over } = event\n if (!over) return\n\n const activeId = active.id\n const overId = over.id\n\n if (activeId === overId) return\n\n if (!hasDraggableData(active) || !hasDraggableData(over)) return\n\n const activeData = active.data.current\n const overData = over.data.current\n\n const isActiveALesson = activeData?.type === \"Lesson\"\n const isOverALesson = overData?.type === \"Lesson\"\n\n if (!isActiveALesson) return\n\n // Im dropping a Lesson over another Lesson\n if (isActiveALesson && isOverALesson) {\n setLessons((lessons) => {\n const activeIndex = lessons.findIndex(\n (lesson) =>\n activeId === (isSavedLesson(lesson) ? lesson.id : lesson.tempId)\n )\n const overIndex = lessons.findIndex(\n (lesson) =>\n overId === (isSavedLesson(lesson) ? lesson.id : lesson.tempId)\n )\n const activeLesson = lessons[activeIndex]\n const overLesson = lessons[overIndex]\n if (\n activeLesson &&\n overLesson &&\n activeLesson.sectionId !== overLesson.sectionId\n ) {\n return arrayMove(lessons, activeIndex, overIndex - 1).map(\n (lesson) => {\n if (\n activeId === (isSavedLesson(lesson) ? lesson.id : lesson.tempId)\n ) {\n return { ...lesson, sectionId: overLesson.sectionId }\n }\n return lesson\n }\n )\n }\n return arrayMove(lessons, activeIndex, overIndex)\n })\n }\n\n const isOverASection = overData?.type === \"Section\"\n\n // Im dropping a Lesson over a section\n if (isActiveALesson && isOverASection) {\n setLessons((lessons) => {\n const activeIndex = lessons.findIndex(\n (lesson) =>\n activeId === (isSavedLesson(lesson) ? lesson.id : lesson.tempId)\n )\n const activeLesson = lessons[activeIndex]\n if (activeLesson) {\n const newLessons = arrayMove(lessons, activeIndex, activeIndex)\n return newLessons.map((lesson) => {\n if (\n activeId === (isSavedLesson(lesson) ? lesson.id : lesson.tempId)\n ) {\n return { ...lesson, sectionId: overId as string }\n }\n return lesson\n })\n }\n return lessons\n })\n }\n }\n\n const onCreateLesson = useCallback(\n (lesson: SavedOrUnsavedLesson) => {\n setLessons((lessons) => [...lessons, lesson])\n },\n [setLessons]\n )\n\n const onUpdateLesson = useCallback(\n (lesson: SavedOrUnsavedLesson) => {\n setLessons((lessons) => {\n const lessonIndex = lessons.findIndex(\n (l) => lessonId(l) === lessonId(lesson)\n )\n return [\n ...lessons.slice(0, lessonIndex),\n lesson,\n ...lessons.slice(lessonIndex + 1),\n ]\n })\n },\n [setLessons]\n )\n\n return (\n \n \n \n {sections.map((section) => (\n \n ))}\n \n \n\n {\"document\" in window &&\n createPortal(\n \n {activeSection && (\n \n )}\n {activeLesson && (\n \n )}\n ,\n document.body\n )}\n \n )\n}\n","import {\n ArticleTopActionToolbar,\n ArticleActionToolbarProps,\n} from \"~/articles/ArticleTopActionToolbar\"\nimport { useCourseEditorContext } from \"./CourseEditor\"\n\nexport const CourseActionToolbar = ({\n isLocked,\n}: Pick) => {\n const { article } = useCourseEditorContext()\n\n return (\n \n )\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\"\nimport toast from \"react-hot-toast\"\nimport { useParams, useSearchParams } from \"react-router-dom\"\nimport invariant from \"tiny-invariant\"\nimport { gql } from \"~/__generated__\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { EditorMetadataSection } from \"~/editor/EditorMetadataSection\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { Button } from \"~/ui/button\"\nimport { Plus } from \"lucide-react\"\nimport { CreateSectionModal } from \"~/content/CreateSectionModal\"\nimport { SectionsEditor } from \"~/content/SectionsEditor\"\nimport {\n SavedOrUnsavedSection,\n lessonId,\n isSavedSection,\n isSavedLesson,\n isSavedArticleCollaborator,\n SavedOrUnsavedCourse,\n getArticleId,\n sectionId,\n revisionId,\n} from \"~/types\"\nimport { CourseIndex, CourseIndexCourse } from \"~/content/CourseIndex\"\nimport { CourseActionToolbar } from \"~/content/CourseActionToolbar\"\nimport { useDirtyTracking } from \"~/editor/useDirtyTracking\"\nimport {\n Article_CourseEditorContentFragment,\n Article_EditorContentFragment,\n} from \"~/__generated__/graphql\"\nimport { ArticleBottomActionToolbar } from \"~/articles/ArticleBottomActionToolbar\"\n\ntype SetSectionsCallback = (\n sections: SavedOrUnsavedSection[]\n) => SavedOrUnsavedSection[]\n\ntype CourseEditorContextType = {\n article: Article_EditorContentFragment & Article_CourseEditorContentFragment\n course: SavedOrUnsavedCourse\n hasChanges: boolean\n sections: SavedOrUnsavedSection[]\n setSections: (\n sectionsOrCallback: SavedOrUnsavedSection[] | SetSectionsCallback\n ) => void\n}\n\nconst CourseEditorContext = createContext(\n {} as CourseEditorContextType\n)\n\nexport const useCourseEditorContext = () => {\n const context = useContext(CourseEditorContext)\n invariant(\n context,\n \"useCourseEditorContext must be used within a CourseEditorContextProvider\"\n )\n return context\n}\n\nconst getTrackableSections = (sections: SavedOrUnsavedSection[]) => {\n return sections.map((section) => ({\n title: section.title,\n position: section.position,\n description: section.description,\n hidden: section.hidden,\n lessons: section.lessons.map((lesson) => ({\n title: lesson.article.revision.title,\n position: lesson.position,\n hidden: lesson.hidden,\n collaborators: lesson.article.collaborators?.map(\n (collaborator) => collaborator.user.id\n ),\n })),\n }))\n}\n\nexport const CourseEditor = ({\n article,\n}: {\n article: Article_EditorContentFragment & Article_CourseEditorContentFragment\n}) => {\n const { articleId } = useParams()\n invariant(articleId)\n\n const [isPreviewing, setIsPreviewing] = useState(false)\n const [isCreateSectionModalOpen, setIsCreateSectionModalOpen] =\n useState(false)\n const [searchParams] = useSearchParams()\n\n const [course, setCourse] = useState(\n article?.draftCourse || undefined\n )\n const [savedTrackedCourse, setSavedTrackedCourse] = useState<\n SavedOrUnsavedCourse | undefined\n >(article?.draftCourse || undefined)\n useEffect(() => {\n if (article?.draftCourse) {\n setCourse(article.draftCourse)\n }\n }, [article.draftCourse])\n const sections = useMemo(() => course?.sections || [], [course])\n\n const setSections = useCallback(\n (sectionsOrCallback: SavedOrUnsavedSection[] | SetSectionsCallback) => {\n setCourse((course) => {\n if (!course) {\n return course\n }\n\n const newSections =\n typeof sectionsOrCallback === \"function\"\n ? sectionsOrCallback(sections)\n : sectionsOrCallback\n\n return {\n ...course,\n sections: newSections,\n }\n })\n },\n [sections]\n )\n\n const savedTrackedObject = useMemo(() => {\n return {\n sections: getTrackableSections(savedTrackedCourse?.sections || []),\n collaborators: article.collaborators,\n }\n }, [savedTrackedCourse, article])\n\n const currentTrackedObject = useMemo(() => {\n return {\n sections: getTrackableSections(sections),\n collaborators: article.collaborators,\n }\n }, [sections, article])\n\n const dirtyTracking = useDirtyTracking({\n currentTrackedObject,\n savedTrackedObject,\n })\n\n const previewCourse: CourseIndexCourse | null = useMemo(() => {\n if (!course) {\n return null\n }\n\n return {\n ...course,\n sections: course.sections\n .filter((section) => !section.hidden)\n .map((section) => ({\n ...section,\n id: sectionId(section),\n lessons: section.lessons\n .filter((lesson) => !lesson.hidden)\n .map((lesson) => ({\n ...lesson,\n id: lessonId(lesson),\n currentUserCompleted: false,\n article: {\n ...lesson.article,\n id: getArticleId(lesson.article),\n approvedRevision: lesson.article.approvedRevision\n ? {\n id: lesson.article.approvedRevision.id,\n title: lesson.article.approvedRevision.title,\n }\n : null,\n revision: {\n id: revisionId(lesson.article.revision),\n title: lesson.article.revision.title,\n },\n },\n })),\n })),\n }\n }, [course])\n\n const [runSaveCourse, saveCourseResult] = useSafeMutation(\n UPDATE_COURSE_MUTATION\n )\n\n const saveCourse = async () => {\n const { data, errors } = await runSaveCourse({\n variables: {\n input: {\n articleId,\n sections: sections.map((section, index) => ({\n id: isSavedSection(section) ? section.id : undefined,\n position: index,\n title: section.title,\n hidden: section.hidden,\n description: section.description,\n lessons: section.lessons.map((lesson, lessonIndex) => ({\n id: isSavedLesson(lesson) ? lesson.id : undefined,\n position: lessonIndex,\n title: lesson.article.revision.title,\n tagId: lesson.article.revision.tag.id,\n description: lesson.article.revision.description,\n hidden: lesson.hidden,\n editorjsContent: lesson.article.revision.editorjsContent,\n collaborators: lesson.article.collaborators?.map(\n (collaborator) => ({\n id: isSavedArticleCollaborator(collaborator)\n ? collaborator.id\n : undefined,\n userId: collaborator.user.id,\n pending: collaborator.pending,\n })\n ),\n })),\n })),\n },\n },\n })\n\n dirtyTracking.onSave(errors)\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else if (data?.courseUpdate) {\n toast.success(\"Course saved\")\n invariant(data.courseUpdate.article.draftCourse)\n setCourse(data.courseUpdate.article.draftCourse)\n setSavedTrackedCourse(data.courseUpdate.article.draftCourse)\n }\n }\n\n const openCreateSectionModal = useCallback(() => {\n setIsCreateSectionModalOpen(true)\n }, [])\n\n const onCreateSection = useCallback(() => {\n setIsCreateSectionModalOpen(false)\n }, [])\n\n invariant(course, \"course must be present\")\n\n return (\n \n
\n \n\n \n \n Course Editor\n \n\n \n\n \n }\n onClick={openCreateSectionModal}\n size=\"sm\"\n className=\"text-2xs mb-4\"\n >\n Add Module\n \n \n {!isPreviewing && }\n {isPreviewing && previewCourse && (\n \n )}\n \n \n
\n setIsPreviewing(true)}\n edit={() => setIsPreviewing(false)}\n isSaving={saveCourseResult.loading}\n isDirty={dirtyTracking.isDirty}\n />\n \n )\n}\n\ngql(`\n fragment Course_EditorContent on Course {\n id\n\n sections(includeHidden: true) {\n ...Section_EditorContent\n }\n }\n`)\n\ngql(`\n fragment Section_EditorContent on Section {\n id\n title\n description\n hidden\n position\n\n lessons(includeHidden: true) {\n ...Lesson_EditorContent\n }\n }\n`)\n\ngql(`\n fragment Lesson_EditorContent on Lesson {\n id\n hidden\n position\n sectionId\n\n article {\n ...Article_EditorContent\n }\n }\n`)\n\nconst UPDATE_COURSE_MUTATION = gql(`\n mutation UpdateCourse($input: CourseUpdateInput!) {\n courseUpdate(input: $input) {\n article {\n ...Article_EditorContent\n ...Article_CourseEditorContent\n }\n }\n }\n`)\n","import { useQuery } from \"@apollo/client\"\nimport { useParams } from \"react-router-dom\"\nimport invariant from \"tiny-invariant\"\nimport { gql } from \"~/__generated__\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { Error } from \"~/ui/Error\"\nimport { ArticleEditor } from \"~/content/ArticleEditor\"\nimport { ArticleContentTypeEnum } from \"~/__generated__/graphql\"\nimport { CourseEditor } from \"~/content/CourseEditor\"\n\nexport const ArticleEditorScreen = () => {\n const { articleId } = useParams()\n invariant(articleId)\n\n const { data, loading, error } = useQuery(ARTICLE_QUERY_DOCUMENT, {\n variables: { articleId },\n fetchPolicy: \"network-only\",\n })\n\n if (error) return \n if (loading) return \n\n const article = data?.article\n invariant(article)\n\n if (\n article.revision.contentType === ArticleContentTypeEnum.Course &&\n article.draftCourse\n ) {\n return \n } else {\n return \n }\n}\n\nexport const ARTICLE_QUERY_DOCUMENT = gql(`\n query ArticleFullDocument($articleId: ID!) {\n article(articleId: $articleId) {\n ...Article_EditorContent\n ...Article_CourseEditorContent\n ...Article_ReviewActions\n }\n }\n`)\n\ngql(`\n fragment Article_CourseEditorContent on Article {\n id\n draftCourse {\n ...Course_EditorContent\n }\n }\n`)\n\ngql(`\n fragment Article_EditorContent on Article {\n id\n state\n visibility\n featuredUntil\n premium\n isLockedBySomeoneElse\n allowExternalShare\n markedLiveAt\n createdAt\n lockedByUser {\n ...User_Avatar\n }\n collaborators(includePending: true) {\n ...ArticleCollaborator_AddModal\n }\n draftCourse {\n id\n article {\n id\n }\n }\n draftLesson {\n id\n hidden\n\n section {\n id\n hidden\n\n course {\n id\n articleId\n }\n }\n }\n revision: draftRevision {\n id\n title\n description\n contentVersion\n landscapeImageUrl\n landscapeImageId\n portraitImageUrl\n portraitImageId\n tag {\n id\n name\n }\n contentType\n editorjsContent\n }\n approvedRevision {\n id\n title\n }\n currentUserCanViewRevisionLogs {\n value\n }\n currentUserCanApprove {\n value\n }\n currentUserCanSubmitForApproval {\n value\n }\n currentUserCanRequestEdits {\n value\n }\n currentUserCanChangeVisibility {\n value\n }\n currentUserCanMarkAsFeatured {\n value\n }\n currentUserCanToggleHidden {\n value\n }\n currentUserCanMarkAsPremium {\n value\n }\n currentUserCanChangeExternalShareSetting {\n value\n }\n currentUserCanArchive {\n value\n }\n }\n`)\n","export default \"__VITE_ASSET__dEuXb2q3__\"","import { useCallback, useEffect, useRef, useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useNavigate } from \"react-router-dom\"\nimport { RulesEngineEventTypeEnum } from \"~/__generated__/graphql\"\nimport { feedPath } from \"~/common/paths\"\nimport { Battery } from \"~/components/Battery\"\nimport { useRulesEngine } from \"~/rules-engine/RulesEngineContext\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { H1, H3, H6, Muted } from \"~/ui/typography\"\nimport Brain from \"~/images/icons/brain.svg?react\"\nimport { cn } from \"~/lib/utils\"\nimport { dialogContentVariants } from \"~/ui/dialog\"\nimport ReplyAnimation from \"~/images/bot-battery-reply.gif\"\nimport { Button } from \"~/ui/button\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { AhoyEventTypeEnum } from \"~/__generated__/graphql\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\nconst intentEvents = [\n \"keydown\",\n \"click\",\n \"scroll\",\n \"wheel\",\n \"mousemove\",\n \"touchstart\",\n]\n\nexport const AskTheBotScreen = () => {\n const community = useCommunity()\n const [, setMostRecentActivity] = useState(Date.now())\n const [mostRecentEventFiredAt, setMostRecentEventFiredAt] = useState(\n Date.now()\n )\n const isFiringRef = useRef(false)\n const { createRulesEngineEvent } = useRulesEngine()\n const currentUser = useCurrentUser()\n const { t } = useTranslation(\"bot\")\n const { logEvent } = useLogEvent()\n const hasLoggedEvent = useRef(false)\n\n const onUserActivity = useCallback(() => {\n setMostRecentActivity((mostRecentActivity) => {\n if (\n mostRecentEventFiredAt < mostRecentActivity - 10000 &&\n !isFiringRef.current &&\n currentUser.botBatteryBalance > 0\n ) {\n isFiringRef.current = true\n createRulesEngineEvent(RulesEngineEventTypeEnum.UserIsActiveOnBot)\n setMostRecentEventFiredAt(Date.now())\n }\n return Date.now()\n })\n }, [\n setMostRecentActivity,\n createRulesEngineEvent,\n setMostRecentEventFiredAt,\n mostRecentEventFiredAt,\n currentUser.botBatteryBalance,\n ])\n\n useEffect(() => {\n isFiringRef.current = false\n }, [mostRecentEventFiredAt])\n\n useEffect(() => {\n intentEvents.forEach((event) => {\n window.addEventListener(event, onUserActivity)\n })\n\n return () => {\n intentEvents.forEach((event) => {\n window.removeEventListener(event, onUserActivity)\n })\n }\n }, [onUserActivity])\n\n const navigate = useNavigate()\n const hasNoBattery = currentUser.botBatteryBalance <= 0\n\n useEffect(() => {\n if (hasNoBattery) {\n logEvent(AhoyEventTypeEnum.LowBatteryCtaViewed, {}, hasLoggedEvent)\n }\n }, [hasNoBattery, logEvent])\n\n if (!community?.delphiEmbedUrl) return null\n\n const onCtaClick = () => {\n logEvent(AhoyEventTypeEnum.LowBatteryCtaClicked)\n navigate(feedPath.pattern)\n }\n\n return (\n
\n \n \n
\n
\n
\n \n
\n
\n

\n {t(\"headerTitle\")}\n

\n {t(\"headerSubtitle\")}\n
\n
\n
\n \n
\n {Math.ceil(currentUser.botBatteryBalance)}%\n
\n
\n
\n
\n
\n
\n {hasNoBattery && (\n <>\n
\n \n

\n {t(\"rechargeTitle\")}\n \n

\n
\n
{t(\"rechargeSubtitle\")}
\n
{t(\"rechargeMessage\")}
\n \n
\n \n
\n
\n
\n \n )}\n \n
\n \n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { Error } from \"~/ui/Error\"\nimport {\n createSearchParams,\n useNavigate,\n useParams,\n useSearchParams,\n} from \"react-router-dom\"\nimport invariant from \"tiny-invariant\"\nimport { gql } from \"~/__generated__\"\nimport { ComposerOnSave, PostComposer } from \"~/post-composer/PostComposer\"\nimport { PageWithRightSidebar } from \"~/layouts/PageWithRightSidebar\"\nimport { FeedSidebar } from \"~/feed/FeedSidebar\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport toast from \"react-hot-toast\"\nimport { postPath } from \"~/common/paths\"\nimport { Post_CardFragment } from \"~/__generated__/graphql\"\nimport { useEffect, useState } from \"react\"\n\nexport const EditPostScreen = () => {\n const { postId } = useParams()\n invariant(postId)\n\n const [post, setPost] = useState(null)\n const [searchParams] = useSearchParams()\n\n const navigate = useNavigate()\n const { data, loading, error } = useQuery(EDIT_POST_QUERY_DOCUMENT, {\n variables: { postId },\n })\n\n useEffect(() => {\n if (data) {\n setPost(data.post)\n }\n }, [data])\n\n const [runPostUpdate, postUpdateResult] =\n useSafeMutation(POST_UPDATE_MUTATION)\n\n const afterPostPath = (postId: string) => {\n let newPath = postPath({ postId: postId })\n if (searchParams.get(\"from\") === \"channel\") {\n newPath += `?${createSearchParams({ from: \"channel\" })}`\n }\n return newPath\n }\n\n const updatePost: ComposerOnSave = async ({\n content,\n tagId,\n channelId,\n attachmentIds,\n videoUrl,\n }) => {\n const { data, errors } = await runPostUpdate({\n variables: {\n input: {\n postId,\n tagId,\n channelId,\n content,\n attachmentIds,\n videoUrl,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n return false\n } else {\n toast.success(\"Updated post\")\n invariant(data?.postUpdate.post.id)\n setPost(data.postUpdate.post)\n setTimeout(() => navigate(afterPostPath(data.postUpdate.post.id)), 100)\n return true\n }\n }\n\n if (loading) return \n if (error || !data) return \n\n return (\n }>\n {post && (\n \n )}\n \n )\n}\n\nconst EDIT_POST_QUERY_DOCUMENT = gql(`\n query EditPost($postId: ID!) {\n post(postId: $postId) {\n ...Post_Card\n }\n tags {\n ...TagConnection_Composer\n }\n }\n`)\n\nconst POST_UPDATE_MUTATION = gql(`\n mutation PostUpdate($input: PostUpdateInput!) {\n postUpdate(input: $input) {\n post {\n ...Post_Card\n }\n }\n }\n`)\n","import { useManualHrisDataContext } from \"~/merge/manualData\"\n\nimport { Dialog, DialogContent } from \"~/ui/dialog\"\n\nexport const EditDialog = ({\n dialogOpen,\n setDialogOpen,\n editDialog,\n children,\n}: {\n dialogOpen: boolean\n setDialogOpen: React.Dispatch>\n editDialog?: React.ReactNode\n children?: React.ReactNode\n}) => {\n const { resetFormToUserData } = useManualHrisDataContext()\n\n return (\n {\n if (!open) {\n // This is needed to prevent someone setting an invalid value\n // in one dialog, closing it, and then trying to submit an\n // update from another dialog.\n setDialogOpen(false)\n resetFormToUserData()\n }\n }}\n >\n {\n setDialogOpen(true)\n }}\n >\n {children ? (\n children\n ) : (\n
Manually Edit Data
\n )}\n \n {\n e.preventDefault()\n }}\n >\n {editDialog}\n \n \n )\n}\n","import { ChevronDown } from \"lucide-react\"\nimport { useManualHrisDataContext } from \"~/merge/manualData\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"~/ui/select\"\nimport { Base } from \"./Base\"\nimport { IndustryEnum } from \"~/__generated__/graphql\"\nimport { useTranslation } from \"react-i18next\"\n\nconst SelectIcon = () => {\n return \n}\n\nexport const ManualIndustry = ({\n editContext = false,\n closeDialog,\n}: {\n editContext?: boolean\n closeDialog?: () => void\n}) => {\n const { t: industries } = useTranslation(\"industries\")\n const { industry, setIndustry, onSuccessCallback } =\n useManualHrisDataContext()\n\n return (\n {\n onSuccessCallback()\n closeDialog?.()\n }}\n editContext={editContext}\n disabled={industry === undefined}\n >\n
\n Industry\n *\n
\n
\n setIndustry(value)}\n defaultValue={industry}\n >\n \n \n {industry ? industries(industry) : \"Select Industry\"}\n \n \n \n \n {Object.values(IndustryEnum).map((option) => (\n \n {industries(option)}\n \n ))}\n \n \n \n
\n \n )\n}\n","import { addQuarters, format, startOfQuarter } from \"date-fns\"\nimport { useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport {\n CompanySize,\n CurrentUserProviderQuery,\n Scalars,\n} from \"~/__generated__/graphql\"\nimport { EditDialog } from \"~/benchmarks/EditDialog\"\nimport { COMPANY_SIZES } from \"~/merge/company_sizes\"\nimport { ManualCompanySize } from \"~/merge/steps/ManualCompanySize\"\nimport { ManualIndustry } from \"~/merge/steps/ManualIndustry\"\n\nconst formatDate = (date: Scalars[\"ISO8601DateTime\"][\"input\"]) => {\n return format(date, \"MMM do, yyyy\")\n}\n\nconst formatCompanySize = (size: CompanySize) => {\n const formatted = COMPANY_SIZES.find(({ value }) => {\n return value === size\n })\n\n return formatted?.label\n}\n\nexport const Status = ({\n user,\n}: {\n user: CurrentUserProviderQuery[\"user\"]\n}) => {\n const [companySizeDialogOpen, setCompanySizeDialogOpen] = useState(false)\n const [industryDialogOpen, setIndustryDialogOpen] = useState(false)\n\n const EditCompanySizeDialog = ({\n children,\n }: {\n children: React.ReactNode\n }) => {\n return (\n setCompanySizeDialogOpen(false)}\n />\n }\n dialogOpen={companySizeDialogOpen}\n setDialogOpen={setCompanySizeDialogOpen}\n >\n {children}\n \n )\n }\n\n const EditIndustryDialog = ({ children }: { children: React.ReactNode }) => {\n return (\n setIndustryDialogOpen(false)}\n />\n }\n dialogOpen={industryDialogOpen}\n setDialogOpen={setIndustryDialogOpen}\n >\n {children}\n \n )\n }\n\n const hrisIntegration = user?.hrisIntegration\n const manualHrisData = user?.manualHrisData\n\n const lastUpdated = manualHrisData\n ? formatDate(manualHrisData.updatedAt)\n : hrisIntegration && hrisIntegration.lastSync\n ? formatDate(hrisIntegration.lastSync)\n : \"NA\"\n\n const nextUpdate = manualHrisData\n ? formatDate(startOfQuarter(addQuarters(manualHrisData.updatedAt, 1)))\n : hrisIntegration?.nextSync\n ? formatDate(hrisIntegration.nextSync)\n : \"NA\"\n\n const status = manualHrisData\n ? \"Manual\"\n : !hrisIntegration\n ? \"No Inputs\"\n : !hrisIntegration.initialSyncComplete\n ? \"Syncing\"\n : \"Connected\"\n\n const companySize = manualHrisData\n ? formatCompanySize(manualHrisData.companySize)\n : hrisIntegration?.companySize\n ? formatCompanySize(hrisIntegration.companySize)\n : \"NA\"\n\n const { t: industries } = useTranslation(\"industries\")\n const industry = manualHrisData\n ? industries(manualHrisData.industry)\n : hrisIntegration?.industry\n ? industries(hrisIntegration.industry)\n : \"NA\"\n\n return (\n <>\n
\n
Status:
\n
{status}
\n
Last Updated:
\n
{lastUpdated}
\n
Next Update:
\n
{nextUpdate}
\n
\n\n {manualHrisData ? (\n \n
\n
Company Size:
\n
{companySize}
\n
\n
\n ) : (\n
\n
Company Size:
\n
{companySize}
\n
\n )}\n\n {manualHrisData || hrisIntegration ? (\n \n
\n
Industry:
\n
{industry}
\n
\n
\n ) : (\n
\n
Industry:
\n
{industry}
\n
\n )}\n \n )\n}\n","import { useState, createContext, useContext } from \"react\"\nimport { IndustryEnum } from \"~/__generated__/graphql\"\n\ninterface FilterContextType {\n locations: string[]\n setLocations: React.Dispatch>\n industries: IndustryEnum[]\n setIndustries: React.Dispatch>\n companySizes: string[]\n setCompanySizes: React.Dispatch>\n filters: any\n setFilters: React.Dispatch>\n updateFilters: () => void\n resetFilters: () => void\n filtersExpanded: boolean\n setFiltersExpanded: React.Dispatch>\n}\n\nexport const FilterContext = createContext(null)\n\nexport interface Locations {\n [key: string]: string\n}\nexport const LOCATIONS: Locations = {\n AL: \"Alabama\",\n AK: \"Alaska\",\n AZ: \"Arizona\",\n AR: \"Arkansas\",\n CA: \"California\",\n CO: \"Colorado\",\n CT: \"Connecticut\",\n DE: \"Delaware\",\n FL: \"Florida\",\n GA: \"Georgia\",\n HI: \"Hawaii\",\n ID: \"Idaho\",\n IL: \"Illinois\",\n IN: \"Indiana\",\n IA: \"Iowa\",\n KS: \"Kansas\",\n KY: \"Kentucky\",\n LA: \"Louisiana\",\n ME: \"Maine\",\n MD: \"Maryland\",\n MA: \"Massachusetts\",\n MI: \"Michigan\",\n MN: \"Minnesota\",\n MS: \"Mississippi\",\n MO: \"Missouri\",\n MT: \"Montana\",\n NE: \"Nebraska\",\n NV: \"Nevada\",\n NH: \"New Hampshire\",\n NJ: \"New Jersey\",\n NM: \"New Mexico\",\n NY: \"New York\",\n NC: \"North Carolina\",\n ND: \"North Dakota\",\n OH: \"Ohio\",\n OK: \"Oklahoma\",\n OR: \"Oregon\",\n PA: \"Pennsylvania\",\n RI: \"Rhode Island\",\n SC: \"South Carolina\",\n SD: \"South Dakota\",\n TN: \"Tennessee\",\n TX: \"Texas\",\n UT: \"Utah\",\n VT: \"Vermont\",\n VA: \"Virginia\",\n WA: \"Washington\",\n WV: \"West Virginia\",\n WI: \"Wisconsin\",\n WY: \"Wyoming\",\n}\n\nexport const FilterProvider = ({ children }: { children: React.ReactNode }) => {\n const [locations, setLocations] = useState([])\n const [industries, setIndustries] = useState([])\n const [companySizes, setCompanySizes] = useState([])\n const [filters, setFilters] = useState({ locations: [], industries: [] })\n const [filtersExpanded, setFiltersExpanded] = useState(false)\n\n const resetFilters = () => {\n setLocations([])\n setIndustries([])\n setCompanySizes([])\n\n setFilters({\n industries: [],\n locations: [],\n companySizes: [],\n })\n }\n\n const updateFilters = () => {\n setFilters({\n industries: industries,\n locations: locations,\n companySizes: companySizes,\n })\n }\n\n return (\n \n {children}\n \n )\n}\n\nexport const useFilterContext = () => {\n const filterContext = useContext(FilterContext)\n\n if (!filterContext) {\n throw new Error(\n \"No FilterContext.Provider found when calling useFiltersContext.\"\n )\n }\n\n return filterContext\n}\n","import * as React from \"react\"\nimport { cn } from \"~/lib/utils\"\n\nimport { Check, X, ChevronsUpDown } from \"lucide-react\"\nimport { Button } from \"~/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n} from \"~/ui/command\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"~/ui/popover\"\nimport { Badge } from \"~/ui/badge\"\n\nexport type OptionType = {\n label: string\n value: string\n}\n\ninterface MultiSelectProps {\n options: OptionType[]\n selected: string[]\n onChange: React.Dispatch>\n placeholder?: string\n className?: string\n disabled?: boolean\n}\n\nfunction MultiSelect({\n options,\n selected,\n onChange,\n className,\n placeholder,\n disabled = false,\n ...props\n}: MultiSelectProps) {\n const [open, setOpen] = React.useState(false)\n\n const handleUnselect = (item: string) => {\n onChange(selected.filter((i) => i !== item))\n }\n\n const labelMap = React.useMemo(() => {\n return options.reduce((acc: { [key: string]: string }, option) => {\n acc[option.value] = option.label\n\n return acc\n }, {})\n }, [options])\n\n return (\n \n \n 1 ? \"h-full\" : \"h-full\"\n }`}\n onClick={() => setOpen(!open)}\n >\n
\n {selected.length === 0 ? (\n {placeholder}\n ) : (\n selected.map((item) => (\n handleUnselect(item)}\n >\n {labelMap[item]}\n {\n if (e.key === \"Enter\") {\n handleUnselect(item)\n }\n }}\n onMouseDown={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n onClick={() => handleUnselect(item)}\n >\n \n \n \n ))\n )}\n
\n \n \n
\n \n \n \n No item found.\n \n {options.map((option) => (\n {\n onChange(\n selected.includes(option.value)\n ? selected.filter((item) => item !== option.value)\n : [...selected, option.value]\n )\n setOpen(true)\n }}\n >\n \n {option.label}\n \n ))}\n \n \n \n
\n )\n}\n\nexport { MultiSelect }\n","import * as React from \"react\";\nconst SvgAddCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22Z\", stroke: \"currentColor\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 12H16\", stroke: \"currentColor\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 16V8\", stroke: \"currentColor\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgAddCircle;\n","import * as React from \"react\";\nconst SvgMinusCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.9219 22C17.4219 22 21.9219 17.5 21.9219 12C21.9219 6.5 17.4219 2 11.9219 2C6.42188 2 1.92188 6.5 1.92188 12C1.92187 17.5 6.42188 22 11.9219 22Z\", stroke: \"currentColor\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M7.92188 12H15.9219\", stroke: \"currentColor\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgMinusCircle;\n","import clsx from \"clsx\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { COMPANY_SIZES } from \"~/merge/company_sizes\"\nimport { useFilterContext } from \"~/benchmarks/filterContext\"\nimport { MultiSelect } from \"~/common/MultiSelect\"\nimport AddCircle from \"../images/icons/add-circle.svg?react\"\nimport MinusCirlce from \"../images/icons/minus-circle.svg?react\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { AhoyEventTypeEnum, IndustryEnum } from \"~/__generated__/graphql\"\nimport { useTranslation } from \"react-i18next\"\nimport { useMemo } from \"react\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\nconst companySizeOptions = COMPANY_SIZES.map(({ value, label }) => {\n return { value: value, label: label }\n})\n\nexport const Filters = () => {\n const {\n resetFilters,\n industries,\n setIndustries,\n companySizes,\n setCompanySizes,\n updateFilters,\n filtersExpanded,\n setFiltersExpanded,\n } = useFilterContext()\n const { t: industryTranslation } = useTranslation(\"industries\")\n const currentUser = useCurrentUser()\n\n const disabled = !currentUser.hrisIntegration && !currentUser.manualHrisData\n\n const handleExpandClick = () => {\n setFiltersExpanded(!filtersExpanded)\n }\n\n const { logEvent } = useLogEvent()\n\n const industryOptions = useMemo(() => {\n return Object.values(IndustryEnum).map((industry) => {\n return { value: industry, label: industryTranslation(industry) }\n })\n }, [industryTranslation])\n\n return (\n <>\n \n \n
\n Filter Data\n \n {filtersExpanded ? : }\n
\n \n
\n \n \n setIndustries(newValue as IndustryEnum[])}\n placeholder=\"Industries\"\n className=\"w-full\"\n />\n \n {\n updateFilters()\n logEvent(AhoyEventTypeEnum.BenchmarkFilterApplied, {\n industries: industries.join(\", \"),\n company_sizes: companySizes.join(\", \"),\n })\n }}\n >\n Filter\n \n\n {\n logEvent(AhoyEventTypeEnum.BenchmarkFilterCleared, {\n industries: industries.join(\", \"),\n company_sizes: companySizes.join(\", \"),\n })\n resetFilters()\n }}\n >\n Clear Filter\n \n \n \n
\n \n )\n}\n","import { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { CardFeed } from \"~/common/CardFeed\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { Status } from \"~/benchmarks/Status\"\nimport { Filters } from \"~/benchmarks/Filters\"\nimport { MergeLinkButton } from \"~/merge/MergeLinkButton\"\nimport clsx from \"clsx\"\n\nexport const BenchmarkSidebar = () => {\n const currentUser = useCurrentUser()\n\n const noHrisIntegration =\n !currentUser.manualHrisData && !currentUser.hrisIntegration\n const showConnect = currentUser.manualHrisData || noHrisIntegration\n const showManualSetup = noHrisIntegration\n\n return (\n \n \n\n \n \n \n
\n Details\n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n )\n}\n","import { Status } from \"~/benchmarks/Status\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { Filters } from \"~/benchmarks/Filters\"\nimport { CardFeed } from \"~/common/CardFeed\"\nimport { ChartFeed } from \"~/benchmarks/Charts\"\nimport { BenchmarksQuery } from \"~/__generated__/graphql\"\n\nexport const SmallScreenCharts = ({\n manualData = false,\n data,\n}: {\n manualData: boolean\n data: BenchmarksQuery\n}) => {\n const currentUser = useCurrentUser()\n\n return (\n
\n \n
\n

\n Details\n

\n \n
\n \n \n
\n
\n )\n}\n","import * as React from \"react\";\nconst SvgInfo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 14, height: 14, viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 7, cy: 7, r: 6, transform: \"rotate(180 7 7)\", stroke: \"#999999\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M6.99922 9.4L6.99922 7\", stroke: \"#999999\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M6.99922 4.6L6.99922 4.3\", stroke: \"#999999\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgInfo;\n","import { useEffect, useState } from \"react\"\nimport { BarChart } from \"./BarChart\"\nimport { CardFeed } from \"~/common/CardFeed\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { BENCHMARK_QUERY_DOCUMENT } from \"./benchmarkQuery\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\nimport { SmallScreenCharts } from \"~/benchmarks/SmallScreenCharts\"\n\nimport { useQuery } from \"@apollo/client\"\n\nimport { useFilterContext } from \"~/benchmarks/filterContext\"\n\nimport { ManualTurnover } from \"~/merge/steps/ManualTurnover\"\nimport { ManualTenure } from \"~/merge/steps/ManualTenure\"\nimport { ManualRetention } from \"~/merge/steps/ManualRetention\"\nimport { ManualCostPerEmployee } from \"~/merge/steps/ManualCostPerEmployee\"\nimport { BenchmarksQuery } from \"~/__generated__/graphql\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\nimport { Error } from \"~/ui/Error\"\n\nimport { EditDialog } from \"~/benchmarks/EditDialog\"\nimport Info from \"../images/icons/info.svg?react\"\n\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"~/ui/tooltip\"\n\nconst CardHeaderWithToolTip = ({\n title,\n content,\n editDialog,\n manualData = false,\n dialogOpen,\n setDialogOpen,\n}: {\n title: string\n content: string\n manualData: boolean\n editDialog?: React.ReactNode\n dialogOpen: boolean\n setDialogOpen: React.Dispatch>\n}) => {\n return (\n \n
\n
\n {title}\n \n \n \n
\n \n
\n
\n \n {content}\n \n
\n
\n
\n {manualData && (\n \n )}\n
\n
\n )\n}\n\nexport const ChartFeed = ({\n data,\n manualData = false,\n}: {\n data: BenchmarksQuery\n manualData: boolean\n}) => {\n const [turnoverDialogOpen, setTurnoverDialogOpen] = useState(false)\n const [retentionDialogOpen, setRetentionDialogOpen] = useState(false)\n const [costPerEmployttDialogOpen, setCostPerEmployeeDialogOpen] =\n useState(false)\n const [tenureDialogOpen, setTenureDialogOpen] = useState(false)\n\n return (\n <>\n \n setTurnoverDialogOpen(false)}\n />\n }\n title=\"Turnover\"\n content=\"The percent of employees who have left your organization vs. average % of employees that have left peer Safe Space members’ organizations over the last six months.\"\n />\n \n `${value}%`}\n />\n \n \n\n \n setCostPerEmployeeDialogOpen(false)}\n />\n }\n title=\"Cost Per Employee\"\n content=\"Your company’s average cost per employee inclusive of salary, taxes, and benefits vs. average cost of employee at peer Safe Space members’ organizations in the last six months. \"\n />\n \n `$${value}k`}\n />\n \n \n\n \n setTenureDialogOpen(false)}\n />\n }\n title=\"Tenure (in months)\"\n content=\"The average number of months employees has been at your organization vs. average number of months employees have been at peer Safe Space members’ organizations in the last six months.\"\n />\n \n \n \n \n\n \n setRetentionDialogOpen(false)}\n />\n }\n title=\"Retention Rate\"\n content=\"Your organization’s retention rate vs. the average retention rate of peer Safe Space members’ in the last six months\"\n />\n \n `${value}%`}\n />\n \n \n \n )\n}\n\nexport const Charts = () => {\n const { filters } = useFilterContext()\n const currentUser = useCurrentUser()\n\n const { data, loading, error, refetch } = useQuery(BENCHMARK_QUERY_DOCUMENT, {\n variables: {\n locations: filters.locations,\n industries: filters.industries,\n companySizes: filters.companySizes,\n },\n })\n\n useEffect(() => {\n refetch()\n }, [currentUser, refetch])\n\n const manualData = !!currentUser.manualHrisData\n\n if (!data && loading)\n return (\n
\n Loading benchmarks...\n
\n )\n if (error || !data) return \n\n return (\n <>\n
\n \n
\n
\n \n \n \n
\n \n )\n}\n","import { Button } from \"~/ui/button\"\nimport { feedPath } from \"~/common/paths\"\nimport Cup from \"../images/icons/cup.svg?react\"\nimport { Link } from \"react-router-dom\"\n\nexport const Syncing = () => {\n return (\n
\n
\n \n
\n

\n We are integrating your HRiS data\n

\n
\n This process usually takes anywhere from 5 to 10 minutes. Feel free to\n explore the Community Feed while we load your content in the background.\n
\n\n \n
\n )\n}\n","import { useEffect, useState } from \"react\"\nimport { CurrentUserProviderQuery } from \"~/__generated__/graphql\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { PageWithRightSidebar } from \"~/layouts/PageWithRightSidebar\"\n\nimport { BenchmarkSidebar } from \"~/benchmarks/BenchmarkSidebar\"\nimport { Charts } from \"~/benchmarks/Charts\"\nimport { EmptyState } from \"~/benchmarks/EmptyState\"\nimport { Syncing } from \"~/benchmarks/Syncing\"\n\nimport { useNavigate } from \"react-router-dom\"\nimport { FilterProvider } from \"~/benchmarks/filterContext\"\nimport { feedPath } from \"~/common/paths\"\nimport { useCommunityFeatures } from \"~/community/useCommunity\"\nimport { ManualHrisDataProvider } from \"~/merge/manualData\"\n\nenum PageState {\n NotConnected = \"NOT_CONNECTED\",\n Syncing = \"SYNCING\",\n Synced = \"SYNCED\",\n Loading = \"LOADING\",\n ManualHrisData = \"MANUAL_HRIS_DATA\",\n}\n\nconst stateFromUser = (user: CurrentUserProviderQuery[\"user\"]) => {\n if (!user) {\n return PageState.Loading\n }\n\n if (user.manualHrisData) {\n return PageState.ManualHrisData\n }\n\n if (user.hrisIntegration) {\n if (!user.hrisIntegration.initialSyncComplete) {\n return PageState.Syncing\n } else {\n return PageState.Synced\n }\n } else {\n return PageState.NotConnected\n }\n}\n\nconst getPage = (state: PageState) => {\n switch (state) {\n case PageState.Loading:\n return <>\n case PageState.NotConnected:\n return \n case PageState.Syncing:\n return \n case PageState.Synced:\n return \n case PageState.ManualHrisData:\n return \n }\n}\n\nexport const BenchmarkScreen = () => {\n const currentUser = useCurrentUser()\n const [pageState, setPageState] = useState(stateFromUser(currentUser))\n const features = useCommunityFeatures()\n const navigate = useNavigate()\n\n useEffect(() => {\n setPageState(stateFromUser(currentUser))\n }, [currentUser])\n\n useEffect(() => {\n if (!features.Benchmark) {\n navigate(feedPath({}))\n }\n }, [features.Benchmark, navigate])\n\n if (!features.Benchmark) {\n return null\n }\n\n return (\n \n \n {pageState === PageState.Syncing ? (\n
{getPage(pageState)}
\n ) : (\n }>\n {getPage(pageState)}\n \n )}\n
\n
\n )\n}\n","import { Transition } from \"@headlessui/react\"\nimport {\n BarChart,\n BookMarked,\n Bug,\n CalendarDays,\n CircleCheck,\n CircleHelp,\n CircleUserRound,\n FlaskConical,\n Hammer,\n HeartHandshake,\n Layout,\n Mail,\n MessageSquareCode,\n MessagesSquare,\n Search,\n Users,\n} from \"lucide-react\"\nimport { useEffect } from \"react\"\nimport { Outlet, useLocation, useNavigate } from \"react-router-dom\"\nimport { Community, CommunitySlug, FeatureEnum } from \"~/__generated__/graphql\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { ChannelsProvider } from \"~/common/ChannelsProvider\"\nimport {\n adminAdministratorsPath,\n adminApplicationsPath,\n adminAutoMessagesPath,\n adminChannelsPath,\n adminDashboardPath,\n adminDebugSettingsPath,\n adminEmailSettingsPath,\n adminExperimentsPath,\n adminGroupsPath,\n adminHrisPath,\n adminIntroductionsPath,\n adminLibraryPath,\n adminMembersPath,\n adminLeadsPath,\n adminProEventsPath,\n adminResearchToolPath,\n adminScreenVariantsPath,\n feedPath,\n} from \"~/common/paths\"\nimport { CommunityLogo } from \"~/community/CommunityLogo\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { UserDialogContextProvider } from \"~/directory/UserDialogContext\"\nimport { cn } from \"~/lib/utils\"\nimport { Link } from \"~/ui/Link\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n useSidebar,\n} from \"~/ui/sidebar\"\nimport { SimpleTooltip } from \"~/ui/SimpleTooltip\"\n\nexport const AdminLayout = () => {\n const navigate = useNavigate()\n const currentUser = useCurrentUser()\n\n useEffect(() => {\n if (!currentUser.admin) {\n navigate(feedPath.pattern)\n }\n }, [currentUser, navigate])\n\n useEffect(() => {\n document.body.dataset.community = \"admin\"\n }, [])\n\n return (\n
\n \n \n \n \n
\n \n\n
\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nconst navigation = [\n {\n label: \"Navigation\",\n items: [\n {\n label: \"Dashboard\",\n icon: Layout,\n to: adminDashboardPath.pattern,\n },\n {\n label: \"Research Tool\",\n icon: Search,\n to: adminResearchToolPath({ \"activeTab?\": \"\" }),\n show: ({ community }: { community: Pick }) => {\n return community?.slug === CommunitySlug.Boardroom\n },\n },\n ],\n },\n {\n label: \"User Management\",\n items: [\n {\n label: \"Applications\",\n icon: CircleCheck,\n to: adminApplicationsPath({ \"activeTab?\": \"\" }),\n },\n {\n label: \"Members\",\n icon: Users,\n to: adminMembersPath({ \"activeTab?\": \"all\" }),\n },\n {\n label: \"Leads\",\n icon: CircleHelp,\n to: adminLeadsPath.pattern,\n },\n {\n label: \"Administrators\",\n icon: CircleUserRound,\n to: adminAdministratorsPath.pattern,\n },\n ],\n },\n {\n label: \"Member Experience\",\n items: [\n {\n label: \"Auto Messages\",\n icon: MessageSquareCode,\n to: adminAutoMessagesPath({ \"activeTab?\": \"\" }),\n },\n {\n label: \"Introductions\",\n icon: HeartHandshake,\n to: adminIntroductionsPath.pattern,\n },\n {\n label: \"Events\",\n icon: CalendarDays,\n to: adminProEventsPath.pattern,\n },\n {\n label: \"Channels & Groups\",\n icon: MessagesSquare,\n to: adminChannelsPath.pattern,\n isActive: (location: string) => {\n return (\n location.startsWith(adminChannelsPath.pattern) ||\n location.startsWith(adminGroupsPath.pattern)\n )\n },\n },\n {\n label: \"Library\",\n icon: BookMarked,\n to: adminLibraryPath.pattern,\n },\n {\n label: \"HRIS\",\n icon: BarChart,\n to: adminHrisPath.pattern,\n show: ({ community }: { community: Pick }) => {\n return community.features?.includes(FeatureEnum.Benchmark)\n },\n },\n {\n label: \"Experiments\",\n icon: FlaskConical,\n to: adminExperimentsPath.pattern,\n },\n ],\n },\n {\n label: \"Settings\",\n items: [\n {\n label: \"Debug Settings\",\n icon: Bug,\n to: adminDebugSettingsPath.pattern,\n },\n {\n label: \"Manage Emails\",\n icon: Mail,\n to: adminEmailSettingsPath.pattern,\n },\n {\n label: \"Screen Variants\",\n icon: Hammer,\n to: adminScreenVariantsPath.pattern,\n },\n ],\n },\n]\n\nconst AdminSidebar = () => {\n const community = useCommunity()\n const location = useLocation()\n const { state } = useSidebar()\n const ccls = useCommunityClassname()\n\n const isActive = (item: {\n to: string\n isActive?: (location: string) => boolean\n }) => {\n if (item.isActive) {\n return item.isActive(location.pathname)\n } else {\n return location.pathname.startsWith(item.to)\n }\n }\n\n return (\n \n \n \n \n
\n \n
\n \n \n
\n \n
\n \n \n
\n \n {navigation.map((group) => (\n \n \n {group.label}\n \n \n \n {group.items\n .filter((item) => !item.show || item.show({ community }))\n .map((item) => (\n \n \n {item.label === \"Research Tool\" ? (\n \n \n \n \n \n {item.label}\n \n \n ) : (\n \n \n \n \n \n {item.label}\n \n \n )}\n \n \n ))}\n \n \n \n ))}\n \n \n
\n )\n}\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { z } from \"zod\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Button } from \"~/ui/button\"\nimport { useEffect } from \"react\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport toast from \"react-hot-toast\"\nimport { USER_ADMIN_UPDATE_MUTATION } from \"~/screens/admin/AdminMembersScreen\"\n\nconst formSchema = z.object({\n email: z.string().regex(/^[^@\\s]+@[^@\\s]+$/),\n})\n\nexport type ChangeEmailFormValues = z.infer\n\nexport const ChangeEmailModal = ({\n isOpen,\n setIsOpen,\n userId,\n email,\n name,\n}: {\n isOpen: boolean\n setIsOpen: (value: boolean) => void\n email: string\n userId: string\n name?: string | null\n}) => {\n const form = useForm>({\n resolver: zodResolver(formSchema),\n defaultValues: {\n email: email,\n },\n })\n\n const [runUserUpdate, userUpdateResult] = useSafeMutation(\n USER_ADMIN_UPDATE_MUTATION\n )\n\n const onSubmit = async (values: ChangeEmailFormValues) => {\n const { errors } = await runUserUpdate({\n variables: { input: { userId, email: values.email } },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\"Updated user email address\")\n setIsOpen(false)\n }\n }\n\n useEffect(() => {\n if (isOpen === false) form.reset()\n }, [isOpen, form])\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n
Update Email
\n
\n Update a user's email. Stripe and Sailthru will receive these updates.\n
\n\n
\n \n (\n \n {name && `${name}'s `} email\n
\n \n \n \n
\n \n
\n )}\n />\n\n
\n\n
\n setIsOpen(false)}\n variant=\"outline\"\n >\n Cancel\n \n \n Save Email\n \n
\n \n \n \n \n )\n}\n","import { UserSortEnum } from \"~/__generated__/graphql\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"~/ui/select\"\nimport { SearchInput } from \"~/ui/SearchInput\"\n\ntype UsersSearchProps = {\n searchTerm: string\n setSearchTerm: (searchTerm: string) => void\n sort: UserSortEnum\n setSort: (sort: UserSortEnum) => void\n sortOptions?: UserSortEnum[]\n}\n\nexport const UsersSearch = ({\n searchTerm,\n setSearchTerm,\n sort,\n setSort,\n sortOptions = [\n UserSortEnum.Recent,\n UserSortEnum.Name,\n UserSortEnum.ApplicationPriority,\n ],\n}: UsersSearchProps) => {\n return (\n
\n
\n \n
\n {sortOptions.length > 1 && (\n
\n setSort(value as UserSortEnum)}\n value={sort}\n >\n \n \n \n \n {sortOptions.map((option) => (\n \n {option === UserSortEnum.ApplicationPriority &&\n \"Application Priority\"}\n {option === UserSortEnum.Name && \"Name (A-Z)\"}\n {option === UserSortEnum.NameReverse && \"Name (Z-A)\"}\n {option === UserSortEnum.Recent && \"Recent\"}\n \n ))}\n \n \n
\n )}\n
\n )\n}\n","import {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Control, FieldPath, FieldValues } from \"react-hook-form\"\nimport { Popover, PopoverTrigger } from \"~/ui/popover\"\nimport { PopoverContent } from \"@radix-ui/react-popover\"\nimport { Command, CommandGroup, CommandInput, CommandList } from \"~/ui/command\"\nimport { CommandEmpty, CommandItem } from \"cmdk\"\nimport { Check, ChevronDown } from \"lucide-react\"\nimport { cn } from \"~/lib/utils\"\nimport { useState } from \"react\"\n\ntype SelectEntry = {\n label: string\n value: string\n}\n\nexport const SearchableSelectField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>({\n control,\n name,\n description,\n label,\n labelClassName,\n containerClassName,\n required,\n selectEntries,\n placeholder,\n disabled,\n}: {\n label: string\n labelClassName?: string\n containerClassName?: string\n description?: string\n control: Control | undefined\n name: TName\n required?: boolean\n selectEntries: SelectEntry[]\n placeholder?: string\n disabled?: boolean\n}) => {\n const [popoverOpen, setPopoverOpen] = useState(false)\n\n return (\n (\n \n \n {label}\n \n\n \n \n \n span]:line-clamp-1 cursor-pointer\"\n )}\n >\n
\n {\n selectEntries.find((entry) => entry.value === field.value)\n ?.label\n }\n
\n \n
\n \n \n \n \n \n \n No results found.\n \n {selectEntries.map((entry) => (\n {\n field.onChange(entry.value)\n setPopoverOpen(false)\n }}\n className=\"flex items-center gap-2 py-2 hover:bg-slate-100 rounded cursor-pointer\"\n >\n \n {entry.label}\n \n ))}\n \n \n \n \n \n\n {description && {description}}\n \n \n )}\n />\n )\n}\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { camelCase } from \"change-case\"\nimport { useMemo } from \"react\"\nimport { FormProvider, SubmitHandler, useForm } from \"react-hook-form\"\nimport { useTranslation } from \"react-i18next\"\nimport { z } from \"zod\"\nimport {\n ApplicationFieldEnum,\n FitProfileInput,\n IndustryEnum,\n JobFunctionEnum,\n User_CurrentUserFragment,\n VerticalEnum,\n} from \"~/__generated__/graphql\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { USER_UPDATE_MUTATION } from \"~/common/userUpdateMutation\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { SearchableSelectField } from \"~/components/forms/SearchableSelectField\"\nimport { SelectField } from \"~/components/forms/SelectField\"\nimport { TextField } from \"~/components/forms/TextField\"\nimport { Button } from \"~/ui/button\"\nimport { Card } from \"~/ui/card\"\n\nexport const useMissingOnboardingExperienceFields = () => {\n const currentUser = useCurrentUser()\n const { applicationFields: fields } = useCommunity()\n\n const missingFields = useMemo(() => {\n if (!currentUser || !currentUser.fitProfile) {\n return fields\n }\n\n return fields.filter((field) => {\n const fitProfileField = camelCase(\n field\n ) as keyof typeof currentUser.fitProfile\n return !currentUser.fitProfile![fitProfileField]\n })\n }, [currentUser, fields])\n\n return missingFields\n}\n\nconst experienceFormSchema = z\n .object({\n yearsOfExperience: z.string(),\n yearsOfExperienceRequired: z.boolean(),\n industry: z.string().optional(),\n industryRequired: z.boolean(),\n linkedinProfileUrl: z.string().optional(),\n linkedinProfileUrlRequired: z.boolean(),\n companySize: z.string().optional(),\n companySizeRequired: z.boolean(),\n vertical: z.string().optional(),\n verticalRequired: z.boolean(),\n jobFunction: z.string().optional(),\n jobFunctionRequired: z.boolean(),\n })\n .superRefine((data, ctx) => {\n const requirementKeys = Object.keys(data).filter(\n // @ts-expect-error zod types are not correct\n (k) => k.endsWith(\"Required\") && data[k]\n )\n requirementKeys.forEach((requirementKey) => {\n const associatedPath = requirementKey.replace(/Required$/, \"\")\n // @ts-expect-error zod types are not correct\n const pathData = data[associatedPath]\n if (!pathData || pathData.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"This field is required\",\n path: [associatedPath],\n })\n }\n })\n })\ntype ExperienceFormValues = z.infer\n\ninterface OnboardingExperienceQuestionsProps {\n onSave: (formValues: ExperienceFormValues) => void\n footer?: (loading: boolean) => React.ReactNode\n withCard?: boolean\n fitProfileDefaults?: User_CurrentUserFragment[\"fitProfile\"]\n onlyMissingFields?: boolean\n}\n\nexport const OnboardingExperienceQuestions = ({\n onSave,\n footer,\n withCard = true,\n fitProfileDefaults,\n onlyMissingFields = false,\n}: OnboardingExperienceQuestionsProps) => {\n const [runUserUpdate, { loading }] = useSafeMutation(USER_UPDATE_MUTATION)\n const { applicationFields: fields } = useCommunity()\n const { t } = useTranslation(\"onboarding\")\n const { t: industries } = useTranslation(\"industries\")\n const { t: jobFunctions } = useTranslation(\"job_functions\")\n const { t: verticals } = useTranslation(\"verticals\")\n\n const defaultValues: ExperienceFormValues = {\n yearsOfExperience: fitProfileDefaults?.yearsOfExperience || \"\",\n yearsOfExperienceRequired: fields.includes(\n ApplicationFieldEnum.YearsOfExperience\n ),\n industry: fitProfileDefaults?.industry || \"\",\n industryRequired: fields.includes(ApplicationFieldEnum.Industry),\n linkedinProfileUrl: fitProfileDefaults?.linkedinProfileUrl || \"\",\n linkedinProfileUrlRequired: fields.includes(\n ApplicationFieldEnum.LinkedinProfileUrl\n ),\n companySize: fitProfileDefaults?.companySize || \"\",\n companySizeRequired: fields.includes(ApplicationFieldEnum.CompanySize),\n vertical: fitProfileDefaults?.vertical || \"\",\n verticalRequired: fields.includes(ApplicationFieldEnum.Vertical),\n jobFunction: fitProfileDefaults?.jobFunction || \"\",\n jobFunctionRequired: fields.includes(ApplicationFieldEnum.JobFunction),\n }\n const form = useForm({\n defaultValues,\n resolver: zodResolver(experienceFormSchema),\n })\n\n const onSubmit: SubmitHandler = async (formData) => {\n const fitProfile: FitProfileInput = {}\n if (fields.includes(ApplicationFieldEnum.YearsOfExperience))\n fitProfile.yearsOfExperience = formData.yearsOfExperience\n if (fields.includes(ApplicationFieldEnum.Industry))\n fitProfile.industry = formData.industry as IndustryEnum\n if (fields.includes(ApplicationFieldEnum.LinkedinProfileUrl))\n fitProfile.linkedinProfileUrl = formData.linkedinProfileUrl\n if (fields.includes(ApplicationFieldEnum.CompanySize))\n fitProfile.companySize = formData.companySize\n if (fields.includes(ApplicationFieldEnum.Vertical))\n fitProfile.vertical = formData.vertical as VerticalEnum\n if (fields.includes(ApplicationFieldEnum.JobFunction))\n fitProfile.jobFunction = formData.jobFunction as JobFunctionEnum\n\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n fitProfile,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n return false\n } else {\n onSave(formData)\n }\n }\n\n const missingFields = useMissingOnboardingExperienceFields()\n\n const { displayedFields, hiddenFields } = useMemo(() => {\n return {\n displayedFields: onlyMissingFields ? missingFields : fields,\n hiddenFields: onlyMissingFields\n ? fields.filter((field) => !missingFields.includes(field))\n : [],\n }\n }, [fields, missingFields, onlyMissingFields])\n\n const Comp = withCard ? Card : \"div\"\n\n return (\n \n
\n \n {displayedFields.map((field) => {\n switch (field) {\n case ApplicationFieldEnum.YearsOfExperience:\n return (\n ({\n label: option,\n value: option,\n })\n )}\n />\n )\n case ApplicationFieldEnum.CompanySize:\n return (\n ({\n label: option,\n value: option,\n }))}\n />\n )\n case ApplicationFieldEnum.Industry:\n return (\n ({\n label: industries(option),\n value: option,\n })\n )}\n />\n )\n case ApplicationFieldEnum.JobFunction:\n return (\n ({\n label: jobFunctions(option),\n value: option,\n })\n )}\n />\n )\n case ApplicationFieldEnum.Vertical:\n return (\n ({\n label: verticals(option),\n value: option,\n })\n )}\n />\n )\n case ApplicationFieldEnum.LinkedinProfileUrl:\n return (\n \n )\n default:\n return null\n }\n })}\n\n {hiddenFields.map((field) => (\n \n ))}\n \n\n {footer ? (\n footer(loading)\n ) : (\n
\n \n
\n )}\n
\n
\n )\n}\n\nexport const YEARS_OF_EXPERIENCE_OPTIONS = [\n \"<1\",\n \"1 - 4\",\n \"5 - 10\",\n \"11 - 15\",\n \"15+\",\n]\n\nexport const COMPANY_SIZE_OPTIONS = [\n \"1 - 10\",\n \"11 - 50\",\n \"51 - 250\",\n \"251 - 1k\",\n \"1k - 5k\",\n \"5k - 50k\",\n \"50k - 100k\",\n]\n","import { useLazyQuery, useQuery } from \"@apollo/client\"\nimport { Check, ChevronsUpDown, X } from \"lucide-react\"\nimport { useEffect, useMemo, useState } from \"react\"\nimport { useDebounce } from \"use-debounce\"\nimport { gql } from \"~/__generated__\"\nimport {\n CommunitySlug,\n IndustryEnum,\n JobFunctionEnum,\n Place_FilterFragment,\n StripeSubscriptionStatusEnum,\n Tag,\n Tier,\n VerticalEnum,\n} from \"~/__generated__/graphql\"\nimport { TAGS_QUERY_DOCUMENT } from \"~/common/queries\"\nimport { cn } from \"~/lib/utils\"\nimport { Badge } from \"~/ui/badge\"\nimport { Button, buttonVariants } from \"~/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n} from \"~/ui/command\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"~/ui/popover\"\nimport { UserTableFilter } from \"./UsersTable\"\nimport {\n COMPANY_SIZE_OPTIONS,\n YEARS_OF_EXPERIENCE_OPTIONS,\n} from \"~/onboarding/OnboardingExperienceQuestions\"\nimport { useTiers } from \"~/tiers/TiersProvider\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"~/ui/select\"\nimport { useTranslation } from \"react-i18next\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\n\ntype UsersFiltersProps = {\n enabledFilters: UserTableFilter[]\n placeFilter: Partial | undefined\n setPlaceFilter: (\n placeFilter: Partial | undefined\n ) => void\n subscriptionStatusFilter: StripeSubscriptionStatusEnum | undefined\n setSubscriptionStatusFilter: (\n subscriptionStatusFilter: StripeSubscriptionStatusEnum | undefined\n ) => void\n expertisesFilter: Partial[]\n setExpertisesFilter: (expertiseFilter: Partial[]) => void\n interestsFilter: Partial[]\n setInterestsFilter: (interestsFilter: Partial[]) => void\n companySizeFilter?: string\n setCompanySizeFilter: (companySizeFilter?: string) => void\n tierIdFilter?: Tier[\"id\"]\n setTierIdFilter: (tierIdFilter?: Tier[\"id\"]) => void\n applicationStateFilter?: \"completed\" | \"not_completed\" | \"not_started\"\n setApplicationStateFilter: (\n applicationStateFilter?: \"completed\" | \"not_completed\" | \"not_started\"\n ) => void\n industryFilter?: IndustryEnum\n setIndustryFilter: (industryFilter?: IndustryEnum) => void\n verticalFilter?: VerticalEnum\n setVerticalFilter: (verticalFilter?: VerticalEnum) => void\n jobFunctionFilter?: JobFunctionEnum\n setJobFunctionFilter: (jobFunctionFilter?: JobFunctionEnum) => void\n yearsOfExperienceFilter?: string\n setYearsOfExperienceFilter: (yearsOfExperienceFilter?: string) => void\n}\n\nexport const PlaceFilter = ({\n placeFilter,\n setPlaceFilter,\n}: Pick) => {\n const [open, setOpen] = useState(false)\n const [query, setQuery] = useState(\"\")\n\n const [debouncedQuery] = useDebounce(query, 300)\n\n const { data, loading } = useQuery(PLACES_QUERY_DOCUMENT, {\n variables: {\n query: debouncedQuery,\n },\n fetchPolicy: \"no-cache\",\n })\n const places = useMemo(() => data?.places.nodes ?? [], [data])\n\n useEffect(() => {\n if (!data) return\n\n if (placeFilter?.id && !placeFilter.full) {\n const hydratedPlace = places.find((place) => place.id === placeFilter.id)\n if (hydratedPlace) {\n setPlaceFilter(hydratedPlace)\n }\n }\n }, [data, placeFilter, places, setPlaceFilter])\n\n const onSelect = (place: Place_FilterFragment) => {\n setPlaceFilter(place)\n setOpen(false)\n }\n\n const clear = (e: Pick) => {\n e.preventDefault()\n e.stopPropagation()\n setPlaceFilter(undefined)\n }\n\n const [fetchPlace] = useLazyQuery(PLACE_QUERY_DOCUMENT)\n const [placeName, setPlaceName] = useState(placeFilter?.full || \"\")\n\n useEffect(() => {\n if (placeFilter?.full) {\n setPlaceName(placeFilter.full)\n } else if (placeFilter?.id) {\n ;(async () => {\n const { data } = await fetchPlace({\n variables: { id: placeFilter.id! },\n })\n setPlaceName(data?.place?.full || \"\")\n })()\n }\n }, [placeFilter, fetchPlace])\n\n const ccls = useCommunityClassname()\n\n return (\n \n \n \n \n {placeFilter ? (\n <>{placeName || }\n ) : (\n \"Location\"\n )}\n \n\n
\n \n \n
\n\n \n \n \n
\n \n \n \n \n {loading ? \"Loading...\" : \"No locations found\"}\n \n \n {places.map((place) => (\n onSelect(place)}>\n \n {place.full}\n \n ))}\n \n \n \n
\n )\n}\n\nconst PLACE_QUERY_DOCUMENT = gql(`\n query Place($id: ID!) {\n place(placeId: $id) {\n ...Place_Filter\n }\n }\n`)\n\nconst SUBSCRIPTION_STATUSES: StripeSubscriptionStatusEnum[] = [\n StripeSubscriptionStatusEnum.Active,\n StripeSubscriptionStatusEnum.Canceled,\n StripeSubscriptionStatusEnum.Incomplete,\n StripeSubscriptionStatusEnum.IncompleteExpired,\n StripeSubscriptionStatusEnum.PastDue,\n StripeSubscriptionStatusEnum.Trialing,\n StripeSubscriptionStatusEnum.Unpaid,\n]\n\nconst SubscriptionStatusFilter = ({\n subscriptionStatusFilter,\n setSubscriptionStatusFilter,\n}: Pick<\n UsersFiltersProps,\n \"subscriptionStatusFilter\" | \"setSubscriptionStatusFilter\"\n>) => {\n const [open, setOpen] = useState(false)\n\n const onSelect = (status: StripeSubscriptionStatusEnum) => {\n setSubscriptionStatusFilter(status)\n setOpen(false)\n }\n\n const clear = (e: Pick) => {\n e.preventDefault()\n e.stopPropagation()\n setSubscriptionStatusFilter(undefined)\n }\n\n return (\n \n \n \n \n \n \n \n {\"No statuses found\"}\n \n {SUBSCRIPTION_STATUSES.map((status) => (\n onSelect(status)}>\n \n {status}\n \n ))}\n \n \n \n \n )\n}\n\nconst CompanySizeFilter = ({\n companySizeFilter,\n setCompanySizeFilter,\n}: Pick) => {\n const Icon = () => (\n \n )\n\n return (\n \n \n \n \n \n {COMPANY_SIZE_OPTIONS.map((companySize) => (\n \n {companySize}\n \n ))}\n \n \n )\n}\n\nconst TierIdFilter = ({\n tierIdFilter,\n setTierIdFilter,\n}: Pick) => {\n const { tiers } = useTiers()\n\n const Icon = () => (\n \n )\n\n return (\n \n )\n}\n\nconst ApplicationStateFilter = ({\n applicationStateFilter,\n setApplicationStateFilter,\n}: Pick<\n UsersFiltersProps,\n \"applicationStateFilter\" | \"setApplicationStateFilter\"\n>) => {\n const Icon = () => (\n \n )\n\n return (\n setApplicationStateFilter(value as any)}\n value={applicationStateFilter}\n clearable\n >\n \n \n \n \n Completed\n Not Completed\n Not Started\n \n \n )\n}\n\ntype TagFilterProps = {\n tagsFilter: Partial[]\n setTagsFilter: (tagsFilter: Partial[]) => void\n tagType: \"expertise\" | \"interest\"\n}\n\nexport const TagFilter = ({\n tagsFilter,\n setTagsFilter,\n tagType,\n}: TagFilterProps) => {\n const [open, setOpen] = useState(false)\n const community = useCommunity()\n const clear = (e: Pick) => {\n e.preventDefault()\n e.stopPropagation()\n setTagsFilter([])\n setOpen(false)\n }\n\n const onSelect = (tag: Tag) => {\n setTagsFilter(\n tagsFilter.find((t) => t.id === tag.id)\n ? tagsFilter.filter((t) => t.id !== tag.id)\n : [...tagsFilter, tag]\n )\n }\n\n const hasTags = tagsFilter.length > 0\n\n const { data, loading } = useQuery(TAGS_QUERY_DOCUMENT, {\n fetchPolicy: \"cache-first\",\n })\n\n const tags = useMemo(() => data?.tags.nodes ?? [], [data])\n\n useEffect(() => {\n if (!data) return\n\n let hasHydratedTags = false\n const hydratedTags: Partial[] = []\n tagsFilter.forEach((tag) => {\n if (tag.id && !tag.name) {\n const hydratedTag = tags.find((t) => t.id === tag.id)\n if (hydratedTag) hydratedTags.push(hydratedTag)\n hasHydratedTags = true\n } else if (tag.id && tag.name) {\n hydratedTags.push(tag)\n }\n })\n\n if (hasHydratedTags) {\n setTagsFilter(hydratedTags)\n }\n }, [tagsFilter, data, tags, setTagsFilter])\n\n const ccls = useCommunityClassname()\n\n const badgeVariant = (tagType: string) => {\n switch (tagType) {\n case \"expertise\":\n if (community.slug === CommunitySlug.Gotomillions) {\n return \"primary\"\n } else if (community.slug === CommunitySlug.Fintechtakes) {\n return \"primary\"\n } else {\n return \"secondary\"\n }\n default:\n return \"highlight\"\n }\n }\n\n return (\n \n \n \n \n {hasTags ? (\n
\n \n {tagsFilter[0].name}\n \n {tagsFilter.length > 1 && (\n & {tagsFilter.length - 1} more\n )}\n
\n ) : tagType === \"expertise\" ? (\n \"Expertise\"\n ) : (\n \"Topics of Interest\"\n )}\n
\n
\n \n \n
\n\n \n \n \n
\n \n \n \n \n {loading ? \"Loading...\" : \"No tags found\"}\n \n \n {tags.map((tag) => (\n onSelect(tag)}>\n t.id === tag.id)\n ? \"opacity-100\"\n : \"opacity-0\"\n )}\n />\n {tag.name}\n \n ))}\n \n \n \n
\n )\n}\n\nconst IndustryFilter = ({\n industryFilter,\n setIndustryFilter,\n}: Pick) => {\n const { t: translate } = useTranslation(\"industries\")\n const Icon = () => (\n \n )\n\n return (\n setIndustryFilter(value as IndustryEnum)}\n value={industryFilter}\n clearable\n >\n \n \n \n \n {Object.values(IndustryEnum).map((industry) => (\n \n {translate(industry)}\n \n ))}\n \n \n )\n}\n\nconst VerticalFilter = ({\n verticalFilter,\n setVerticalFilter,\n}: Pick) => {\n const { t: translate } = useTranslation(\"verticals\")\n const Icon = () => (\n \n )\n\n return (\n setVerticalFilter(value as VerticalEnum)}\n value={verticalFilter}\n clearable\n >\n \n \n \n \n {Object.values(VerticalEnum).map((vertical) => (\n \n {translate(vertical)}\n \n ))}\n \n \n )\n}\n\nconst JobFunctionFilter = ({\n jobFunctionFilter,\n setJobFunctionFilter,\n}: Pick) => {\n const { t: translate } = useTranslation(\"job_functions\")\n const Icon = () => (\n \n )\n\n return (\n setJobFunctionFilter(value as JobFunctionEnum)}\n value={jobFunctionFilter}\n clearable\n >\n \n \n \n \n {Object.values(JobFunctionEnum).map((jobFunction) => (\n \n {translate(jobFunction)}\n \n ))}\n \n \n )\n}\n\nconst YearsOfExperienceFilter = ({\n yearsOfExperienceFilter,\n setYearsOfExperienceFilter,\n}: Pick<\n UsersFiltersProps,\n \"yearsOfExperienceFilter\" | \"setYearsOfExperienceFilter\"\n>) => {\n const Icon = () => (\n \n )\n\n return (\n \n \n \n \n \n {YEARS_OF_EXPERIENCE_OPTIONS.map((value) => (\n \n {value}\n \n ))}\n \n \n )\n}\n\nexport const UsersFilters = ({\n applicationStateFilter,\n companySizeFilter,\n enabledFilters,\n expertisesFilter,\n industryFilter,\n interestsFilter,\n jobFunctionFilter,\n placeFilter,\n setApplicationStateFilter,\n setCompanySizeFilter,\n setExpertisesFilter,\n setIndustryFilter,\n setInterestsFilter,\n setJobFunctionFilter,\n setPlaceFilter,\n setSubscriptionStatusFilter,\n setTierIdFilter,\n setVerticalFilter,\n setYearsOfExperienceFilter,\n subscriptionStatusFilter,\n tierIdFilter,\n verticalFilter,\n yearsOfExperienceFilter,\n}: UsersFiltersProps) => {\n return (\n \n {enabledFilters.includes(\"place\") && (\n \n )}\n {enabledFilters.includes(\"subscriptionStatus\") && (\n \n )}\n {enabledFilters.includes(\"expertises\") && (\n \n )}\n {enabledFilters.includes(\"interests\") && (\n \n )}\n {enabledFilters.includes(\"applicationState\") && (\n \n )}\n {enabledFilters.includes(\"tierId\") && (\n \n )}\n {enabledFilters.includes(\"companySize\") && (\n \n )}\n {enabledFilters.includes(\"industry\") && (\n \n )}\n {enabledFilters.includes(\"vertical\") && (\n \n )}\n {enabledFilters.includes(\"jobFunction\") && (\n \n )}\n {enabledFilters.includes(\"yearsOfExperience\") && (\n \n )}\n \n )\n}\n\ngql(`\n fragment Place_Filter on Place {\n id\n full\n }\n`)\n\nexport const PLACES_QUERY_DOCUMENT = gql(`\n query Places($first: Int, $last: Int, $beforeCursor: String, $afterCursor: String, $query: String) {\n places(first: $first, last: $last, before: $beforeCursor, after: $afterCursor, query: $query) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n nodes {\n ...Place_Filter\n }\n }\n }\n`)\n","import {\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from \"react\"\nimport {\n AdminUsersQueryVariables,\n IndustryEnum,\n JobFunctionEnum,\n Place_FilterFragment,\n StripeSubscriptionStatusEnum,\n Tag,\n Tier,\n UserSortEnum,\n User_AdminFragment,\n VerticalEnum,\n} from \"~/__generated__/graphql\"\nimport { Button } from \"~/ui/button\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"~/ui/table\"\nimport { USERS_QUERY_DOCUMENT } from \"~/screens/admin/AdminMembersScreen\"\nimport { useQuery } from \"@apollo/client\"\nimport { Error } from \"~/ui/Error\"\nimport { Skeleton } from \"~/ui/skeleton\"\nimport { useSearchParams } from \"react-router-dom\"\nimport { useDebounce } from \"use-debounce\"\nimport { Card } from \"~/ui/card\"\nimport { UsersSearch } from \"./UsersSearch\"\nimport { UsersFilters } from \"./UsersFilters\"\nimport { cn } from \"~/lib/utils\"\nimport invariant from \"tiny-invariant\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\n\nconst pinnedColumnStyles =\n \"sticky left-0 bg-gradient-to-r from-white from-80% to-transparent group-hover:from-muted group-hover:from-80% group-hover:to-transparent\"\n\nexport const TableSkeleton = ({ headers }: { headers: AdminTableHeader[] }) => (\n \n \n \n {headers.map((header) => (\n \n {header.label}\n \n ))}\n \n \n \n {Array.from({ length: 20 }).map((_, index) => (\n \n {headers.map((header) => (\n \n {header.label === \"Name\" && (\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n )}\n {header.label !== \"Name\" && (\n \n )}\n
\n ))}\n
\n ))}\n
\n
\n)\n\nconst DEFAULT_SORT = UserSortEnum.Name\nconst PAGE_SIZE = 10\n\nexport type UserTableFilter =\n | \"place\"\n | \"subscriptionStatus\"\n | \"expertises\"\n | \"interests\"\n | \"applicationState\"\n | \"tierId\"\n | \"companySize\"\n | \"industry\"\n | \"vertical\"\n | \"jobFunction\"\n | \"yearsOfExperience\"\n\nexport type AdminTableHeader = {\n label: string\n isPinned?: boolean\n}\n\nconst UsersTableContext = createContext(null)\n\nexport const useUsersTable = () => {\n const context = useContext(UsersTableContext)\n invariant(context, \"useUsersTable must be used within a UsersTableProvider\")\n return context\n}\n\nexport type UsersTableHandle = {\n refetch(): void\n}\n\ntype UsersTableProps = {\n children(user: User_AdminFragment): React.ReactNode\n className?: string\n defaultSort?: UserSortEnum\n headers?: AdminTableHeader[]\n onExport?(user_ids?: [string]): void\n onSelectAll?(users: User_AdminFragment[]): void\n pageSize?: number\n queryOptions?: AdminUsersQueryVariables\n skeleton?: React.ReactNode\n variant?: \"table\" | \"card\"\n withExport?: boolean\n withExportLoading?: boolean\n withFilters?: UserTableFilter[]\n withSearch?: boolean\n withSelectAll?: boolean\n withSort?: UserSortEnum[]\n}\n\nexport const UsersTable = forwardRef(\n (\n {\n children,\n className = \"\",\n defaultSort = DEFAULT_SORT,\n headers,\n onExport,\n onSelectAll,\n pageSize = PAGE_SIZE,\n queryOptions,\n skeleton,\n variant = \"table\",\n withExport,\n withExportLoading,\n withFilters,\n withSearch,\n withSelectAll,\n withSort = [\n UserSortEnum.Recent,\n UserSortEnum.Name,\n UserSortEnum.ApplicationPriority,\n ],\n },\n ref\n ) => {\n const usersExportFeature = true\n const [searchParams, setSearchParams] = useSearchParams()\n\n const [placeFilter, setPlaceFilter] = useState<\n Partial | undefined\n >(\n searchParams.get(\"placeId\")\n ? { id: searchParams.get(\"placeId\")! }\n : undefined\n )\n const [subscriptionStatusFilter, setSubscriptionStatusFilter] = useState<\n StripeSubscriptionStatusEnum | undefined\n >(\n (searchParams.get(\n \"subscriptionStatus\"\n ) as StripeSubscriptionStatusEnum) || undefined\n )\n const [expertisesFilter, setExpertisesFilter] = useState[]>(\n () => {\n const expertiseIds = searchParams.get(\"expertiseIds\")\n return expertiseIds ? expertiseIds.split(\",\").map((id) => ({ id })) : []\n }\n )\n const [interestsFilter, setInterestsFilter] = useState[]>(\n () => {\n const interestIds = searchParams.get(\"interestIds\")\n return interestIds ? interestIds.split(\",\").map((id) => ({ id })) : []\n }\n )\n\n const [applicationStateFilter, setApplicationStateFilter] = useState<\n \"completed\" | \"not_completed\" | \"not_started\" | undefined\n >(() => {\n const applicationState = searchParams.get(\"applicationState\")\n return applicationState ? (applicationState as any) : undefined\n })\n\n const [tierIdFilter, setTierIdFilter] = useState(\n () => {\n const tierId = searchParams.get(\"tierId\")\n return tierId ? (tierId as Tier[\"id\"]) : undefined\n }\n )\n\n const [companySizeFilter, setCompanySizeFilter] = useState<\n string | undefined\n >(() => {\n const companySize = searchParams.get(\"companySize\")\n return companySize ? companySize : undefined\n })\n\n const [industryFilter, setIndustryFilter] = useState<\n IndustryEnum | undefined\n >(() => {\n const industry = searchParams.get(\"industry\")\n return industry ? (industry as IndustryEnum) : undefined\n })\n\n const [verticalFilter, setVerticalFilter] = useState<\n VerticalEnum | undefined\n >(() => {\n const vertical = searchParams.get(\"vertical\")\n return vertical ? (vertical as VerticalEnum) : undefined\n })\n\n const [jobFunctionFilter, setJobFunctionFilter] = useState<\n JobFunctionEnum | undefined\n >(() => {\n const jobFunction = searchParams.get(\"jobFunction\")\n return jobFunction ? (jobFunction as JobFunctionEnum) : undefined\n })\n\n const [yearsOfExperienceFilter, setYearsOfExperienceFilter] = useState<\n string | undefined\n >(() => {\n const yearsOfExperience = searchParams.get(\"yearsOfExperience\")\n return yearsOfExperience ? yearsOfExperience : undefined\n })\n\n const [searchTerm, setSearchTerm] = useState(\n searchParams.get(\"q\") || \"\"\n )\n const [sort, setSort] = useState(\n (searchParams.get(\"sort\") as UserSortEnum) || defaultSort\n )\n\n const [debouncedSearchTerm] = useDebounce(searchTerm, 400)\n\n const useQueryOptions = useMemo(() => {\n const options: AdminUsersQueryVariables = { first: pageSize }\n if (Object.keys(queryOptions || {}).length > 0) {\n Object.assign(options, queryOptions)\n }\n if (sort) options.sort = sort\n if (debouncedSearchTerm) options.searchTerm = debouncedSearchTerm\n if (placeFilter?.id) options.placeId = placeFilter.id\n if (subscriptionStatusFilter)\n options.subscriptionStatus = subscriptionStatusFilter\n if (expertisesFilter.length > 0) {\n options.expertiseIds = expertisesFilter.map((tag) => tag.id!)\n }\n if (interestsFilter.length > 0) {\n options.interestIds = interestsFilter.map((tag) => tag.id!)\n }\n if (applicationStateFilter) {\n options.applicationState = applicationStateFilter\n }\n if (tierIdFilter) {\n options.tierId = tierIdFilter\n }\n if (companySizeFilter) {\n options.companySize = companySizeFilter\n }\n if (industryFilter) {\n options.industries = [industryFilter]\n }\n if (verticalFilter) {\n options.verticals = [verticalFilter]\n }\n if (jobFunctionFilter) {\n options.jobFunctions = [jobFunctionFilter]\n }\n if (yearsOfExperienceFilter) {\n options.yearsOfExperience = [yearsOfExperienceFilter]\n }\n\n if (Object.keys(options).length === 0) return {}\n return { variables: options }\n }, [\n applicationStateFilter,\n companySizeFilter,\n debouncedSearchTerm,\n expertisesFilter,\n industryFilter,\n interestsFilter,\n jobFunctionFilter,\n pageSize,\n placeFilter,\n queryOptions,\n sort,\n subscriptionStatusFilter,\n tierIdFilter,\n verticalFilter,\n yearsOfExperienceFilter,\n ])\n\n const {\n data: currentData,\n previousData,\n loading,\n error,\n fetchMore,\n refetch,\n } = useQuery(USERS_QUERY_DOCUMENT, {\n ...useQueryOptions,\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-and-network\",\n })\n\n const data = currentData || previousData\n\n const users = useMemo(() => {\n return (\n data?.users.edges\n .map((e) => e.node)\n .filter((user) => {\n return [\n queryOptions?.unreviewedOnly ? user.fit === null : true,\n queryOptions?.fitOnly ? user.fit === true : true,\n queryOptions?.unfitOnly ? user.fit === false : true,\n queryOptions?.activeOnly ? user.active : true,\n queryOptions?.inactiveOnly ? !user.active : true,\n ].every((condition) => condition)\n }) || []\n )\n }, [data, queryOptions])\n\n const hasNextPage = !!data?.users.pageInfo.hasNextPage\n const totalCount = useMemo(() => {\n return (\n (data?.users.totalCount || 0) -\n ((data?.users.edges.length || 0) - users.length)\n )\n }, [data, users])\n\n const memoizedSearchParams = useMemo(() => {\n const params = new URLSearchParams(searchParams.toString())\n if (debouncedSearchTerm !== params.get(\"q\")) {\n if (debouncedSearchTerm === \"\") {\n params.delete(\"q\")\n } else {\n params.set(\"q\", debouncedSearchTerm)\n }\n }\n if (sort && sort !== defaultSort) {\n params.set(\"sort\", sort)\n }\n if (placeFilter?.id) {\n params.set(\"placeId\", placeFilter.id)\n } else {\n params.delete(\"placeId\")\n }\n if (subscriptionStatusFilter) {\n params.set(\"subscriptionStatus\", subscriptionStatusFilter)\n } else {\n params.delete(\"subscriptionStatus\")\n }\n if (expertisesFilter.length > 0) {\n params.set(\n \"expertiseIds\",\n expertisesFilter.map((tag) => tag.id!).join(\",\")\n )\n } else {\n params.delete(\"expertiseIds\")\n }\n if (interestsFilter.length > 0) {\n params.set(\n \"interestIds\",\n interestsFilter.map((tag) => tag.id!).join(\",\")\n )\n } else {\n params.delete(\"interestIds\")\n }\n if (applicationStateFilter) {\n params.set(\"applicationState\", applicationStateFilter)\n } else {\n params.delete(\"applicationState\")\n }\n if (tierIdFilter) {\n params.set(\"tierId\", tierIdFilter)\n } else {\n params.delete(\"tierId\")\n }\n if (companySizeFilter) {\n params.set(\"companySize\", companySizeFilter)\n } else {\n params.delete(\"companySize\")\n }\n if (industryFilter) {\n params.set(\"industry\", industryFilter)\n } else {\n params.delete(\"industry\")\n }\n if (verticalFilter) {\n params.set(\"vertical\", verticalFilter)\n } else {\n params.delete(\"vertical\")\n }\n if (jobFunctionFilter) {\n params.set(\"jobFunction\", jobFunctionFilter)\n } else {\n params.delete(\"jobFunction\")\n }\n if (yearsOfExperienceFilter) {\n params.set(\"yearsOfExperience\", yearsOfExperienceFilter)\n } else {\n params.delete(\"yearsOfExperience\")\n }\n return params\n }, [\n applicationStateFilter,\n companySizeFilter,\n debouncedSearchTerm,\n defaultSort,\n expertisesFilter,\n industryFilter,\n interestsFilter,\n jobFunctionFilter,\n placeFilter,\n searchParams,\n sort,\n subscriptionStatusFilter,\n tierIdFilter,\n verticalFilter,\n yearsOfExperienceFilter,\n ])\n\n useEffect(() => {\n setSearchParams(memoizedSearchParams)\n }, [memoizedSearchParams, setSearchParams])\n\n useImperativeHandle(\n ref,\n () => ({\n refetch,\n }),\n [refetch]\n )\n\n return (\n \n {withSearch && (\n
\n {withSelectAll && onSelectAll && (\n
\n onSelectAll(users)}\n size=\"lg\"\n className=\"text-2xs\"\n >\n Select All\n \n
\n )}\n\n {usersExportFeature && withExport && (\n
\n {\n onExport?.()\n }}\n disabled={withExportLoading}\n size=\"lg\"\n className=\"text-2xs\"\n >\n {withExportLoading ? \"Loading... \" : Export}\n \n
\n )}\n\n
\n \n
\n
\n )}\n {withFilters && (\n \n )}\n\n {error ? (\n \n ) : (\n <>\n {users.length > 0 && (\n
\n {totalCount} users found\n
\n )}\n {variant === \"table\" && (\n \n )}\n {variant === \"card\" && (\n \n )}\n \n )}\n
\n \n fetchMore({\n variables: {\n after: data?.users.pageInfo.endCursor,\n },\n })\n }\n canLoadMore={!loading && hasNextPage}\n loadingText=\"Loading more users...\"\n loading={loading && users.length > 0 && hasNextPage}\n />\n
\n
\n )\n }\n)\n\ntype AdminTableProps = {\n items: T[]\n headers: AdminTableHeader[]\n loading: boolean\n children(item: T): React.ReactNode\n className?: string\n}\ntype UsersCardViewProps = Omit<\n AdminTableProps,\n \"headers\"\n> & {\n skeleton?: React.ReactNode\n}\n\nconst UsersCardView = ({\n items,\n loading,\n children,\n skeleton,\n className,\n}: UsersCardViewProps) => {\n return (\n <>\n {(items.length > 0 || loading) && (\n
\n {items.length > 0 && items.map(children)}\n {loading && skeleton}\n
\n )}\n {!loading && items.length === 0 && (\n
No users found.
\n )}\n \n )\n}\n\nexport const AdminTable = ({\n items,\n headers,\n children,\n className,\n loading,\n}: AdminTableProps) => {\n return (\n <>\n \n \n {headers && (\n \n \n {headers.map((header) => (\n \n {header.label}\n \n ))}\n \n \n )}\n \n {items.length > 0 && items.map(children)}\n {loading &&\n Array.from({ length: 10 }).map((_, index) => (\n \n {headers.map((header) => (\n \n \n \n ))}\n \n ))}\n \n
\n
\n \n )\n}\n","import { Transition, TransitionChild } from \"@headlessui/react\"\nimport copy from \"copy-to-clipboard\"\nimport { useCallback, useEffect, useState } from \"react\"\nimport { cn } from \"~/lib/utils\"\nimport { Button } from \"~/ui/button\"\nimport { SimpleTooltip } from \"./SimpleTooltip\"\nimport { Check, ClipboardCopy } from \"lucide-react\"\nimport toast from \"react-hot-toast\"\n\nexport const CopyToClipboard = ({\n variant = \"default\",\n text,\n children,\n onCopy,\n className,\n}: {\n variant?: \"default\" | \"adornment\"\n text: string\n children?: React.ReactNode\n onCopy?: () => void\n className?: string\n}) => {\n const [isCopied, setIsCopied] = useState(false)\n\n useEffect(() => {\n if (isCopied) {\n const timeout = setTimeout(() => {\n setIsCopied(false)\n }, 2000)\n\n return () => {\n clearTimeout(timeout)\n }\n }\n }, [isCopied])\n\n const copyToClipboard = useCallback(() => {\n copy(text)\n setIsCopied(true)\n if (variant === \"adornment\") {\n toast.success(\"Copied to clipboard\")\n }\n onCopy?.()\n }, [text, onCopy, variant])\n\n return (\n \n \n <>\n
\n \n \n
\n \n {variant !== \"adornment\" && \"Copied\"}\n
\n
\n
\n \n \n
\n \n {variant !== \"adornment\" && children}\n
\n
\n
\n
\n \n {variant !== \"adornment\" && children}\n
\n
\n \n
\n \n )\n}\n","import { DotsHorizontalIcon, EyeNoneIcon } from \"@radix-ui/react-icons\"\nimport { formatDate } from \"date-fns\"\nimport { useRef, useState } from \"react\"\nimport {\n User_AdminFragment,\n ExportFormatTypeEnum,\n TierLevelEnum,\n TierIntervalEnum,\n UserSortEnum,\n UserRoleEnum,\n CelebrationTypeEnum,\n} from \"~/__generated__/graphql\"\nimport { UserDialog } from \"~/directory/UserDialog\"\nimport { Badge } from \"~/ui/badge\"\nimport { Button } from \"~/ui/button\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { TableCell, TableRow } from \"~/ui/table\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { ChangeEmailModal } from \"../ChangeEmailModal\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { USER_ADMIN_UPDATE_MUTATION } from \"~/screens/admin/AdminMembersScreen\"\nimport { displayErrors } from \"~/common/validations\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"~/ui/tooltip\"\nimport { formatCalendarDate } from \"~/common/formatDate\"\nimport { AdminTableHeader, UsersTable } from \"./UsersTable\"\nimport toast from \"react-hot-toast\"\nimport { gql } from \"~/__generated__\"\nimport { useConfirm } from \"~/ui/Confirm\"\nimport { USER_CHANGE_TIER_MUTATION } from \"~/subscriptions/SubscriptionProvider\"\nimport { UserName } from \"~/directory/UserName\"\nimport { CopyToClipboard } from \"~/ui/CopyToClipboard\"\nimport copy from \"copy-to-clipboard\"\nimport { useTranslation } from \"react-i18next\"\n\nconst HEADERS: AdminTableHeader[] = [\n { label: \"Name\", isPinned: true },\n { label: \"App Started On\" },\n { label: \"Homebase\" },\n { label: \"Title\" },\n { label: \"Company\" },\n { label: \"Subscription\" },\n { label: \"Tier\" },\n { label: \"Expertise\" },\n { label: \"Interests\" },\n { label: \"Celebrations\" },\n { label: \"Type\" },\n { label: \"Hidden\" },\n { label: \"Onboarded On\" },\n { label: \"Actions\" },\n]\n\nconst pinnedColumnStyles =\n \"sticky left-0 bg-gradient-to-r from-white from-80% to-transparent group-hover:from-muted group-hover:from-80% group-hover:to-transparent\"\n\nconst UserRow = ({ user }: { user: User_AdminFragment }) => {\n const [changeEmailModalOpen, setChangeEmailModalOpen] = useState(false)\n const [userDialogOpen, setUserDialogOpen] = useState(false)\n const showConfirm = useConfirm()\n const [runUserUpdate] = useSafeMutation(USER_ADMIN_UPDATE_MUTATION)\n const [runUserChangeTier] = useSafeMutation(USER_CHANGE_TIER_MUTATION)\n\n const contextMenuTriggerRef = useRef(null)\n\n const toggleHidden = async () => {\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n userId: user.id,\n hidden: !user.hidden,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n }\n }\n\n const toggleCoach = async () => {\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n userId: user.id,\n coach: !user.coach,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n }\n }\n\n const migrateToTier = async (\n tier: TierLevelEnum,\n interval: TierIntervalEnum\n ) => {\n await showConfirm({\n title: `Migrate ${user.name} to ${tier} tier?`,\n body: `⚠️ This will charge the customer the new tier price. Are you sure you want to continue?`,\n confirmText: \"Yes, migrate\",\n cancelText: \"Cancel\",\n onConfirm: async () => {\n const { errors } = await runUserChangeTier({\n variables: {\n input: {\n userId: user.id,\n tierLevel: tier,\n interval: interval,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n }\n },\n })\n }\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n const { t: translateCelebrationType } = useTranslation(\"celebrations\")\n\n return (\n <>\n {changeEmailModalOpen && (\n \n )}\n\n {userDialogOpen && (\n setUserDialogOpen(false)}\n user={user}\n />\n )}\n\n \n \n \n {user.hidden ? \"Unhide\" : \"Hide\"}\n \n \n user.email && copy(user.email) && toast.success(\"Email copied\")\n }\n className=\"cursor-pointer\"\n disabled={!user.email}\n >\n Copy Email Address\n \n setChangeEmailModalOpen(true)}\n className=\"cursor-pointer\"\n >\n Change Email\n \n \n \n Migrate to Tier (Charges Customer)\n \n \n \n migrateToTier(TierLevelEnum.Free, TierIntervalEnum.Year)\n }\n >\n Free\n \n \n migrateToTier(TierLevelEnum.Plus, TierIntervalEnum.Quarter)\n }\n >\n Plus (Quarterly)\n \n \n migrateToTier(TierLevelEnum.Plus, TierIntervalEnum.Year)\n }\n >\n Plus (Yearly)\n \n \n migrateToTier(TierLevelEnum.Pro, TierIntervalEnum.Year)\n }\n >\n Pro\n \n \n \n \n {user.coach ? \"Unmark as Coach\" : \"Mark as Coach\"}\n \n \n \n \n \n
\n
\n \n
\n
\n
\n setUserDialogOpen(true)}\n >\n \n \n {user.hidden && (\n \n \n \n \n \n \n User is hidden from the directory\n \n \n \n )}\n
\n {user.email && (\n \n
{user.email}
\n \n )}\n
\n
\n
\n \n \n {formatDate(user.createdAt, \"MMM d, yyyy\")}\n \n \n \n
\n {user.place?.full || \"N/A\"}\n
\n
\n \n
\n {user.jobTitle || \"N/A\"}\n
\n
\n \n
\n {user.companyName || \"N/A\"}\n
\n
\n \n \n {user.activeStripeSubscription?.status || \"N/A\"}\n \n \n \n \n {user.tier ? (\n <>\n {user.tier.name}\n {user.tier.level !== TierLevelEnum.Free &&\n user.activeStripeSubscription?.plan &&\n `-${\n user.activeStripeSubscription.plan.interval === \"year\"\n ? \"Yearly\"\n : \"Quarterly\"\n }`}\n \n ) : (\n \"N/A\"\n )}\n \n \n \n
\n {user.expertise.map((tag) => (\n \n {tag.name}\n \n ))}\n
\n
\n \n
\n {user.interests.map((tag) => (\n \n {tag.name}\n \n ))}\n
\n
\n \n
\n {user.celebrations.map(\n ({ id, celebrationType, customCelebrationType, date }) => (\n \n \n {translateCelebrationType(`${celebrationType}.emoji`)}\n \n {celebrationType === CelebrationTypeEnum.Other && (\n {customCelebrationType}\n )}\n {date && (\n {formatCalendarDate(date, \"MMM d, yyyy\")}\n )}\n \n )\n )}\n
\n
\n \n {user.admin ? (\n Admin\n ) : user.coach ? (\n Coach\n ) : (\n User\n )}\n \n \n \n {user.hidden ? \"Hidden\" : \"Visible\"}\n \n \n \n {user.onboardedAt\n ? formatDate(user.onboardedAt, \"MMM d, yyyy\")\n : \"N/A\"}\n \n \n \n \n
\n
\n
\n \n )\n}\n\nexport const AllMembersTable = () => {\n const [runUsersExport, { loading }] = useSafeMutation(USERS_EXPORT_MUTATION)\n\n return (\n {\n runUsersExport({\n variables: {\n input: { format: ExportFormatTypeEnum.Csv },\n },\n }).then((data) => {\n if (data.errors) {\n displayErrors(data.errors)\n } else {\n toast.success(\n \"Export users in progress. You'll recieve an email when the export is complete\"\n )\n }\n })\n }}\n >\n {(user) => }\n \n )\n}\n\nconst USERS_EXPORT_MUTATION = gql(`\n mutation UsersExport($input: UsersExportInput!) {\n usersExport(input: $input) {\n success\n }\n }\n`)\n","import { Search } from \"lucide-react\"\nimport { Input } from \"~/ui/input\"\n\ntype LeadsSearchProps = {\n searchTerm: string\n setSearchTerm: (term: string) => void\n}\n\nexport const LeadsSearch = ({\n searchTerm,\n setSearchTerm,\n}: LeadsSearchProps) => {\n return (\n
\n \n setSearchTerm(e.target.value)}\n className=\"pl-8\"\n />\n
\n )\n}\n","import { applicationLandingPath } from \"./paths\"\n\nexport const generateInviteUrl = (\n invitationCode: string,\n variationParam?: string | null\n) => {\n const baseUrl = `${window.location.origin}${applicationLandingPath.pattern}?i=${invitationCode}`\n return variationParam ? `${baseUrl}&v=${variationParam}` : baseUrl\n}\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { gql } from \"~/__generated__\"\nimport { useQuery } from \"@apollo/client\"\nimport { generateInviteUrl } from \"~/common/generateInviteUrl\"\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"~/ui/select\"\nimport { Input } from \"~/ui/input\"\nimport copy from \"copy-to-clipboard\"\nimport { z } from \"zod\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Button } from \"~/ui/button\"\nimport { useEffect, useState, useMemo } from \"react\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport toast from \"react-hot-toast\"\n\nconst formSchema = z.object({\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n email: z.string().regex(/^[^@\\s]+@[^@\\s]+$/),\n variationParam: z.string().optional(),\n})\n\nexport type InviteMemberFormValues = z.infer\n\nexport const InviteMemberModal = ({\n isOpen,\n setIsOpen,\n onSuccess,\n}: {\n isOpen: boolean\n setIsOpen: (value: boolean) => void\n onSuccess?: () => void\n}) => {\n const [showSuccess, setShowSuccess] = useState(false)\n const { data: variantsData } = useQuery(SCREEN_VARIANTS_QUERY)\n\n const activeVariants = useMemo(() => {\n return variantsData?.screenVariants.nodes.filter((v) => v.active) || []\n }, [variantsData])\n\n const form = useForm>({\n resolver: zodResolver(formSchema),\n defaultValues: {\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n variationParam: \"\",\n },\n })\n\n const [runLeadCreate, leadCreateResult] = useSafeMutation(\n LEAD_INVITE_MEMBER_MUTATION\n )\n\n const onSubmit = async (values: InviteMemberFormValues) => {\n const { errors } = await runLeadCreate({\n variables: {\n input: {\n email: values.email,\n name:\n values.firstName && values.lastName\n ? `${values.firstName} ${values.lastName}`.trim()\n : values.firstName || values.lastName || undefined,\n variationParam:\n values.variationParam === \"__default\" ? \"\" : values.variationParam,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\"Member invitation successfully created\")\n onSuccess?.()\n form.reset()\n setShowSuccess(true)\n }\n }\n\n useEffect(() => {\n if (isOpen === false) {\n form.reset()\n setShowSuccess(false)\n }\n }, [isOpen, form])\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n {showSuccess ? (\n <>\n
Success
\n
\n User has been pre-approved and will be deemed fit. Please share\n this unique join link with the pre-approved member.\n
\n {\n const url = generateInviteUrl(\n leadCreateResult.data?.leadInviteMember?.lead\n ?.invitationCode || \"\",\n leadCreateResult.data?.leadInviteMember?.lead\n ?.variationParam || \"\"\n )\n copy(url)\n toast.success(\"Invite URL copied\")\n }}\n >\n {generateInviteUrl(\n leadCreateResult.data?.leadInviteMember?.lead?.invitationCode ||\n \"\",\n leadCreateResult.data?.leadInviteMember?.lead?.variationParam ||\n \"\"\n )}\n \n
\n setIsOpen(false)}\n >\n Got It\n \n
\n \n ) : (\n <>\n
Add Pre-Approved Member
\n
\n A pre-approved member will be deemed fit, regardless of their\n application inputs\n
\n\n
\n \n (\n \n First Name\n \n \n \n \n \n )}\n />\n\n (\n \n Last Name\n \n \n \n \n \n )}\n />\n\n (\n \n Email Address\n \n \n \n \n \n )}\n />\n\n (\n \n \n Screen Variant\n \n \n \n \n \n \n \n \n Default (No Variant)\n \n {activeVariants.map((variant) => (\n \n {variant.screen} -{\" \"}\n {variant.variantIdentifier || \"(default)\"}\n \n ))}\n \n \n \n \n \n )}\n />\n\n
\n setIsOpen(false)}\n variant=\"outline\"\n >\n Cancel\n \n \n Invite Member\n \n
\n \n \n \n )}\n
\n \n )\n}\n\nconst SCREEN_VARIANTS_QUERY = gql(`\n query ScreenVariantsForInvite {\n screenVariants {\n nodes {\n id\n screen\n variantIdentifier\n active\n }\n }\n }\n`)\n\nconst LEAD_INVITE_MEMBER_MUTATION = gql(`\n mutation LeadInviteMember($input: LeadInviteMemberInput!) {\n leadInviteMember(input: $input) {\n lead {\n id\n email\n invitationCode\n variationParam\n }\n }\n }\n`)\n","import { gql } from \"~/__generated__\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"~/ui/table\"\nimport { Button } from \"~/ui/button\"\nimport { DotsHorizontalIcon } from \"@radix-ui/react-icons\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { useQuery } from \"@apollo/client\"\nimport { Error } from \"~/ui/Error\"\nimport { Skeleton } from \"~/ui/skeleton\"\nimport { useSearchParams } from \"react-router-dom\"\nimport { useDebounce } from \"use-debounce\"\nimport { Card } from \"~/ui/card\"\nimport { LeadsSearch } from \"~/admin/leads/LeadsSearch\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { useState, useMemo, useEffect, useRef } from \"react\"\nimport { InviteMemberModal } from \"./InviteMemberModal\"\nimport { CopyToClipboard } from \"~/ui/CopyToClipboard\"\nimport { generateInviteUrl } from \"~/common/generateInviteUrl\"\nimport copy from \"copy-to-clipboard\"\nimport toast from \"react-hot-toast\"\nimport { Badge } from \"~/ui/badge\"\n\nconst InviteeRow = ({ lead }: { lead: any }) => {\n const contextMenuTriggerRef = useRef(null)\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n return (\n \n \n \n lead.email && copy(lead.email) && toast.success(\"Email copied\")\n }\n className=\"cursor-pointer\"\n disabled={!lead.email}\n >\n Copy Email Address\n \n {\n const url = generateInviteUrl(\n lead.invitationCode || \"\",\n lead.variationParam || \"\"\n )\n copy(url)\n toast.success(\"Invite URL copied\")\n }}\n className=\"cursor-pointer\"\n disabled={!lead.invitationCode}\n >\n Copy Invite URL\n \n \n \n \n \n
{lead.name || \"-\"}
\n \n
{lead.email}
\n \n
\n \n
\n {lead.referrer?.name || \"-\"}\n {lead.referrer?.name && (\n
\n {new Date(lead.createdAt).toLocaleDateString()}\n
\n )}\n
\n
\n \n
\n \n {lead.invitationCodeRedeemed ? \"Yes\" : \"No\"}\n \n {lead.invitationCodeRedeemed && lead.user?.createdAt && (\n
\n {new Date(lead.user.createdAt).toLocaleDateString()}\n
\n )}\n
\n
\n \n \n
\n {generateInviteUrl(\n lead.invitationCode || \"\",\n lead.variationParam || \"\"\n )}\n
\n \n
\n \n \n \n
\n
\n
\n )\n}\n\nconst LEADS_QUERY = gql(`\n query MemberInvitations($first: Int, $after: String, $searchTerm: String, $sort: UserSortEnum, $source: String, $variationParam: String) {\n leads(first: $first, after: $after, searchTerm: $searchTerm, sort: $sort, source: $source, variationParam: $variationParam) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n id\n name\n email\n source\n variationParam\n invitationCode\n invitationCodeRedeemed\n createdAt\n user {\n createdAt\n }\n referrer {\n name\n email\n }\n }\n }\n }\n }\n`)\n\nconst PAGE_SIZE = 10\n\nexport const InvitationsTable = ({\n refetchState,\n}: {\n refetchState: boolean\n}) => {\n const [isInviteModalOpen, setIsInviteModalOpen] = useState(false)\n const [searchParams, setSearchParams] = useSearchParams()\n const [searchTerm, setSearchTerm] = useState(\n searchParams.get(\"q\") || \"\"\n )\n const [debouncedSearchTerm] = useDebounce(searchTerm, 400)\n\n const headers = [\n { label: \"Name\", isPinned: true },\n { label: \"Invited By\" },\n { label: \"Activated\" },\n { label: \"Invite URL\" },\n { label: \"Actions\" },\n ]\n\n const queryOptions = useMemo(() => {\n const options: any = { first: PAGE_SIZE, source: \"admin_invited\" }\n if (debouncedSearchTerm) options.searchTerm = debouncedSearchTerm\n return {\n variables: options,\n }\n }, [debouncedSearchTerm])\n\n const {\n data: currentData,\n previousData,\n loading,\n error,\n fetchMore,\n refetch,\n } = useQuery(LEADS_QUERY, {\n ...queryOptions,\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-and-network\",\n nextFetchPolicy: \"cache-first\",\n })\n\n const data = currentData || previousData\n\n const leads = useMemo(() => {\n return data?.leads.edges.map((e) => e.node) || []\n }, [data])\n\n const hasNextPage = !!data?.leads.pageInfo.hasNextPage\n const totalCount = data?.leads.totalCount || 0\n\n const memoizedSearchParams = useMemo(() => {\n const params = new URLSearchParams(searchParams.toString())\n if (debouncedSearchTerm !== params.get(\"q\")) {\n if (debouncedSearchTerm === \"\") {\n params.delete(\"q\")\n } else {\n params.set(\"q\", debouncedSearchTerm)\n }\n }\n return params\n }, [debouncedSearchTerm, searchParams])\n\n useEffect(() => {\n setSearchParams(memoizedSearchParams)\n }, [memoizedSearchParams, setSearchParams])\n\n useEffect(() => {\n refetch()\n }, [refetchState])\n\n return (\n <>\n
\n
\n \n
\n
\n\n {\n refetch()\n }}\n />\n\n {error ? (\n \n ) : (\n <>\n {leads.length > 0 && (\n
\n {totalCount} invitees found\n
\n )}\n\n \n \n \n \n {headers.map((header) => (\n \n {header.label}\n \n ))}\n \n \n \n {leads.map((lead) => (\n \n ))}\n {loading &&\n Array.from({ length: 10 }).map((_, index) => (\n \n {headers.map((header) => (\n \n \n \n ))}\n \n ))}\n \n
\n
\n \n )}\n\n
\n \n fetchMore({\n variables: {\n after: data?.leads.pageInfo.endCursor,\n },\n updateQuery: (prev, { fetchMoreResult }) => {\n if (!fetchMoreResult) return prev\n return {\n leads: {\n ...fetchMoreResult.leads,\n edges: [\n ...prev.leads.edges,\n ...fetchMoreResult.leads.edges,\n ],\n },\n }\n },\n })\n }\n canLoadMore={!loading && hasNextPage}\n loadingText=\"Loading more leads...\"\n loading={loading && leads.length > 0 && hasNextPage}\n />\n
\n \n )\n}\n","import { formatDate } from \"date-fns\"\nimport { useRef, useState } from \"react\"\nimport {\n User_AdminFragment,\n TierLevelEnum,\n UserSortEnum,\n CelebrationTypeEnum,\n} from \"~/__generated__/graphql\"\nimport { UserDialog } from \"~/directory/UserDialog\"\nimport { Badge } from \"~/ui/badge\"\nimport { Button } from \"~/ui/button\"\nimport { TableCell, TableRow } from \"~/ui/table\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { formatCalendarDate } from \"~/common/formatDate\"\nimport { AdminTableHeader, UsersTable } from \"./UsersTable\"\nimport { UserName } from \"~/directory/UserName\"\nimport { CopyToClipboard } from \"~/ui/CopyToClipboard\"\nimport copy from \"copy-to-clipboard\"\nimport toast from \"react-hot-toast\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { useTranslation } from \"react-i18next\"\n\nconst HEADERS: AdminTableHeader[] = [\n { label: \"Name\", isPinned: true },\n { label: \"Date Joined\" },\n { label: \"Homebase\" },\n { label: \"Title\" },\n { label: \"Company\" },\n { label: \"Tier\" },\n { label: \"Expertise\" },\n { label: \"Interests\" },\n { label: \"Celebrations\" },\n { label: \"Type\" },\n { label: \"Visibility\" },\n { label: \"Onboarded\" },\n]\n\nconst pinnedColumnStyles =\n \"sticky left-0 bg-gradient-to-r from-white from-80% to-transparent group-hover:from-muted group-hover:from-80% group-hover:to-transparent\"\n\nconst UserRow = ({ user }: { user: User_AdminFragment }) => {\n const [userDialogOpen, setUserDialogOpen] = useState(false)\n const contextMenuTriggerRef = useRef(null)\n const { t: translateCelebrationType } = useTranslation(\"celebrations\")\n\n return (\n <>\n {userDialogOpen && (\n setUserDialogOpen(false)}\n user={user}\n />\n )}\n \n \n \n user.email && copy(user.email) && toast.success(\"Email copied\")\n }\n className=\"cursor-pointer\"\n disabled={!user.email}\n >\n Copy Email Address\n \n \n \n \n \n
\n
\n \n
\n
\n {user.reversedFitDecisionAt && (\n \n Reversed Decision\n \n )}\n
\n setUserDialogOpen(true)}\n >\n \n \n
\n {user.email && (\n \n
{user.email}
\n \n )}\n
\n
\n
\n \n \n {formatDate(user.createdAt, \"MMM d, yyyy\")}\n \n \n \n
\n {user.place?.full || \"New York, NY\"}\n
\n
\n \n
\n {user.jobTitle || \"N/A\"}\n
\n
\n \n
\n {user.companyName || \"N/A\"}\n
\n
\n \n \n {user.tier ? (\n <>\n {user.tier.name}\n {user.tier.level !== TierLevelEnum.Free &&\n user.activeStripeSubscription?.plan &&\n `-${\n user.activeStripeSubscription.plan.interval === \"year\"\n ? \"Yearly\"\n : \"Quarterly\"\n }`}\n \n ) : (\n \"N/A\"\n )}\n \n \n \n
\n {user.expertise.map((tag) => (\n \n {tag.name}\n \n ))}\n
\n
\n \n
\n {user.interests.map((tag) => (\n \n {tag.name}\n \n ))}\n
\n
\n \n
\n {user.celebrations.map(\n ({ id, celebrationType, customCelebrationType, date }) => (\n \n \n {translateCelebrationType(`${celebrationType}.emoji`)}\n \n {celebrationType === CelebrationTypeEnum.Other && (\n {customCelebrationType}\n )}\n {date && (\n {formatCalendarDate(date, \"MMM d, yyyy\")}\n )}\n \n )\n )}\n
\n
\n \n {user.admin ? (\n Admin\n ) : user.coach ? (\n Coach\n ) : (\n User\n )}\n \n \n \n {user.hidden ? \"Hidden\" : \"Visible\"}\n \n \n \n \n {user.onboarded ? \"Onboarded\" : \"Not Onboarded\"}\n \n \n
\n
\n
\n \n )\n}\n\nexport const PastMembersTable = () => {\n return (\n \n {(user) => }\n \n )\n}\n","import { gql } from \"~/__generated__\"\nimport { AllMembersTable } from \"~/admin/users/AllMembersTable\"\nimport { InvitationsTable } from \"~/admin/users/InvitationsTable\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"~/ui/tabs\"\nimport { useNavigate, useParams, useSearchParams } from \"react-router-dom\"\nimport { useEffect, useMemo, useState } from \"react\"\nimport { adminMembersPath } from \"~/common/paths\"\nimport { PastMembersTable } from \"~/admin/users/PastMembersTable\"\nimport { Users } from \"lucide-react\"\nimport { Button } from \"~/ui/button\"\nimport { InviteMemberModal } from \"~/admin/users/InviteMemberModal\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\n\nexport const AdminMembersScreen = () => {\n const hasAdminMemberInvites = true\n const { activeTab: activeTabFromParams } = useParams()\n const [activeTab, setActiveTab] = useState(\n activeTabFromParams || \"applications\"\n )\n const [isInviteModalOpen, setIsInviteModalOpen] = useState(false)\n const navigate = useNavigate()\n const [, setSearchParams] = useSearchParams()\n\n useEffect(() => {\n if (activeTab !== activeTabFromParams) {\n setActiveTab(activeTabFromParams || \"applications\")\n }\n }, [activeTab, activeTabFromParams, navigate])\n\n const onTabChange = (tab: string) => {\n setSearchParams({})\n setActiveTab(tab)\n navigate(adminMembersPath({ \"activeTab?\": tab }))\n }\n\n const title = useMemo(() => {\n switch (activeTab) {\n case \"pre-approved\":\n return \"Pre-Approved\"\n case \"past\":\n return \"Past Members\"\n case \"activity\":\n return \"Activity\"\n default:\n return \"Members\"\n }\n }, [activeTab])\n\n return (\n <>\n \n {hasAdminMemberInvites && activeTab === \"pre-approved\" && (\n \n )}\n \n\n \n \n \n All Members\n {hasAdminMemberInvites && (\n Pre-Approved\n )}\n Past Members\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\ngql(`\n fragment User_Admin on User {\n ...User_Card\n email\n activeStripeSubscription {\n id\n status\n plan {\n interval\n intervalCount\n }\n }\n active\n hidden\n createdAt\n fitApplicationSubmittedAt\n reversedFitDecisionAt\n fit\n onboardedAt\n\n fitProfile {\n id\n yearsOfExperience\n industry\n linkedinProfileUrl\n companySize\n vertical\n jobFunction\n }\n\n tier {\n id\n name\n level\n }\n\n previousTier {\n id\n name\n level\n }\n\n upcomingTier {\n id\n name\n level\n }\n }\n`)\n\nexport const USERS_QUERY_DOCUMENT = gql(`\n query AdminUsers(\n $first: Int,\n $after: String,\n $sort: UserSortEnum,\n $searchTerm: String,\n $unreviewedOnly: Boolean,\n $unfitOnly: Boolean,\n $fitOnly: Boolean,\n $placeId: ID,\n $expertiseIds: [ID!],\n $interestIds: [ID!],\n $subscriptionStatus: StripeSubscriptionStatusEnum,\n $onboardedAfter: ISO8601DateTime,\n $tierId: ID,\n $companySize: String,\n $applicationState: String,\n $activeOnly: Boolean,\n $inactiveOnly: Boolean,\n $roles: [UserRoleEnum!]\n $onboardingStates: [OnboardingStateEnum!]\n $industries: [IndustryEnum!]\n $verticals: [VerticalEnum!]\n $jobFunctions: [JobFunctionEnum!]\n $yearsOfExperience: [String!]\n $rulesEngineConditions: JSON\n $minimumTierLevel: TierLevelEnum\n $maximumTierLevel: TierLevelEnum\n ) {\n users(\n first: $first,\n after: $after,\n sort: $sort,\n query: $searchTerm,\n unreviewedOnly: $unreviewedOnly,\n unfitOnly: $unfitOnly,\n fitOnly: $fitOnly,\n placeId: $placeId,\n expertise: $expertiseIds,\n interests: $interestIds,\n subscriptionStatus: $subscriptionStatus,\n onboardedAfter: $onboardedAfter,\n tierId: $tierId,\n companySize: $companySize,\n applicationState: $applicationState,\n activeOnly: $activeOnly,\n inactiveOnly: $inactiveOnly,\n roles: $roles,\n onboardingStates: $onboardingStates,\n industries: $industries,\n verticals: $verticals,\n jobFunctions: $jobFunctions,\n yearsOfExperience: $yearsOfExperience,\n rulesEngineConditions: $rulesEngineConditions,\n minimumTierLevel: $minimumTierLevel,\n maximumTierLevel: $maximumTierLevel\n ) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ...User_Admin\n }\n }\n }\n }\n`)\n\nexport const USER_ADMIN_UPDATE_MUTATION = gql(`\n mutation UserAdminUpdate($input: UserUpdateInput!) {\n userUpdate(input: $input) {\n user {\n ...User_Admin\n }\n }\n }\n`)\n","import { gql } from \"~/__generated__\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"~/ui/table\"\nimport { useQuery } from \"@apollo/client\"\nimport { Error } from \"~/ui/Error\"\nimport { Skeleton } from \"~/ui/skeleton\"\nimport { useSearchParams } from \"react-router-dom\"\nimport { useDebounce } from \"use-debounce\"\nimport { Card } from \"~/ui/card\"\nimport { LeadsSearch } from \"./LeadsSearch\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { useState, useMemo, useEffect } from \"react\"\n\nconst LEADS_QUERY = gql(`\n query Leads($first: Int, $after: String, $searchTerm: String, $sort: UserSortEnum, $source: String, $variationParam: String) {\n leads(first: $first, after: $after, searchTerm: $searchTerm, sort: $sort, source: $source, variationParam: $variationParam) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n id\n name\n email\n source\n variationParam\n }\n }\n }\n }\n`)\n\nconst PAGE_SIZE = 10\n\nexport const LeadsTable = () => {\n const [searchParams, setSearchParams] = useSearchParams()\n const [searchTerm, setSearchTerm] = useState(\n searchParams.get(\"q\") || \"\"\n )\n const [debouncedSearchTerm] = useDebounce(searchTerm, 400)\n\n const headers = [\n { label: \"Name\", isPinned: true },\n { label: \"Email\" },\n { label: \"Source\" },\n { label: \"Variant\" },\n ]\n\n const queryOptions = useMemo(() => {\n const options: any = { first: PAGE_SIZE }\n if (debouncedSearchTerm) options.searchTerm = debouncedSearchTerm\n return { variables: options }\n }, [debouncedSearchTerm])\n\n const {\n data: currentData,\n previousData,\n loading,\n error,\n fetchMore,\n } = useQuery(LEADS_QUERY, {\n ...queryOptions,\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-and-network\",\n nextFetchPolicy: \"cache-first\",\n })\n\n const data = currentData || previousData\n\n const leads = useMemo(() => {\n return data?.leads.edges.map((e) => e.node) || []\n }, [data])\n\n const hasNextPage = !!data?.leads.pageInfo.hasNextPage\n const totalCount = data?.leads.totalCount || 0\n\n const memoizedSearchParams = useMemo(() => {\n const params = new URLSearchParams(searchParams.toString())\n if (debouncedSearchTerm !== params.get(\"q\")) {\n if (debouncedSearchTerm === \"\") {\n params.delete(\"q\")\n } else {\n params.set(\"q\", debouncedSearchTerm)\n }\n }\n return params\n }, [debouncedSearchTerm, searchParams])\n\n useEffect(() => {\n setSearchParams(memoizedSearchParams)\n }, [memoizedSearchParams, setSearchParams])\n\n return (\n <>\n
\n
\n \n
\n
\n\n {error ? (\n \n ) : (\n <>\n {leads.length > 0 && (\n
\n {totalCount} leads found\n
\n )}\n\n \n \n \n \n {headers.map((header) => (\n \n {header.label}\n \n ))}\n \n \n \n {leads.map((lead) => (\n \n {lead.name || \"-\"}\n {lead.email || \"-\"}\n {lead.source || \"-\"}\n {lead.variationParam || \"-\"}\n \n ))}\n {loading &&\n Array.from({ length: 10 }).map((_, index) => (\n \n {headers.map((header) => (\n \n \n \n ))}\n \n ))}\n \n
\n
\n \n )}\n\n
\n \n fetchMore({\n variables: {\n after: data?.leads.pageInfo.endCursor,\n },\n updateQuery: (prev, { fetchMoreResult }) => {\n if (!fetchMoreResult) return prev\n return {\n leads: {\n ...fetchMoreResult.leads,\n edges: [\n ...prev.leads.edges,\n ...fetchMoreResult.leads.edges,\n ],\n },\n }\n },\n })\n }\n canLoadMore={!loading && hasNextPage}\n loadingText=\"Loading more leads...\"\n loading={loading && leads.length > 0 && hasNextPage}\n />\n
\n \n )\n}\n","import { CircleHelp } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { LeadsTable } from \"~/admin/leads/LeadsTable\"\n\nexport const AdminLeadsScreen = () => {\n return (\n <>\n \n \n \n )\n}\n","import { gql } from \"~/__generated__\"\n\ngql(`\n fragment IntroductionCycle_Admin on IntroductionCycle {\n id\n name\n sendAt\n createdAt\n locked\n }\n`)\n\ngql(`\n fragment IntroductionMatch_Admin on IntroductionMatch {\n id\n matchValue\n accepted\n ignored\n user {\n ...IntroductionMatchUser_Admin\n }\n matchedWithUser {\n ...IntroductionMatchUser_Admin\n }\n }\n`)\n\ngql(`\n fragment IntroductionMatchUser_Admin on User {\n id\n name\n email\n creator\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_LIST_QUERY_DOCUMENT = gql(`\n query AdminIntroductionCyclesList($after: String) {\n introductionCycles(first: 20, after: $after) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ...IntroductionCycle_Admin\n }\n }\n }\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_COUNT_QUERY_DOCUMENT = gql(`\n query AdminIntroductionCyclesCount {\n introductionCycles {\n totalCount\n }\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_FIND_QUERY_DOCUMENT = gql(`\n query AdminIntroductionCycleFind($introductionCycleId: ID!) {\n introductionCycle(introductionCycleId: $introductionCycleId) {\n ...IntroductionCycle_Admin\n matches {\n ...IntroductionMatch_Admin\n }\n }\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_POSSIBLE_MATCHES_QUERY_DOCUMENT = gql(`\n query IntroductionCyclePossibleMatches($introductionMatchId: ID!) {\n introductionMatchPossibleMatches(introductionMatchId: $introductionMatchId) {\n ...IntroductionMatchUser_Admin\n }\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_CREATE_MUTATION = gql(`\n mutation IntroductionCycleAdminCreate($input: IntroductionCycleCreateInput!) {\n introductionCycleCreate(input: $input) {\n introductionCycle {\n ...IntroductionCycle_Admin\n }\n }\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_UPDATE_MUTATION = gql(`\n mutation IntroductionCycleAdminUpdate($input: IntroductionCycleUpdateInput!) {\n introductionCycleUpdate(input: $input) {\n introductionCycle {\n ...IntroductionCycle_Admin\n }\n }\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_SHUFFLE_MUTATION = gql(`\n mutation IntroductionCycleAdminShuffle($input: IntroductionCycleShuffleInput!) {\n introductionCycleShuffle(input: $input) {\n introductionCycle {\n ...IntroductionCycle_Admin\n matches {\n ...IntroductionMatch_Admin\n }\n }\n }\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_TOGGLE_ACCEPTANCE_MUTATION = gql(`\n mutation IntroductionMatchToggleAcceptance($input: IntroductionMatchToggleAcceptanceInput!) {\n introductionMatchToggleAcceptance(input: $input) {\n introductionCycle {\n ...IntroductionCycle_Admin\n matches {\n ...IntroductionMatch_Admin\n }\n }\n }\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_TOGGLE_IGNORANCE_MUTATION = gql(`\n mutation IntroductionMatchToggleIgnorance($input: IntroductionMatchToggleIgnoranceInput!) {\n introductionMatchToggleIgnorance(input: $input) {\n introductionCycle {\n ...IntroductionCycle_Admin\n matches {\n ...IntroductionMatch_Admin\n }\n }\n }\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_OVERRIDE_MATCH_MUTATION = gql(`\n mutation IntroductionMatchOverride($input: IntroductionMatchOverrideInput!) {\n introductionMatchOverride(input: $input) {\n introductionCycle {\n ...IntroductionCycle_Admin\n matches {\n ...IntroductionMatch_Admin\n }\n }\n }\n }\n`)\n\nexport const INTRODUCTION_CYCLES_ADMIN_ACCEPT_SELECTED_MUTATION = gql(`\n mutation IntroductionMatchAcceptSelected($input: IntroductionMatchAcceptSelectedInput!) {\n introductionMatchAcceptSelected(input: $input) {\n introductionCycle {\n ...IntroductionCycle_Admin\n matches {\n ...IntroductionMatch_Admin\n }\n }\n }\n }\n`)\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { formatInTimeZone, toDate } from \"date-fns-tz\"\nimport { useForm, SubmitHandler } from \"react-hook-form\"\nimport { useNavigate } from \"react-router-dom\"\nimport { z } from \"zod\"\nimport { Button } from \"~/ui/button\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\n\nconst formSchema = z.object({\n name: z.string().min(1, { message: \"Required\" }),\n sendAt: z.string(),\n})\n\nexport const INTRODUCTIONS_FIXED_TIMEZONE = \"America/New_York\"\n\nexport type IntroductionCycleFormValues = z.infer\n\nexport const IntroductionCycleForm = ({\n defaultValues,\n onSubmit,\n loading,\n}: {\n defaultValues: IntroductionCycleFormValues\n onSubmit: SubmitHandler\n loading: boolean\n}) => {\n const form = useForm>({\n resolver: zodResolver(formSchema),\n defaultValues: defaultValues,\n })\n const navigate = useNavigate()\n\n return (\n
\n \n (\n \n Name\n
\n \n \n \n
\n \n
\n )}\n />\n (\n \n Send Date\n
\n {formatInTimeZone(\n parseIntroductionsDateField(field.value),\n INTRODUCTIONS_FIXED_TIMEZONE,\n \"M/d/yyyy p zzz\"\n )}\n \n {\n form.setValue(\"sendAt\", e.target.value)\n }}\n />\n \n
\n \n
\n )}\n />\n\n
\n\n
\n navigate(-1)}\n >\n Cancel\n \n \n Save Cycle\n \n
\n \n \n )\n}\n\nexport const parseIntroductionsDateField = (dateString: string) => {\n return toDate(dateString, { timeZone: INTRODUCTIONS_FIXED_TIMEZONE })\n}\n\nexport const utcDateToIntroductionsDateField = (date: Date) => {\n return formatInTimeZone(\n date,\n INTRODUCTIONS_FIXED_TIMEZONE,\n \"yyyy-MM-dd'T'HH:mm\"\n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { formatInTimeZone } from \"date-fns-tz\"\nimport {\n adminNewIntroductionCyclePath,\n adminIntroductionCyclePath,\n adminEditIntroductionCyclePath,\n} from \"~/common/paths\"\nimport { INTRODUCTION_CYCLES_ADMIN_LIST_QUERY_DOCUMENT } from \"~/introduction-cycles/api\"\nimport { LinkButton } from \"~/ui/button\"\nimport { Error } from \"~/ui/Error\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\n\nimport { INTRODUCTIONS_FIXED_TIMEZONE } from \"~/introduction-cycles/IntroductionCycleForm\"\nimport { HeartHandshake } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { Card } from \"~/ui/card\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"~/ui/table\"\n\nexport const AdminIntroductionsScreen = () => {\n const { data, loading, error, fetchMore } = useQuery(\n INTRODUCTION_CYCLES_ADMIN_LIST_QUERY_DOCUMENT\n )\n\n const introductionCycles =\n data?.introductionCycles?.edges.map((e) => e.node) || []\n\n if (loading) return \n if (error || !data)\n return \n\n return (\n <>\n \n \n New Cycle\n \n \n\n \n \n \n \n Name\n Send Date\n Created\n Actions\n \n \n \n {introductionCycles.map((cycle) => (\n \n {cycle.name}\n \n {formatInTimeZone(\n cycle.sendAt,\n INTRODUCTIONS_FIXED_TIMEZONE,\n \"M/d/yyyy p zzz\"\n )}\n \n \n {formatInTimeZone(\n cycle.createdAt,\n INTRODUCTIONS_FIXED_TIMEZONE,\n \"M/d/yyyy p zzz\"\n )}\n \n \n
\n \n View\n \n {!cycle.locked && (\n \n Edit\n \n )}\n
\n
\n
\n ))}\n
\n
\n
\n {data.introductionCycles && (\n {\n if (!data.introductionCycles) {\n return\n }\n fetchMore({\n variables: {\n after: data.introductionCycles.pageInfo.endCursor,\n },\n })\n }}\n canLoadMore={!loading && data.introductionCycles.pageInfo.hasNextPage}\n loadingText=\"Loading introduction cycles...\"\n loading={loading && introductionCycles.length > 0}\n />\n )}\n \n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { addDays, setHours, setMinutes, setSeconds } from \"date-fns\"\nimport { HeartHandshake } from \"lucide-react\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate } from \"react-router-dom\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { adminIntroductionsPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport {\n INTRODUCTION_CYCLES_ADMIN_COUNT_QUERY_DOCUMENT,\n INTRODUCTION_CYCLES_ADMIN_CREATE_MUTATION,\n} from \"~/introduction-cycles/api\"\nimport {\n IntroductionCycleForm,\n IntroductionCycleFormValues,\n parseIntroductionsDateField,\n utcDateToIntroductionsDateField,\n} from \"~/introduction-cycles/IntroductionCycleForm\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { Error } from \"~/ui/Error\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\n\nexport const AdminNewIntroductionCycleScreen = () => {\n const navigate = useNavigate()\n const { data, loading } = useQuery(\n INTRODUCTION_CYCLES_ADMIN_COUNT_QUERY_DOCUMENT\n )\n const [runIntroductionCycleCreate, introductionCycleCreateResult] =\n useSafeMutation(INTRODUCTION_CYCLES_ADMIN_CREATE_MUTATION)\n\n const onSubmit = async (values: IntroductionCycleFormValues) => {\n const { errors } = await runIntroductionCycleCreate({\n variables: {\n input: {\n name: values.name,\n sendAt: parseIntroductionsDateField(values.sendAt).toISOString(),\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\"Created introduction cycle\")\n navigate(adminIntroductionsPath.pattern)\n }\n }\n\n return (\n <>\n \n {loading ? (\n \n ) : data?.introductionCycles ? (\n \n \n \n \n \n ) : (\n \n )}\n \n )\n}\n","import { cn } from \"~/lib/utils\"\n\nexport const ClickableIconWrapper = ({\n onClick,\n border,\n blue,\n primary,\n children,\n}: {\n onClick: (event: React.MouseEvent) => void\n border?: boolean\n blue?: boolean\n primary?: boolean\n children: React.ReactNode\n}) => {\n return (\n \n {children}\n
\n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useForm, SubmitHandler } from \"react-hook-form\"\nimport { z } from \"zod\"\nimport { Button } from \"~/ui/button\"\nimport { Form, FormControl, FormField, FormItem, FormMessage } from \"~/ui/form\"\nimport { IntroductionMatch } from \"./types\"\nimport { INTRODUCTION_CYCLES_ADMIN_POSSIBLE_MATCHES_QUERY_DOCUMENT } from \"./api\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"~/ui/select\"\nimport { Error } from \"~/ui/Error\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\nimport { UserName } from \"~/directory/UserName\"\n\nconst formSchema = z.object({\n matchedWithUserId: z.string().min(1, { message: \"Required\" }),\n})\n\nexport type IntroductionMatchOverrideFormValues = z.infer\n\nexport const IntroductionMatchOverrideForm = ({\n match,\n onOverrideMatch,\n}: {\n match: IntroductionMatch\n onOverrideMatch: (userId: string) => void\n}) => {\n const { data, loading, error } = useQuery(\n INTRODUCTION_CYCLES_ADMIN_POSSIBLE_MATCHES_QUERY_DOCUMENT,\n {\n variables: {\n introductionMatchId: match.id,\n },\n }\n )\n const possibleMatches = data?.introductionMatchPossibleMatches || []\n\n const form = useForm>({\n resolver: zodResolver(formSchema),\n defaultValues: {\n matchedWithUserId: match.matchedWithUser?.id,\n },\n })\n\n const onSubmit: SubmitHandler = async (\n values\n ) => {\n onOverrideMatch(values.matchedWithUserId)\n }\n\n if (loading) {\n return \n } else if (error) {\n return \n } else if (possibleMatches.length === 0) {\n return (\n \n )\n }\n\n return (\n
\n \n (\n \n \n \n )}\n />\n
\n \n
\n \n \n )\n}\n","import { useUserDialogContext } from \"~/directory/UserDialogContext\"\nimport { UserName } from \"~/directory/UserName\"\nimport Info from \"~/images/icons/info.svg?react\"\nimport Pin from \"~/images/icons/pin.svg?react\"\nimport { cn } from \"~/lib/utils\"\nimport { Button } from \"~/ui/button\"\nimport { ClickableIconWrapper } from \"~/ui/ClickableIconWrapper\"\nimport { TableCell, TableRow } from \"~/ui/table\"\nimport { IntroductionMatchOverrideForm } from \"./IntroductionMatchOverrideForm\"\nimport { IntroductionMatch, IntroductionUser } from \"./types\"\n\nexport const IntroductionMatchRow = ({\n match,\n index,\n overriding,\n loading,\n locked,\n selected,\n onToggleAcceptanceClick,\n onToggleIgnoranceClick,\n onToggleOverrideClick,\n onOverrideMatch,\n onToggleSelectClick,\n}: {\n match: IntroductionMatch\n index: number\n overriding: boolean\n loading: boolean\n locked: boolean\n selected: boolean\n onToggleAcceptanceClick: () => void\n onToggleIgnoranceClick: () => void\n onToggleOverrideClick: () => void\n onOverrideMatch: (userId: string) => void\n onToggleSelectClick: () => void\n}) => {\n const canToggleAcceptance = !locked && !overriding && !match.ignored\n const canToggleIgnorance = !locked && !overriding && !match.accepted\n const canToggleOverride = !locked && !match.accepted && !match.ignored\n const canSelect = !locked && !match.accepted && !match.ignored\n\n return (\n \n \n {canSelect && (\n \n \n \n )}\n \n {index + 1}\n \n \n \n \n
\n {overriding ? (\n \n ) : match.matchedWithUser ? (\n \n ) : (\n -----------------\n )}\n {canToggleOverride && (\n \n {overriding ? \"Cancel\" : \"Override\"}\n \n )}\n
\n \n {match.matchValue}\n \n {canToggleAcceptance && (\n \n {match.accepted ? \"Unaccept\" : \"Accept\"}\n \n )}\n \n \n {canToggleIgnorance && (\n \n )}\n \n \n )\n}\n\nconst UserData = ({ user }: { user: IntroductionUser }) => {\n const { openUserDialog } = useUserDialogContext()\n\n return (\n
\n
\n
\n \n
\n openUserDialog(user.id)}\n className=\"p-0\"\n >\n \n \n
\n
{user.email}
\n
\n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { HeartHandshake } from \"lucide-react\"\nimport { useCallback, useMemo, useState } from \"react\"\nimport { useParams } from \"react-router-dom\"\nimport invariant from \"tiny-invariant\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport {\n INTRODUCTION_CYCLES_ADMIN_ACCEPT_SELECTED_MUTATION,\n INTRODUCTION_CYCLES_ADMIN_FIND_QUERY_DOCUMENT,\n INTRODUCTION_CYCLES_ADMIN_OVERRIDE_MATCH_MUTATION,\n INTRODUCTION_CYCLES_ADMIN_TOGGLE_ACCEPTANCE_MUTATION,\n INTRODUCTION_CYCLES_ADMIN_TOGGLE_IGNORANCE_MUTATION,\n} from \"~/introduction-cycles/api\"\nimport { IntroductionMatchRow } from \"~/introduction-cycles/IntroductionMatchRow\"\nimport { Button } from \"~/ui/button\"\nimport { Card } from \"~/ui/card\"\nimport { Error } from \"~/ui/Error\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { Table, TableBody, TableHead, TableHeader, TableRow } from \"~/ui/table\"\n\nexport const AdminIntroductionCycleScreen = () => {\n const { introductionCycleId } = useParams()\n invariant(introductionCycleId)\n const [overridingMatchId, setOverridingMatchId] = useState(\n null\n )\n const [selectedMatchIds, setSelectedMatchIds] = useState([])\n\n const {\n data,\n loading: fetchLoading,\n error: fetchError,\n } = useQuery(INTRODUCTION_CYCLES_ADMIN_FIND_QUERY_DOCUMENT, {\n variables: {\n introductionCycleId: introductionCycleId,\n },\n })\n const [\n runIntroductionMatchToggleAcceptance,\n introductionMatchToggleAcceptanceResult,\n ] = useSafeMutation(INTRODUCTION_CYCLES_ADMIN_TOGGLE_ACCEPTANCE_MUTATION)\n const [\n runIntroductionMatchToggleIgnorance,\n introductionMatchToggleIgnoranceResult,\n ] = useSafeMutation(INTRODUCTION_CYCLES_ADMIN_TOGGLE_IGNORANCE_MUTATION)\n const [\n runIntroductionMatchOverrideMatch,\n introductionMatchOverrideMatchResult,\n ] = useSafeMutation(INTRODUCTION_CYCLES_ADMIN_OVERRIDE_MATCH_MUTATION)\n const [\n runIntroductionMatchAcceptSelected,\n introductionMatchAcceptSelectedResult,\n ] = useSafeMutation(INTRODUCTION_CYCLES_ADMIN_ACCEPT_SELECTED_MUTATION)\n\n const matches = useMemo(() => data?.introductionCycle?.matches || [], [data])\n const locked = !!data?.introductionCycle?.locked\n const selectableMatches = useMemo(\n () => matches.filter((m) => !m.ignored && !m.accepted),\n [matches]\n )\n const allSelected = useMemo(\n () =>\n selectableMatches.length > 0 &&\n selectedMatchIds.length === selectableMatches.length,\n [selectableMatches, selectedMatchIds]\n )\n\n const onSelectAllToggle = useCallback(() => {\n if (allSelected) {\n setSelectedMatchIds([])\n } else {\n setSelectedMatchIds(selectableMatches.map((m) => m.id))\n }\n }, [allSelected, selectableMatches])\n\n const onAcceptSelectedMatches = () => {\n runIntroductionMatchAcceptSelected({\n variables: {\n input: {\n introductionMatchIds: selectedMatchIds,\n },\n },\n })\n setSelectedMatchIds([])\n }\n\n const matchesLoading =\n introductionMatchToggleAcceptanceResult.loading ||\n introductionMatchToggleIgnoranceResult.loading ||\n introductionMatchOverrideMatchResult.loading ||\n introductionMatchAcceptSelectedResult.loading\n const matchesError =\n introductionMatchToggleAcceptanceResult.error ||\n introductionMatchToggleIgnoranceResult.error ||\n introductionMatchOverrideMatchResult.error ||\n introductionMatchAcceptSelectedResult.error\n\n return (\n <>\n \n {!fetchLoading && !fetchError && !locked && (\n
\n \n {allSelected ? \"Unselect All\" : \"Select All\"}\n \n \n Accept {selectedMatchIds.length} Selected Matches\n \n
\n )}\n
\n {fetchLoading ? (\n \n ) : fetchError ? (\n \n ) : (\n <>\n {matchesError ? (\n \n ) : (\n \n \n \n \n Select\n #\n User\n Match\n Value\n Accepted\n Ignored\n \n \n \n {matches.map((match, index) => (\n \n runIntroductionMatchToggleAcceptance({\n variables: {\n input: {\n introductionMatchId: match.id,\n },\n },\n })\n }\n onToggleIgnoranceClick={() =>\n runIntroductionMatchToggleIgnorance({\n variables: {\n input: {\n introductionMatchId: match.id,\n },\n },\n })\n }\n onToggleOverrideClick={() => {\n if (overridingMatchId === match.id) {\n setOverridingMatchId(null)\n } else {\n setOverridingMatchId(match.id)\n }\n }}\n onOverrideMatch={(userId: string) => {\n runIntroductionMatchOverrideMatch({\n variables: {\n input: {\n introductionMatchId: match.id,\n matchedWithUserId: userId,\n },\n },\n })\n setOverridingMatchId(null)\n }}\n onToggleSelectClick={() => {\n if (selectedMatchIds.includes(match.id)) {\n setSelectedMatchIds(\n selectedMatchIds.filter((id) => id !== match.id)\n )\n } else {\n setSelectedMatchIds([...selectedMatchIds, match.id])\n }\n }}\n />\n ))}\n \n
\n
\n )}\n \n )}\n \n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate, useParams } from \"react-router-dom\"\nimport invariant from \"tiny-invariant\"\nimport { adminIntroductionsPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport {\n INTRODUCTION_CYCLES_ADMIN_UPDATE_MUTATION,\n INTRODUCTION_CYCLES_ADMIN_FIND_QUERY_DOCUMENT,\n} from \"~/introduction-cycles/api\"\nimport {\n IntroductionCycleForm,\n IntroductionCycleFormValues,\n parseIntroductionsDateField,\n utcDateToIntroductionsDateField,\n} from \"~/introduction-cycles/IntroductionCycleForm\"\nimport { Error } from \"~/ui/Error\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\n\nimport { parseISO } from \"date-fns\"\nimport { HeartHandshake } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { Card, CardContent } from \"~/ui/card\"\n\nexport const AdminEditIntroductionCycleScreen = () => {\n const { introductionCycleId } = useParams()\n invariant(introductionCycleId)\n const navigate = useNavigate()\n\n const { data, loading } = useQuery(\n INTRODUCTION_CYCLES_ADMIN_FIND_QUERY_DOCUMENT,\n {\n variables: {\n introductionCycleId: introductionCycleId,\n },\n }\n )\n const [runIntroductionCycleUpdate, introductionCycleUpdateResult] =\n useSafeMutation(INTRODUCTION_CYCLES_ADMIN_UPDATE_MUTATION)\n\n const onSubmit = async (values: IntroductionCycleFormValues) => {\n const { errors } = await runIntroductionCycleUpdate({\n variables: {\n input: {\n introductionCycleId: introductionCycleId,\n name: values.name,\n sendAt: parseIntroductionsDateField(values.sendAt).toISOString(),\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\"Updated introduction cycle\")\n navigate(adminIntroductionsPath.pattern)\n }\n }\n\n console.log({ data })\n\n return (\n <>\n \n {loading ? (\n \n ) : data?.introductionCycle ? (\n \n \n \n \n \n ) : (\n \n )}\n \n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { DotsHorizontalIcon } from \"@radix-ui/react-icons\"\nimport { MessagesSquare, Users } from \"lucide-react\"\nimport { useMemo, useRef, useState } from \"react\"\nimport { useLocation, useNavigate } from \"react-router-dom\"\nimport { useDebounce } from \"use-debounce\"\nimport { gql } from \"~/__generated__\"\nimport { ChannelVisibilityEnum, Group } from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { AdminTable, AdminTableHeader } from \"~/admin/users/UsersTable\"\nimport {\n adminChannelEditPath,\n adminChannelsPath,\n adminGroupEditPath,\n adminGroupNewPath,\n adminGroupsPath,\n} from \"~/common/paths\"\nimport { Badge } from \"~/ui/badge\"\nimport { Button } from \"~/ui/button\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { SearchInput } from \"~/ui/SearchInput\"\nimport { TableCell, TableRow } from \"~/ui/table\"\nimport { Tabs, TabsList, TabsTrigger } from \"~/ui/tabs\"\nimport { Muted } from \"~/ui/typography\"\n\nconst HEADERS: AdminTableHeader[] = [\n { label: \"Group Handle\" },\n { label: \"Description\" },\n { label: \"Group Type\" },\n { label: \"Group Size\" },\n { label: \"Linked Channels\" },\n { label: \"Active\" },\n { label: \"Actions\" },\n]\n\nexport const AdminGroupsScreen = () => {\n const [searchTerm, setSearchTerm] = useState(\"\")\n const [debouncedSearchTerm] = useDebounce(searchTerm, 300)\n const { data, loading } = useQuery(GROUPS_QUERY_DOCUMENT, {\n variables: { searchTerm: debouncedSearchTerm },\n pollInterval: 5000,\n })\n const navigate = useNavigate()\n const groups = data?.groups.nodes\n\n return (\n <>\n \n \n \n \n\n \n\n \n {(group) => }\n \n \n )\n}\n\nconst GroupRow = ({ group }: { group: Partial }) => {\n const contextMenuTriggerRef = useRef(null)\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n const navigate = useNavigate()\n\n return (\n \n \n navigate(adminGroupEditPath({ id: group.id! }))}\n className=\"cursor-pointer\"\n >\n Edit Group\n \n \n \n \n @{group.slug}\n {group.description}\n {group.groupType}\n {group.usersCount}\n \n {!group.channels ||\n group.channels.filter(\n (c) => c.visibility === ChannelVisibilityEnum.Private\n ).length === 0 ? (\n N/A\n ) : (\n
\n {group.channels\n ?.filter(\n (c) => c.visibility === ChannelVisibilityEnum.Private\n )\n .map((channel) => (\n \n navigate(\n adminChannelEditPath({ channelId: channel.id! })\n )\n }\n >\n {channel.slug}\n \n ))}\n
\n )}\n
\n \n \n {group.active ? \"Yes\" : \"No\"}\n \n \n \n \n \n
\n
\n
\n )\n}\n\nexport const ChannelsAndGroupsTabs = () => {\n const location = useLocation()\n const navigate = useNavigate()\n\n const activeTab = useMemo(() => {\n if (location.pathname.includes(adminGroupsPath.pattern)) {\n return \"groups\"\n } else {\n return \"channels\"\n }\n }, [location.pathname])\n\n const onTabChange = (value: string) => {\n if (value === \"channels\") {\n navigate(adminChannelsPath.pattern)\n } else {\n navigate(adminGroupsPath.pattern)\n }\n }\n\n return (\n \n \n Channels\n Groups\n \n \n )\n}\n\nexport const GROUPS_QUERY_DOCUMENT = gql(`\n query AdminGroups($searchTerm: String) {\n groups(search: $searchTerm) {\n nodes {\n id\n slug\n description\n active\n groupType\n usersCount\n createdAt\n\n channels {\n id\n slug\n visibility\n }\n }\n }\n }\n`)\n","export const AdminActionToolbar = ({\n children,\n}: {\n children: React.ReactNode\n}) => {\n return (\n
\n
{children}
\n
\n )\n}\n","import { FetchResult, useQuery } from \"@apollo/client\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useMemo, useState } from \"react\"\nimport { useForm, useFormState, useWatch } from \"react-hook-form\"\nimport toast from \"react-hot-toast\"\nimport { z } from \"zod\"\nimport {\n ChannelCreateInput,\n ChannelCreateMutation,\n ChannelUpdateMutation,\n ChannelVisibilityEnum,\n} from \"~/__generated__/graphql\"\nimport { Form } from \"~/ui/form\"\nimport { AdminActionToolbar } from \"./AdminActionToolbar\"\nimport { Switch } from \"~/ui/switch\"\nimport { Button } from \"~/ui/button\"\nimport { TextField } from \"~/components/forms/TextField\"\nimport { GROUPS_QUERY_DOCUMENT } from \"~/screens/admin/AdminGroupsScreen\"\nimport { SearchableSelectField } from \"~/components/forms/SearchableSelectField\"\nimport { cn } from \"~/lib/utils\"\nimport { UploadDropzone } from \"~/ui/UploadDropzone\"\n\nconst formSchema = z\n .object({\n name: z\n .string()\n .min(1, { message: \"Required\" })\n .max(30, { message: \"Cannot exceed 30 characters\" }),\n description: z\n .string()\n .max(75, { message: \"Cannot exceed 75 characters\" })\n .optional(),\n groupId: z.string().optional(),\n modalHeader: z.string().nullable().optional(),\n modalSubheader: z.string().nullable().optional(),\n imageId: z.string().nullable().optional(),\n active: z.boolean(),\n visibility: z.nativeEnum(ChannelVisibilityEnum),\n })\n .superRefine(({ groupId, visibility }, ctx) => {\n // groupId is required if visibility is private\n if (visibility === ChannelVisibilityEnum.Private && !groupId) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Required\",\n path: [\"groupId\"],\n })\n }\n\n return ctx\n })\n\nexport type ChannelFormValues = z.infer\n\ninterface ChannelFormProps {\n initialValues?: Partial & { imageUrl?: string }\n onSubmit: (\n data: ChannelCreateInput\n ) => Promise<\n FetchResult | FetchResult\n >\n visibility: ChannelVisibilityEnum\n}\n\nexport const ChannelForm = ({\n initialValues,\n onSubmit,\n visibility,\n}: ChannelFormProps) => {\n const form = useForm({\n resolver: zodResolver(formSchema),\n defaultValues: {\n name: \"\",\n description: \"\",\n groupId: undefined,\n modalHeader: \"\",\n modalSubheader: \"\",\n imageId: undefined,\n active: false,\n visibility: visibility,\n ...(initialValues || {}),\n },\n })\n const { isDirty } = useFormState({ control: form.control })\n const [isSaving, setIsSaving] = useState(false)\n const { data, loading } = useQuery(GROUPS_QUERY_DOCUMENT)\n\n const handleSubmit = async ({ groupId, ...data }: ChannelFormValues) => {\n setIsSaving(true)\n try {\n await onSubmit({\n ...data,\n groupIds: groupId ? [groupId] : [],\n visibility,\n })\n } catch (e) {\n console.error(e)\n toast.error(\"Failed to save channel\")\n }\n setIsSaving(false)\n }\n\n const groupIdSelectEntries = useMemo(() => {\n if (!data?.groups.nodes) return []\n return data.groups.nodes.map((group) => ({\n label: `@${group.slug}`,\n value: group.id,\n }))\n }, [data])\n\n const values = useWatch({ control: form.control })\n\n return (\n <>\n
\n \n
\n
\n {Object.keys(form.formState.errors).length > 0 &&\n Object.entries(form.formState.errors).map(([key, error]) => (\n
\n {key} {error.message}\n
\n ))}\n
\n
\n {visibility}\n {values.visibility}\n
\n 30 && \"text-error\"\n )}\n >\n {values.name?.length || 0}/30\n
\n }\n />\n\n 75 &&\n \"text-error\"\n )}\n >\n {values.description?.length || 0}/75\n \n }\n />\n\n {visibility === ChannelVisibilityEnum.Private && (\n <>\n \n\n \n\n \n\n Upload A Channel Image}\n body={\n <>\n Channel images are displayed in a modal when users first\n land on the channel. These image are also used in the\n “Feed” with options for users to “Upgrade” or “Join”.\n \n }\n />\n \n )}\n \n\n \n \n form.setValue(\"active\", !!value, { shouldDirty: true })\n }\n />\n \n Save Channel\n \n \n \n \n \n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { ChevronLeft, ChevronRight, Hash, Lock } from \"lucide-react\"\nimport { useEffect, useMemo, useState } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate, useParams } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport {\n ChannelCreateInput,\n ChannelVisibilityEnum,\n} from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { ChannelForm } from \"~/admin/ChannelForm\"\nimport { useChannels } from \"~/common/ChannelsProvider\"\nimport { adminChannelsPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { UserName } from \"~/directory/UserName\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { IconButton } from \"~/ui/IconButton\"\nimport { H6 } from \"~/ui/typography\"\n\nexport const AdminChannelEditScreen = () => {\n const { channelId } = useParams()\n const { channels } = useChannels()\n const [runUpdateChannel] = useSafeMutation(UPDATE_CHANNEL_MUTATION)\n const navigate = useNavigate()\n const [usersAfter, setUsersAfter] = useState(null)\n const [usersBefore, setUsersBefore] = useState(\n null\n )\n const { data } = useQuery(CHANNEL_QUERY_DOCUMENT, {\n variables: { channelId: channelId!, usersAfter, usersBefore },\n })\n const users = useMemo(\n () => data?.channel.activeUsers.edges.map((e) => e.node),\n [data]\n )\n const hasNextPage = useMemo(\n () => data?.channel.activeUsers.pageInfo.hasNextPage,\n [data]\n )\n const hasPreviousPage = useMemo(\n () => data?.channel.activeUsers.pageInfo.hasPreviousPage,\n [data]\n )\n const startCursor = useMemo(\n () => data?.channel.activeUsers.pageInfo.startCursor,\n [data]\n )\n const endCursor = useMemo(\n () => data?.channel.activeUsers.pageInfo.endCursor,\n [data]\n )\n\n const channel = useMemo(() => {\n return channels.find((channel) => channel.id === channelId)\n }, [channels, channelId])\n\n const handleSubmit = async (data: ChannelCreateInput) => {\n const response = await runUpdateChannel({\n variables: {\n input: {\n channelId: channelId!,\n removeImage: !data.imageId,\n ...data,\n },\n },\n })\n\n const { data: responseData, errors } = response\n\n if (errors) {\n displayErrors(errors)\n } else if (responseData?.channelUpdate?.channel) {\n toast.success(\"Channel updated.\")\n navigate(adminChannelsPath.pattern)\n }\n\n return response\n }\n\n useEffect(() => {\n if (!channel) {\n navigate(adminChannelsPath.pattern)\n }\n }, [channel, navigate])\n\n const initialValues = useMemo(() => {\n if (!channel) return null\n\n return {\n id: channel.id,\n slug: channel.slug,\n name: channel.name,\n active: channel.active,\n imageId: channel.imageId || undefined,\n imageUrl: channel.imageUrl || undefined,\n description: channel.description || \"\",\n modalHeader: channel.modalHeader || \"\",\n modalSubheader: channel.modalSubheader || \"\",\n groupId: channel.groups?.[0]?.id || undefined,\n }\n }, [channel])\n\n const nextPage = () => {\n setUsersBefore(null)\n setUsersAfter(endCursor)\n }\n\n const prevPage = () => {\n setUsersAfter(null)\n setUsersBefore(startCursor)\n }\n\n if (!channel) return null\n\n return (\n <>\n \n\n
\n
\n \n
\n {channel.visibility === ChannelVisibilityEnum.Private && (\n
\n
\n
Channel Members
\n
\n {channel.activeUsersCount} of {channel.totalUsersCount}\n
\n
\n
\n {users?.map((user) => (\n
\n \n
\n \n
\n
\n ))}\n
\n
\n \n \n \n \n \n \n
\n
\n )}\n
\n \n )\n}\n\nconst CHANNEL_QUERY_DOCUMENT = gql(`\n query Channel($channelId: ID!, $usersAfter: String, $usersBefore: String) {\n channel(channelId: $channelId) {\n ...Channel_Display\n\n activeUsers(first: 10, after: $usersAfter, before: $usersBefore) {\n totalCount\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n edges {\n node {\n ...User_Admin\n }\n }\n }\n }\n }\n`)\n\nexport const UPDATE_CHANNEL_MUTATION = gql(`\n mutation ChannelUpdate($input: ChannelUpdateInput!) {\n channelUpdate(input: $input) {\n channel {\n ...Channel_Display\n }\n }\n }\n`)\n","import { DotsVerticalIcon } from \"@radix-ui/react-icons\"\nimport { formatDate } from \"date-fns\"\nimport { ChevronDown, Hash, Lock, MessagesSquare } from \"lucide-react\"\nimport { useEffect, useRef, useState } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { useDebounce } from \"use-debounce\"\nimport { Channel, ChannelVisibilityEnum } from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { Button } from \"~/ui/button\"\nimport { useConfirm } from \"~/ui/Confirm\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { SearchInput } from \"~/ui/SearchInput\"\nimport { ChannelsAndGroupsTabs } from \"./AdminGroupsScreen\"\nimport { useChannels } from \"~/common/ChannelsProvider\"\nimport { AdminTable, AdminTableHeader } from \"~/admin/users/UsersTable\"\nimport { TableCell, TableRow } from \"~/ui/table\"\nimport { SimpleTooltip } from \"~/ui/SimpleTooltip\"\nimport { Switch } from \"~/ui/switch\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"~/ui/popover\"\nimport { Muted } from \"~/ui/typography\"\nimport { useNavigate } from \"react-router-dom\"\nimport { adminChannelEditPath, adminChannelNewPath } from \"~/common/paths\"\nimport { UPDATE_CHANNEL_MUTATION } from \"./AdminChannelEditScreen\"\n\nconst HEADERS: AdminTableHeader[] = [\n { label: \"Visibility\" },\n { label: \"Channel Name\" },\n { label: \"Description\" },\n { label: \"Members\" },\n { label: \"Type\" },\n { label: \"Date Created\" },\n { label: \"Actions\" },\n]\n\nexport const AdminChannelsScreen = () => {\n const [searchTerm, setSearchTerm] = useState(\"\")\n const [debouncedSearchTerm] = useDebounce(searchTerm, 300)\n const navigate = useNavigate()\n\n const {\n filteredChannels: channels,\n loadingFilteredChannels: loading,\n setSearchTerm: setChannelSearchTerm,\n } = useChannels()\n useEffect(() => {\n setChannelSearchTerm(debouncedSearchTerm)\n }, [debouncedSearchTerm, setChannelSearchTerm])\n\n return (\n <>\n \n \n \n \n \n \n
\n \n navigate(adminChannelNewPath({ visibility: \"public\" }))\n }\n >\n
\n
\n Public Channel\n
\n \n A public channel automatically includes all active community\n members.\n \n
\n \n\n \n navigate(adminChannelNewPath({ visibility: \"private\" }))\n }\n >\n
\n
\n Private Channel\n
\n \n A private channel restricts access based on group\n membership.\n \n
\n \n
\n
\n
\n
\n\n \n\n \n\n \n {(channel) => }\n \n \n )\n}\n\nconst ChannelRow = ({\n channel,\n}: {\n channel: Pick<\n Channel,\n | \"id\"\n | \"name\"\n | \"description\"\n | \"activeUsersCount\"\n | \"totalUsersCount\"\n | \"active\"\n | \"createdAt\"\n | \"visibility\"\n >\n}) => {\n const [runUpdateChannel] = useSafeMutation(UPDATE_CHANNEL_MUTATION)\n const contextMenuTriggerRef = useRef(null)\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n const showConfirm = useConfirm()\n\n const toggleActive = () => {\n showConfirm({\n title: channel.active ? \"Deactivate Channel\" : \"Activate Channel\",\n body: channel.active\n ? \"Deactivating a channel will hide it from community members and make it read-only. Are you sure you want to deactivate this channel?\"\n : \"Activating a channel will make it visible to community members. Are you sure you want to activate this channel?\",\n onConfirm: async () => {\n const { errors } = await runUpdateChannel({\n variables: {\n input: {\n channelId: channel.id!,\n active: !channel.active,\n },\n },\n })\n\n if (errors) {\n toast.error(\"Failed to update channel\")\n return\n }\n },\n })\n }\n\n const navigate = useNavigate()\n const edit = () => {\n navigate(adminChannelEditPath({ channelId: channel.id }))\n }\n\n return (\n \n \n \n Edit Channel\n \n \n {channel.active ? \"Deactivate Channel\" : \"Activate Channel\"}\n \n \n \n \n \n \n
\n \n
\n \n
\n {channel.name}\n \n {channel.description ? (\n
\n {channel.description}\n
\n ) : (\n N/A\n )}\n
\n \n {channel.activeUsersCount} of {channel.totalUsersCount}\n \n \n {channel.visibility === ChannelVisibilityEnum.Public\n ? \"Public\"\n : \"Private\"}\n \n \n {formatDate(new Date(channel.createdAt), \"MM/dd/yyyy\")}\n \n \n \n \n
\n
\n
\n )\n}\n","import { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { PRO_EVENT_ADMIN_UPDATE_MUTATION } from \"~/pro-events/pro-events\"\nimport { Switch } from \"~/ui/switch\"\n\nexport const PublishedToggle = ({\n proEventId,\n published,\n}: {\n proEventId: string\n published: boolean\n}) => {\n const [proEventUpdate, { loading }] = useSafeMutation(\n PRO_EVENT_ADMIN_UPDATE_MUTATION\n )\n\n const onChange = async (published: boolean) => {\n const { errors } = await proEventUpdate({\n variables: {\n input: {\n proEventId: proEventId,\n published: published,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n }\n }\n\n return (\n
\n {\n onChange(val)\n }}\n disabled={loading}\n />\n
\n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { formatInTimeZone } from \"date-fns-tz\"\nimport { CalendarDays } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { adminProEventEditPath, adminProEventNewPath } from \"~/common/paths\"\nimport {\n PRO_EVENTS_ADMIN_LIST_QUERY_DOCUMENT,\n PRO_EVENT_FIXED_TIMEZONE,\n} from \"~/pro-events/pro-events\"\nimport { PublishedToggle } from \"~/pro-events/PublishedToggle\"\nimport { LinkButton } from \"~/ui/button\"\nimport { Card } from \"~/ui/card\"\nimport { Error } from \"~/ui/Error\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"~/ui/table\"\n\nexport const AdminProEventsScreen = () => {\n const { data, loading, error, fetchMore } = useQuery(\n PRO_EVENTS_ADMIN_LIST_QUERY_DOCUMENT,\n {\n variables: {\n after: null,\n },\n }\n )\n\n const proEvents = data?.proEvents?.edges.map((e) => e.node) || []\n\n if (loading) return \n if (error || !data) return \n\n return (\n <>\n \n New Pro Event\n \n \n \n \n \n Title\n Event Date\n Published\n Actions\n \n \n \n {proEvents.map((proEvent) => (\n \n {proEvent.title}\n \n {formatInTimeZone(\n proEvent.date,\n PRO_EVENT_FIXED_TIMEZONE,\n \"M/dd/yyyy zzz\"\n )}\n \n \n \n \n \n \n Edit\n \n \n \n ))}\n \n
\n
\n {data.proEvents && (\n {\n if (!data.proEvents) {\n return\n }\n fetchMore({\n variables: {\n after: data.proEvents.pageInfo.endCursor,\n },\n })\n }}\n canLoadMore={!loading && data.proEvents.pageInfo.hasNextPage}\n loadingText=\"Loading pro events...\"\n loading={loading && proEvents.length > 0}\n />\n )}\n \n )\n}\n","import {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Control, FieldPath, FieldValues } from \"react-hook-form\"\nimport { InputHTMLAttributes } from \"react\"\nimport { cn } from \"~/lib/utils\"\n\nexport const DateField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>({\n control,\n name,\n description,\n required,\n label,\n labelClassName,\n inputClassName,\n containerClassName,\n ...inputProps\n}: {\n label: string\n labelClassName?: string\n inputClassName?: string\n containerClassName?: string\n description?: string\n required?: boolean\n control: Control | undefined\n name: TName\n} & InputHTMLAttributes) => {\n return (\n (\n \n \n {label}\n {required && *}\n \n \n \n \n {description && {description}}\n \n \n )}\n />\n )\n}\n","import {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Control, FieldPath, FieldValues } from \"react-hook-form\"\nimport { cn } from \"~/lib/utils\"\nimport { Switch } from \"~/ui/switch\"\n\nexport const ToggleField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>({\n control,\n name,\n description,\n required,\n label,\n labelClassName,\n inputClassName,\n containerClassName,\n}: {\n label: string\n labelClassName?: string\n inputClassName?: string\n containerClassName?: string\n description?: string\n required?: boolean\n control: Control | undefined\n name: TName\n}) => {\n return (\n (\n \n \n {label}\n {required && *}\n \n \n {\n field.onChange(val)\n }}\n className={inputClassName}\n />\n \n {description && {description}}\n \n \n )}\n />\n )\n}\n","import { useEffect, useState } from \"react\"\nimport {\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Control, FieldPath, FieldValues } from \"react-hook-form\"\nimport { cn } from \"~/lib/utils\"\nimport { useLazyQuery } from \"@apollo/client\"\nimport AsyncSelect from \"react-select/async\"\nimport { useCallback } from \"react\"\nimport { MENTION_USER_QUERY_DOCUMENT } from \"~/post-composer/useMentionDataSource\"\nimport { useDebouncedCallback } from \"use-debounce\"\nimport { User_AvatarFragment } from \"~/__generated__/graphql\"\nimport { gql } from \"~/__generated__\"\n\ntype UserOption = {\n value: string\n label: string\n}\n\nexport const UserSelectField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>({\n control,\n name,\n description,\n required,\n label,\n labelClassName,\n inputClassName,\n containerClassName,\n initialValue,\n placeholder,\n onUserSelected,\n}: {\n label: string\n labelClassName?: string\n inputClassName?: string\n containerClassName?: string\n description?: string\n required?: boolean\n control: Control | undefined\n name: TName\n initialValue?: { value: string; label: string } | string\n placeholder?: string\n onUserSelected?: (user: User_AvatarFragment) => void\n}) => {\n const [selectedUserOption, setSelectedUserOption] =\n useState(null)\n const [selectedUser, setSelectedUser] = useState(\n null\n )\n const [users, setUsers] = useState([])\n\n const [getCollaboratorSearch] = useLazyQuery(MENTION_USER_QUERY_DOCUMENT, {\n variables: { excludeSelf: false },\n })\n const [getUser] = useLazyQuery(USER_SELECT_FIELD_QUERY_DOCUMENT)\n\n useEffect(() => {\n ;(async () => {\n let userId: string | null = null\n\n if (initialValue && typeof initialValue === \"string\") {\n userId = initialValue\n } else if (initialValue && typeof initialValue === \"object\") {\n userId = initialValue.value\n }\n\n if (userId) {\n const { data } = await getUser({ variables: { userId } })\n if (data?.user) {\n setSelectedUser(data.user)\n setSelectedUserOption({\n value: data.user.id,\n label: data.user.name || \"\",\n })\n }\n }\n })()\n }, [initialValue, getUser])\n\n useEffect(() => {\n if (onUserSelected && selectedUser) {\n onUserSelected(selectedUser)\n }\n }, [onUserSelected, selectedUser])\n\n const _loadOptions = useCallback(\n (query: string, callback: (options: UserOption[]) => void) => {\n getCollaboratorSearch({\n variables: { query },\n }).then(({ data }) => {\n if (!data) {\n callback([])\n } else {\n setUsers((users) => {\n const newUsers = data.users.nodes.filter(\n (u) => !users.some((user) => user.id === u.id)\n )\n return [...users, ...newUsers]\n })\n callback(\n data.users.nodes.map((u) => ({\n value: u.id,\n label: u.name || \"\",\n }))\n )\n }\n })\n },\n [getCollaboratorSearch]\n )\n const loadOptions = useDebouncedCallback(_loadOptions, 400)\n\n if (initialValue && !selectedUserOption) {\n return null\n }\n\n return (\n (\n \n \n {label}\n {required && *}\n \n \n {\n if (selection?.value) {\n const user = users.find((u) => u.id === selection.value)\n if (user) {\n setSelectedUser(user)\n }\n field.onChange(selection.value)\n setSelectedUserOption(selection)\n } else {\n setSelectedUser(null)\n }\n }}\n styles={{\n placeholder: (baseStyles) => ({\n ...baseStyles,\n color: \"unset\",\n }),\n control: (baseStyles) => ({\n ...baseStyles,\n outline: \"none !important\",\n boxShadow: \"none\",\n paddingTop: 4,\n paddingBottom: 4,\n paddingLeft: 6,\n borderColor: \"#6b7280\",\n borderRadius: 4,\n }),\n }}\n />\n \n {description && {description}}\n \n \n )}\n />\n )\n}\n\nconst USER_SELECT_FIELD_QUERY_DOCUMENT = gql(`\n query UserSelectFieldQuery($userId: ID!) {\n user(userId: $userId) {\n ...User_Avatar\n }\n }\n`)\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useForm, FieldValues, UseFormSetError } from \"react-hook-form\"\nimport { useNavigate } from \"react-router-dom\"\nimport { z } from \"zod\"\nimport { Button } from \"~/ui/button\"\nimport { TextField } from \"~/components/forms/TextField\"\nimport { DateField } from \"~/components/forms/DateField\"\nimport { ToggleField } from \"~/components/forms/ToggleField\"\nimport { UserSelectField } from \"~/components/forms/UserSelectField\"\nimport { Form } from \"~/ui/form\"\n\nconst formSchema = z.object({\n title: z.string().min(1, { message: \"Required\" }),\n description: z.string().min(1, { message: \"Required\" }),\n date: z.string(),\n hostId: z.string().min(1, { message: \"Required\" }),\n ctaCopy: z.string().min(1, { message: \"Required\" }),\n ctaUrl: z.string().min(1, { message: \"Required\" }),\n published: z.boolean(),\n})\n\nexport type ProEventFormValues = z.infer\n\nexport type SubmitHandlerWithSetError = (\n data: TFieldValues,\n setFieldError: UseFormSetError,\n event?: React.BaseSyntheticEvent\n) => unknown | Promise\n\nexport const ProEventForm = ({\n defaultValues,\n onSubmit,\n loading,\n host,\n}: {\n defaultValues: ProEventFormValues\n onSubmit: SubmitHandlerWithSetError\n loading: boolean\n host?: { value: string; label: string }\n}) => {\n const form = useForm({\n resolver: zodResolver(formSchema),\n defaultValues: defaultValues,\n })\n const navigate = useNavigate()\n\n const handleSubmit = async (data: ProEventFormValues) => {\n onSubmit(data, form.setError)\n }\n\n return (\n
\n \n
\n \n \n \n \n \n \n \n
\n\n
\n\n
\n navigate(-1)}\n >\n Cancel\n \n \n Save Pro Event\n \n
\n \n \n )\n}\n","import { ProEventForm } from \"~/pro-events/ProEventForm\"\nimport { toDate } from \"date-fns-tz\"\nimport { PRO_EVENT_FIXED_TIMEZONE } from \"~/pro-events/pro-events\"\nimport { useNavigate } from \"react-router-dom\"\nimport { adminProEventsPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport toast from \"react-hot-toast\"\nimport { displayErrors } from \"~/common/validations\"\nimport { UseFormSetError } from \"react-hook-form\"\nimport { PRO_EVENT_ADMIN_CREATE_MUTATION } from \"~/pro-events/pro-events\"\nimport { ProEventFormValues } from \"~/pro-events/ProEventForm\"\nimport { CalendarDays } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { Card, CardContent } from \"~/ui/card\"\n\nexport const AdminProEventNewScreen = () => {\n const navigate = useNavigate()\n\n const [proEventCreate, proEventCreateResult] = useSafeMutation(\n PRO_EVENT_ADMIN_CREATE_MUTATION\n )\n\n const onSubmit = async (\n values: ProEventFormValues,\n setError: UseFormSetError\n ) => {\n const { errors } = await proEventCreate({\n variables: {\n input: {\n title: values.title,\n description: values.description,\n date: parseDateField(values.date).toISOString(),\n hostId: values.hostId,\n ctaCopy: values.ctaCopy,\n ctaUrl: values.ctaUrl,\n published: values.published,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors, setError)\n console.log(errors)\n } else {\n toast.success(\"Created pro event\")\n navigate(adminProEventsPath.pattern)\n }\n }\n\n return (\n <>\n \n \n \n \n \n \n \n )\n}\n\nexport const parseDateField = (dateString: string) => {\n return toDate(dateString, { timeZone: PRO_EVENT_FIXED_TIMEZONE })\n}\n","import { ProEventForm } from \"~/pro-events/ProEventForm\"\nimport { useNavigate } from \"react-router-dom\"\nimport { adminProEventsPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport toast from \"react-hot-toast\"\nimport { displayErrors } from \"~/common/validations\"\nimport { UseFormSetError } from \"react-hook-form\"\nimport {\n PRO_EVENT_ADMIN_UPDATE_MUTATION,\n PRO_EVENT_ADMIN_QUERY_DOCUMENT,\n utcDateToIntroductionsDateField,\n parseDateField,\n} from \"~/pro-events/pro-events\"\nimport { ProEventFormValues } from \"~/pro-events/ProEventForm\"\nimport { useQuery } from \"@apollo/client\"\nimport { useParams } from \"react-router-dom\"\nimport invariant from \"tiny-invariant\"\nimport { Error } from \"~/ui/Error\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\nimport { CalendarDays } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { Card, CardContent } from \"~/ui/card\"\n\nexport const AdminProEventEditScreen = () => {\n const { proEventId } = useParams()\n invariant(proEventId)\n const navigate = useNavigate()\n\n const { data, loading } = useQuery(PRO_EVENT_ADMIN_QUERY_DOCUMENT, {\n variables: {\n proEventId: proEventId,\n },\n })\n\n const [proEventUpdate, proEventUpdateResult] = useSafeMutation(\n PRO_EVENT_ADMIN_UPDATE_MUTATION\n )\n\n const onSubmit = async (\n values: ProEventFormValues,\n setError: UseFormSetError\n ) => {\n const { errors } = await proEventUpdate({\n variables: {\n input: {\n proEventId: proEventId,\n title: values.title,\n description: values.description,\n date: parseDateField(values.date).toISOString(),\n hostId: values.hostId,\n ctaCopy: values.ctaCopy,\n ctaUrl: values.ctaUrl,\n published: values.published,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors, setError)\n console.log(errors)\n } else {\n toast.success(\"Updated pro event\")\n navigate(adminProEventsPath.pattern)\n }\n }\n\n return (\n <>\n \n {loading ? (\n \n ) : data?.proEvent ? (\n \n \n \n \n \n ) : (\n \n )}\n \n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { BeakerIcon } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { Badge } from \"~/ui/badge\"\nimport { adminExperimentPath } from \"~/common/paths\"\nimport { LinkButton } from \"~/ui/button\"\nimport { Card } from \"~/ui/card\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { Error } from \"~/ui/Error\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"~/ui/table\"\nimport { gql } from \"~/__generated__\"\n\nexport const AdminExperimentsScreen = () => {\n const { data, loading, error } = useQuery(EXPERIMENTS_LIST_QUERY)\n\n const experiments = data?.experiments || []\n\n if (loading) return \n if (error || !data) return \n\n return (\n <>\n \n\n \n \n \n \n Name\n Variants\n Total Users\n Actions\n \n \n \n {experiments.map((experiment) => (\n \n {experiment.name}\n \n
\n {experiment.variants.map((variant, index) => (\n \n {variant} {experiment.weights[index]}%\n \n ))}\n
\n
\n {experiment.totalUsers}\n \n
\n \n View Users\n \n
\n
\n
\n ))}\n
\n
\n
\n \n )\n}\n\nconst EXPERIMENTS_LIST_QUERY = gql(`\n query Experiments {\n experiments {\n name\n variants,\n weights,\n totalUsers\n }\n }\n`)\n","import { useLazyQuery } from \"@apollo/client\"\nimport { useEffect, useState } from \"react\"\nimport { User_AvatarFragment } from \"~/__generated__/graphql\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { USER_DIALOG_QUERY_DOCUMENT } from \"./UserDialogContext\"\nimport { UserName } from \"./UserName\"\n\ntype UserNameAndAvatarProps = {\n user?: User_AvatarFragment | null\n userId?: string\n}\n\nexport const UserNameAndAvatar = ({\n user: userFromProps,\n userId,\n}: UserNameAndAvatarProps) => {\n const [user, setUser] = useState(\n userFromProps || null\n )\n const [fetchUser] = useLazyQuery(USER_DIALOG_QUERY_DOCUMENT)\n\n useEffect(() => {\n ;(async () => {\n if (!userFromProps && userId) {\n const { data } = await fetchUser({ variables: { userId } })\n if (data?.user) {\n setUser(data.user)\n }\n }\n })()\n }, [userFromProps, userId, fetchUser])\n\n if (!userFromProps && !userId) {\n throw new Error(\"Must provide either a user or a userId\")\n }\n\n if (!user) {\n return null\n }\n\n return (\n
\n \n \n
\n )\n}\n","import { useMutation, useQuery } from \"@apollo/client\"\nimport { BeakerIcon } from \"lucide-react\"\nimport { useParams } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { Badge } from \"~/ui/badge\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"~/ui/select\"\nimport { Card } from \"~/ui/card\"\nimport { Error } from \"~/ui/Error\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"~/ui/table\"\nimport { UserNameAndAvatar } from \"~/directory/UserNameAndAvatar\"\nimport { useConfig } from \"~/common/ConfigProvider\"\n\nexport const AdminExperimentScreen = () => {\n const { experimentName } = useParams() as { experimentName: string }\n const { qaToolsEnabled } = useConfig()\n\n const {\n data: currentData,\n previousData,\n loading,\n error,\n fetchMore,\n } = useQuery(USER_EXPERIMENTS_QUERY, {\n variables: {\n experimentName,\n first: 50,\n after: null,\n },\n notifyOnNetworkStatusChange: true,\n })\n\n const data = currentData || previousData\n\n if (loading) return \n if (error || !data) return \n\n const userExperiments = data?.userExperiments?.edges?.map((e) => e.node) || []\n const hasNextPage = data?.userExperiments?.pageInfo?.hasNextPage\n\n return (\n <>\n \n\n
\n \n \n \n \n User\n Variant\n \n \n \n {userExperiments.map((userExperiment) => (\n \n \n {userExperiment.user.name ? (\n \n ) : (\n userExperiment.user.email\n )}\n \n \n
\n \n {userExperiment.variant}\n \n {qaToolsEnabled && (\n \n )}\n
\n
\n
\n ))}\n
\n
\n
\n\n
\n \n fetchMore({\n variables: {\n after: data?.userExperiments?.pageInfo?.endCursor,\n },\n })\n }\n canLoadMore={!loading && hasNextPage}\n loadingText=\"Loading more users...\"\n loading={loading && userExperiments.length > 0 && hasNextPage}\n />\n
\n
\n \n )\n}\n\nconst USER_EXPERIMENTS_QUERY = gql(`\n query UserExperiments($experimentName: String!, $first: Int, $after: String) {\n userExperiments(\n name: $experimentName,\n first: $first,\n after: $after\n ) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n id\n variant\n user {\n id\n email\n name\n }\n }\n }\n }\n }\n`)\n\ninterface VariantSelectorProps {\n experimentName: string\n userId: string\n currentVariant: string\n}\n\nconst VariantSelector = ({\n experimentName,\n userId,\n currentVariant,\n}: VariantSelectorProps) => {\n const [assignVariant] = useMutation(ASSIGN_VARIANT_MUTATION, {\n refetchQueries: [USER_EXPERIMENTS_QUERY],\n })\n\n const handleVariantChange = async (newVariant: string) => {\n await assignVariant({\n variables: {\n input: {\n experiment: experimentName,\n variant: newVariant,\n userId: userId,\n },\n },\n })\n }\n\n return (\n \n )\n}\n\nconst ASSIGN_VARIANT_MUTATION = gql(`\n mutation UserExperimentAssignVariant(\n $input: UserExperimentAssignVariantInput!\n ) {\n userExperimentAssignVariant(input: $input) {\n experiment {\n name\n variant\n }\n wasCreated\n }\n }\n`)\n","import {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { Input } from \"~/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"~/ui/select\"\nimport { Textarea } from \"~/ui/textarea\"\nimport { Button } from \"~/ui/button\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { z } from \"zod\"\nimport { ArticleContentTypeEnum, CommunitySlug } from \"~/__generated__/graphql\"\nimport { useTags } from \"~/common/queries\"\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useEffect } from \"react\"\nimport { cn } from \"~/lib/utils\"\nimport { useContentTypeOptions } from \"~/ui/ContentType\"\n\nconst createContentModalFormSchema = z.object({\n contentType: z.nativeEnum(ArticleContentTypeEnum, {\n required_error: \"Select a type\",\n }),\n tagId: z.string({\n required_error: \"Select a topic\",\n }),\n title: z.string().min(1, {\n message: \"Title is required\",\n }),\n description: z.string().min(1, {\n message: \"Description is required\",\n }),\n})\n\nexport type CreateContentModalFormValues = z.infer<\n typeof createContentModalFormSchema\n>\n\ntype ContentFormProps = {\n loading: boolean\n open: boolean\n onSubmit: (values: CreateContentModalFormValues) => void\n}\n\nexport const ContentForm = ({ loading, open, onSubmit }: ContentFormProps) => {\n const tags = useTags()\n\n const form = useForm>({\n resolver: zodResolver(createContentModalFormSchema),\n defaultValues: {\n title: \"\",\n description: \"\",\n tagId: undefined,\n contentType: undefined,\n },\n })\n\n useEffect(() => {\n if (!open) {\n form.reset()\n }\n }, [open, form])\n\n const ccls = useCommunityClassname()\n const community = useCommunity()\n const contentTypes = useContentTypeOptions(undefined, undefined, true).filter(\n (contentType) => {\n return (\n contentType.value !== ArticleContentTypeEnum.Course &&\n community.id !== CommunitySlug.Safespace\n )\n }\n )\n\n return (\n
\n \n
\n (\n \n Select Topic\n \n \n \n \n \n \n \n {tags &&\n tags.map((tag) => (\n \n {tag.name}\n \n ))}\n \n \n \n \n )}\n />\n (\n \n Select Type\n \n \n \n \n \n \n \n {contentTypes.map(({ label, value }) => (\n \n {label}\n \n ))}\n \n \n \n \n )}\n />\n
\n (\n \n Title\n \n \n \n \n \n )}\n />\n\n (\n \n Description\n \n \n \n \n \n )}\n />\n\n
\n\n
\n \n Continue\n \n
\n \n \n )\n}\n","import { DialogProps } from \"@radix-ui/react-dialog\"\nimport { useCallback, useEffect } from \"react\"\nimport toast from \"react-hot-toast\"\nimport invariant from \"tiny-invariant\"\nimport { gql } from \"~/__generated__\"\nimport {\n AhoyEventTypeEnum,\n ArticleContentTypeEnum,\n CreateArticleMutation,\n CreateCourseMutation,\n} from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { ContentForm, CreateContentModalFormValues } from \"./ContentForm\"\nimport { FetchResult } from \"@apollo/client\"\nimport { CREATE_ARTICLE_MUTATION } from \"~/articles/useArticleDetailsModal\"\n\nexport type CreateContentModalProps = {\n onCreateArticle?: (\n article: CreateArticleMutation[\"articleCreate\"][\"article\"]\n ) => void\n onCreateCourse?: (\n course: CreateCourseMutation[\"courseCreate\"][\"course\"]\n ) => void\n} & DialogProps\n\nexport const CreateContentModal = ({\n onCreateArticle,\n onCreateCourse,\n ...dialogProps\n}: CreateContentModalProps) => {\n const { logEvent } = useLogEvent()\n\n const [runCreateArticle, createArticleResult] = useSafeMutation(\n CREATE_ARTICLE_MUTATION\n )\n const [runCreateCourse, createCourseResult] = useSafeMutation(\n CREATE_COURSE_MUTATION\n )\n\n const isLoading = createArticleResult.loading || createCourseResult.loading\n\n const onSubmitCourse = useCallback(\n ({\n data,\n errors,\n }: Pick, \"data\" | \"errors\">) => {\n if (errors) {\n displayErrors(errors)\n return\n }\n\n toast.success(\"Created content\")\n\n const courseId = data?.courseCreate.course.id\n const articleId = data?.courseCreate.course.article?.id\n\n invariant(courseId)\n invariant(articleId)\n logEvent(AhoyEventTypeEnum.ContentSubmitted, {\n content_id: articleId,\n })\n\n onCreateCourse?.(data?.courseCreate.course)\n },\n [logEvent, onCreateCourse]\n )\n\n const onSubmitArticle = useCallback(\n ({\n data,\n errors,\n }: Pick, \"data\" | \"errors\">) => {\n if (errors) {\n displayErrors(errors)\n return\n }\n\n const articleId = data?.articleCreate.article.id\n invariant(articleId)\n logEvent(AhoyEventTypeEnum.ContentSubmitted, {\n content_id: articleId,\n })\n onCreateArticle?.(data?.articleCreate.article)\n },\n [logEvent, onCreateArticle]\n )\n\n const onSubmit = useCallback(\n async (values: CreateContentModalFormValues) => {\n if (values.contentType === ArticleContentTypeEnum.Course) {\n const result = await runCreateCourse({\n variables: {\n input: {\n title: values.title,\n tagId: values.tagId,\n description: values.description,\n },\n },\n })\n onSubmitCourse(result)\n } else {\n const result = await runCreateArticle({\n variables: {\n input: {\n ...values,\n },\n },\n })\n onSubmitArticle(result)\n }\n },\n [runCreateArticle, runCreateCourse, onSubmitArticle, onSubmitCourse]\n )\n\n useEffect(() => {\n if (dialogProps.open === true) {\n logEvent(AhoyEventTypeEnum.ContentUploadInitiated)\n }\n }, [dialogProps.open, logEvent])\n\n return (\n \n \n
\n Start Creating!\n
\n
\n Get started by selecting a topic for your content.\n
\n\n \n
\n
\n )\n}\n\nconst CREATE_COURSE_MUTATION = gql(`\n mutation CreateCourse($input: CourseCreateInput!) {\n courseCreate(input: $input) {\n course {\n id\n\n article {\n ...Article_EditorContent\n }\n }\n }\n }\n`)\n","import { useCallback, useEffect } from \"react\"\nimport { Button } from \"~/ui/button\"\nimport { editArticlePath } from \"~/common/paths\"\nimport { useState } from \"react\"\nimport { useNavigate } from \"react-router-dom\"\nimport {\n ArticleCollaboratorsModal,\n useCreateCollaborator,\n useDestroyCollaborator,\n} from \"./ArticleCollaboratorsModal\"\nimport { CreateContentModal } from \"~/content/CreateContentModal\"\nimport { Article_EditorContentFragment, Course } from \"~/__generated__/graphql\"\nimport { ExternalShareSettingsModal } from \"./ExternalShareSettingModal\"\nimport { Plus } from \"lucide-react\"\n\nexport const CreateContentButton = ({\n startWritingWithCollaborators = [],\n}: {\n startWritingWithCollaborators?: string[]\n}) => {\n const navigate = useNavigate()\n\n const [collaboratorsModalOpen, setCollaboratorsModalOpen] = useState(false)\n const [collaboratorsModalArticle, setCollaboratorsModalArticle] =\n useState(null)\n const [initialCollaboratorsProcessed, setInitialCollaboratorsProcessed] =\n useState(false)\n const [isCreateContentModalOpen, setIsCreateContentModalOpen] =\n useState(false)\n const [externalSharingModalOpen, setExternalSharingModalOpen] =\n useState(false)\n\n const onCreateArticle = useCallback(\n (article: Article_EditorContentFragment) => {\n setIsCreateContentModalOpen(false)\n setCollaboratorsModalOpen(true)\n setCollaboratorsModalArticle(article)\n },\n []\n )\n const onCreateCourse = useCallback(\n (\n course: Pick & { article: Article_EditorContentFragment }\n ) => {\n setIsCreateContentModalOpen(false)\n setCollaboratorsModalOpen(true)\n setCollaboratorsModalArticle(course.article)\n },\n []\n )\n\n useEffect(() => {\n if (\n !initialCollaboratorsProcessed &&\n startWritingWithCollaborators.length > 0\n ) {\n setIsCreateContentModalOpen(true)\n setInitialCollaboratorsProcessed(true)\n }\n }, [initialCollaboratorsProcessed, startWritingWithCollaborators])\n\n const { createCollaborator } = useCreateCollaborator()\n const { destroyCollaborator } = useDestroyCollaborator()\n\n return (\n <>\n }\n onClick={() => setIsCreateContentModalOpen(true)}\n >\n Create\n \n\n \n {collaboratorsModalOpen && collaboratorsModalArticle && (\n setExternalSharingModalOpen(true)}\n />\n )}\n {\n if (collaboratorsModalArticle?.id) {\n navigate(\n editArticlePath({ articleId: collaboratorsModalArticle?.id })\n )\n }\n }}\n />\n \n )\n}\n","import {\n ArticleStateEnum,\n ArticleVisibilityEnum,\n} from \"~/__generated__/graphql\"\n\nexport const ARTICLE_VISIBILITY_LABELS: Record =\n {\n LIVE: \"Live\",\n HIDDEN: \"Hidden\",\n }\n\nexport const ARTICLE_STATE_LABELS: Record = {\n DRAFT: \"Draft\",\n SUBMITTED: \"Submitted\",\n APPROVED: \"Approved\",\n EDITS_REQUESTED: \"Edits Requested\",\n HAS_PENDING_EDITS: \"Pending edits\",\n ARCHIVED: \"Archived\",\n}\n","import * as React from \"react\";\nconst SvgSend2 = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { id: \"vuesax/linear/send-2\" }, /* @__PURE__ */ React.createElement(\"g\", { id: \"send-2\" }, /* @__PURE__ */ React.createElement(\"path\", { id: \"Vector\", d: \"M4.93313 4.21344L10.5931 2.32677C13.1331 1.4801 14.5131 2.86677 13.6731 5.40677L11.7865 11.0668C10.5198 14.8734 8.43979 14.8734 7.17312 11.0668L6.61312 9.38677L4.93313 8.82677C1.12646 7.5601 1.12646 5.48677 4.93313 4.21344Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { id: \"Vector_2\", d: \"M6.73828 9.10036L9.12495 6.70703\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))));\nexport default SvgSend2;\n","import * as React from \"react\";\nconst SvgExternalLink = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 14, height: 14, viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { id: \"external-link\" }, /* @__PURE__ */ React.createElement(\"path\", { id: \"Path\", d: \"M11.0001 7.66669V11.6667C11.0001 12.4031 10.4031 13.0001 9.66672 13.0001H2.33334C1.59696 13.0001 1 12.4031 1 11.6667V4.33334C1 3.59696 1.59696 3 2.33334 3H6.33336\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { id: \"Path_2\", d: \"M8.99609 1H12.9961V5.00002\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { id: \"Path_3\", d: \"M5.66406 8.33338L12.9974 1\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\nexport default SvgExternalLink;\n","import { useQuery } from \"@apollo/client\"\nimport { useCallback } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { gql } from \"~/__generated__\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { Button } from \"~/ui/button\"\nimport { Card } from \"~/ui/card\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { TagBubble } from \"~/ui/TagBubble\"\nimport { ContentTypeIconWithToolTip } from \"~/ui/ContentType\"\n\nexport const CollaborationInvites = ({\n afterAccept,\n}: {\n afterAccept: () => void\n}) => {\n const { data, previousData, refetch } = useQuery(\n PENDING_COLLABORATION_INVITES_QUERY_DOCUMENT\n )\n const currentUser = useCurrentUser()\n\n const [runCollaboratorAccept] = useSafeMutation(\n ACCEPT_COLLABORATION_INVITE_MUTATION\n )\n const [runCollaboratorReject] = useSafeMutation(\n REJECT_COLLABORATION_INVITE_MUTATION\n )\n\n const articles =\n data?.pendingContent.nodes || previousData?.pendingContent.nodes || []\n\n const accept = useCallback(\n async (articleId: string) => {\n const { errors } = await runCollaboratorAccept({\n variables: { input: { articleId } },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n toast.success(\"Invitation accepted!\")\n afterAccept()\n refetch()\n }\n },\n [runCollaboratorAccept, refetch, afterAccept]\n )\n\n const reject = useCallback(\n async (articleId: string) => {\n const { errors } = await runCollaboratorReject({\n variables: { input: { articleId } },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n refetch()\n }\n },\n [runCollaboratorReject, refetch]\n )\n\n if (articles.length === 0) return null\n\n return (\n
\n {articles.map((article) => {\n const collaboration = article.pendingCollaborators.find(\n (c) => c.user.id === currentUser.id\n )\n return collaboration?.pending ? (\n \n
\n {collaboration.invitedBy && (\n
\n \n
\n {collaboration.invitedBy.name} invited you\n to become a collaborator.\n
\n
\n )}\n
\n {article.draftRevision.title}\n
\n
\n {article.draftRevision.description}\n
\n
\n \n \n
\n
\n reject(article.id)}\n >\n Reject\n \n \n \n ) : null\n })}\n
\n )\n}\n\nconst PENDING_COLLABORATION_INVITES_QUERY_DOCUMENT = gql(`\n query PendingCollaborationInvites {\n pendingContent: articles(revisionType: DRAFT, withPendingInvite: true) {\n nodes {\n id\n draftRevision {\n id\n title\n description\n tag {\n id\n name\n }\n contentType\n }\n pendingCollaborators: collaborators(includePending: true) {\n id\n pending\n invitedBy {\n name\n ...User_Avatar\n }\n user {\n id\n }\n }\n }\n }\n }\n`)\n\nconst ACCEPT_COLLABORATION_INVITE_MUTATION = gql(`\n mutation CollaboratorAccept($input: CollaboratorAcceptInput!) {\n collaboratorAccept(input: $input) {\n article {\n ...Article_MyContentTable\n }\n }\n }\n`)\n\nconst REJECT_COLLABORATION_INVITE_MUTATION = gql(`\n mutation CollaboratorReject($input: CollaboratorRejectInput!) {\n collaboratorReject(input: $input) {\n article {\n ...Article_MyContentTable\n }\n }\n }\n`)\n","export const formatArrayToSentence = (array: string[], conjunction = \"and\") => {\n if (array.length === 0) {\n return \"\"\n }\n\n if (array.length === 1) {\n return array[0]\n }\n\n if (array.length === 2) {\n return `${array[0]} ${conjunction} ${array[1]}`\n }\n\n const last = array.pop()\n return `${array.join(\", \")}, ${conjunction} ${last}`\n}\n","import { useCallback, useMemo } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { Article } from \"~/__generated__/graphql\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { ConfirmContextProviderProps, useConfirm } from \"~/ui/Confirm\"\nimport { UPDATE_ARTICLE_MUTATION } from \"./ArticleEditor\"\nimport { useTiers } from \"~/tiers/TiersProvider\"\nimport { formatArrayToSentence } from \"~/common/formatArray\"\n\nexport type TogglePremiumConfirmProps = {\n article: Pick\n} & Partial\n\nexport const useTogglePremiumConfirm = ({\n article,\n ...confirmProps\n}: TogglePremiumConfirmProps) => {\n const showConfirm = useConfirm()\n const [runTogglePremium] = useSafeMutation(UPDATE_ARTICLE_MUTATION)\n const { tiers } = useTiers()\n\n const isPremium = useMemo(() => article.premium, [article])\n const tiersThatCanViewPremiumContent = useMemo(() => {\n return formatArrayToSentence(\n tiers\n .filter((tier) => {\n return tier.permissions.canViewPremiumArticles\n })\n .map((tier) => tier.name)\n )\n }, [tiers])\n\n const togglePremium = useCallback(() => {\n showConfirm({\n title: isPremium\n ? \"Remove 'Premium Content' Flag\"\n : \"Mark as Premium Content\",\n body: isPremium\n ? \"Would you like to remove the 'Premium Content' flag from this content? All members will be able to access this content.\"\n : `Are you sure you want to mark this content as Premium? This means only members on the ${tiersThatCanViewPremiumContent} plan(s) will be able to access it.`,\n confirmText: isPremium ? \"Remove Premium\" : \"Mark as Premium\",\n onConfirm: async () => {\n const { errors } = await runTogglePremium({\n variables: {\n input: {\n articleId: article.id,\n premium: !isPremium,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\n isPremium\n ? \"Content no longer marked as premium\"\n : \"Content marked as premium\"\n )\n }\n },\n ...confirmProps,\n })\n }, [\n article,\n confirmProps,\n runTogglePremium,\n showConfirm,\n isPremium,\n tiersThatCanViewPremiumContent,\n ])\n\n return togglePremium\n}\n","import { useCallback } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { gql } from \"~/__generated__\"\nimport { Article, ArticleVisibilityEnum } from \"~/__generated__/graphql\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { ConfirmContextProviderProps, useConfirm } from \"~/ui/Confirm\"\n\nexport type ChangeVisibilityConfirmProps = {\n article: Pick\n onSuccess?: () => void\n} & Partial\n\nexport const useChangeVisibilityConfirm = ({\n article,\n onSuccess,\n ...confirmProps\n}: ChangeVisibilityConfirmProps) => {\n const showConfirm = useConfirm()\n const [runChangeVisibility] = useSafeMutation(ARTICLE_VISIBILITY_MUTATION)\n\n const isHidden = article.visibility === ArticleVisibilityEnum.Hidden\n\n const changeVisibility = useCallback(() => {\n showConfirm({\n title: \"Change Visibility\",\n body: isHidden\n ? \"Do you want to make this content LIVE? This will make the most recently approved version of the content visible to end users.\"\n : \"Do you want to make this content HIDDEN? This will hide the content from end users in the library.\",\n confirmText: isHidden ? \"Make Live\" : \"Hide Content\",\n onConfirm: async () => {\n const { errors } = await runChangeVisibility({\n variables: {\n input: {\n articleId: article.id,\n visibility: isHidden\n ? ArticleVisibilityEnum.Live\n : ArticleVisibilityEnum.Hidden,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\"Updated content visibility\")\n onSuccess?.()\n }\n },\n ...confirmProps,\n })\n }, [\n article.id,\n confirmProps,\n runChangeVisibility,\n showConfirm,\n isHidden,\n onSuccess,\n ])\n\n return changeVisibility\n}\n\nexport const ARTICLE_VISIBILITY_MUTATION = gql(`\n mutation ArticleChangeVisibility($input: ArticleUpdateInput!) {\n articleUpdate(input: $input) {\n article {\n ...Article_EditorContent\n }\n }\n }\n`)\n","import * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"~/lib/utils\"\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef & {\n orientation?: \"vertical\" | \"horizontal\"\n }\n>(({ className, children, orientation, ...props }, ref) => {\n const viewportRef = React.useRef(null)\n\n // Determine if the viewport has been scrolled\n const [canScroll, setCanScroll] = React.useState(false)\n const [isScrolled, setIsScrolled] = React.useState(false)\n const [isScrolledToEnd, setIsScrolledToEnd] = React.useState(false)\n\n React.useEffect(() => {\n const viewport = viewportRef.current\n\n const handleScroll = () => {\n if (viewport) {\n setCanScroll(\n orientation === \"vertical\"\n ? viewport.scrollHeight > viewport.clientHeight\n : viewport.scrollWidth > viewport.clientWidth\n )\n setIsScrolled(viewport.scrollTop > 0 || viewport.scrollLeft > 0)\n setIsScrolledToEnd(\n orientation === \"vertical\"\n ? viewport.scrollTop + viewport.clientHeight >=\n viewport.scrollHeight\n : viewport.scrollLeft + viewport.clientWidth >= viewport.scrollWidth\n )\n }\n }\n\n if (viewport) {\n viewport.addEventListener(\"scroll\", handleScroll)\n handleScroll()\n\n return () => {\n viewport.removeEventListener(\"scroll\", handleScroll)\n }\n }\n }, [viewportRef.current, orientation])\n\n return (\n \n \n {children}\n \n \n \n \n )\n})\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n \n \n \n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nconst ScrollFade = ({\n direction,\n className,\n}: {\n direction: \"top\" | \"bottom\" | \"left\" | \"right\"\n className?: string\n}) => {\n return (\n \n )\n}\n\nexport { ScrollArea, ScrollBar, ScrollFade }\n","import { ChevronDown } from \"lucide-react\"\nimport * as React from \"react\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { cn } from \"~/lib/utils\"\nimport { Button } from \"~/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"~/ui/dropdown-menu\"\nimport { ScrollArea } from \"~/ui/scroll-area\"\n\nexport type DropdownOptionType = {\n label: React.ReactNode\n value: string\n}\n\ninterface DropdownMenuCheckboxesProps {\n title: string\n optionTitle?: string\n options: DropdownOptionType[]\n selected: DropdownOptionType[]\n onChange: (value: any[]) => void\n exclusive?: boolean\n trigger?: React.ReactNode\n}\n\nexport function DropdownMenuCheckboxes({\n title,\n optionTitle,\n options,\n selected,\n onChange,\n exclusive = false,\n trigger,\n}: DropdownMenuCheckboxesProps) {\n const ccls = useCommunityClassname()\n const isChecked = (value: string) => {\n const checked = selected.find((option) => option.value === value)\n\n return !!checked\n }\n\n const onCheckedChange = (option: DropdownOptionType) => {\n return (state: boolean) => {\n if (exclusive) {\n if (state) {\n onChange([option])\n } else {\n onChange([])\n }\n } else {\n if (state) {\n onChange([...selected, option])\n } else {\n onChange(selected.filter((s) => s.value !== option.value))\n }\n }\n }\n }\n\n return (\n \n \n {trigger || (\n 0 &&\n selected.length !== options.length &&\n ccls({\n [CommunitySlug.Marketingland]: \"text-library-dropdown-badges\",\n default: \"text-primary\",\n }),\n ccls({\n [CommunitySlug.Gotomillions]: \"border-primary\",\n default: \"border-mercury\",\n })\n )}\n post={}\n >\n {title}\n \n )}\n \n \n {optionTitle && (\n <>\n {optionTitle}\n \n \n )}\n \n {options.map((option, i) => {\n const checked = isChecked(option.value)\n const key =\n typeof option.value === \"string\" ||\n typeof option.value === \"number\"\n ? option.value\n : i\n\n return (\n \n \n {option.label}\n \n {i !== options.length - 1 && }\n \n )\n })}\n \n \n \n )\n}\n","import { useCallback } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { Article } from \"~/__generated__/graphql\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { ConfirmContextProviderProps, useConfirm } from \"~/ui/Confirm\"\nimport { ARCHIVE_ARTICLE_MUTATION } from \"./ArticleEditor\"\n\nexport type ArchiveArticleConfirmProps = {\n article: Pick\n} & Partial\n\nexport const useArchiveArticleConfirm = ({\n article,\n ...confirmProps\n}: ArchiveArticleConfirmProps) => {\n const showConfirm = useConfirm()\n const [runArticleArchive] = useSafeMutation(ARCHIVE_ARTICLE_MUTATION)\n\n const feature = useCallback(() => {\n showConfirm({\n title: \"Archive Content\",\n body: \"Are you sure you want to archive this content? This action cannot be undone.\",\n confirmText: \"Archive\",\n onConfirm: async () => {\n const { errors } = await runArticleArchive({\n variables: {\n input: {\n articleId: article.id,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\"Content archived\")\n }\n },\n ...confirmProps,\n })\n }, [article, confirmProps, showConfirm, runArticleArchive])\n\n return feature\n}\n","import { useCallback, useMemo } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { Article } from \"~/__generated__/graphql\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { UPDATE_ARTICLE_MUTATION } from \"./ArticleEditor\"\n\nexport type ToggleExternalShareProps = {\n article: Pick\n}\n\nexport const useToggleExternalShare = ({\n article,\n}: ToggleExternalShareProps) => {\n const [runToggleExternalShare] = useSafeMutation(UPDATE_ARTICLE_MUTATION)\n\n const isAllowingExternalShare = useMemo(\n () => article.allowExternalShare,\n [article]\n )\n\n const toggleExternalShare = useCallback(async () => {\n const { errors } = await runToggleExternalShare({\n variables: {\n input: {\n articleId: article.id,\n allowExternalShare: !isAllowingExternalShare,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n toast.success(\n isAllowingExternalShare\n ? \"External sharing disabled\"\n : \"External sharing enabled\"\n )\n }\n }, [article, runToggleExternalShare, isAllowingExternalShare])\n\n return toggleExternalShare\n}\n","import { useCallback } from \"react\"\nimport {\n Article,\n RulesEngineEventTypeEnum,\n User,\n} from \"~/__generated__/graphql\"\nimport { ConfirmContextProviderProps, useConfirm } from \"~/ui/Confirm\"\nimport { useRulesEngine } from \"~/rules-engine/RulesEngineContext\"\nimport toast from \"react-hot-toast\"\n\nexport type ResendPublishEventConfirmProps = {\n article: Pick & { collaborators: Pick[] }\n} & Partial\n\nexport const useResendPublishEventConfirm = ({\n article,\n ...confirmProps\n}: ResendPublishEventConfirmProps) => {\n const showConfirm = useConfirm()\n const { createRulesEngineEvent } = useRulesEngine()\n\n const call = useCallback(() => {\n showConfirm({\n title: \"Resend Publish Event\",\n body: \"Are you sure you want to resend the publish event for this article? This will cause a new in-app notification to be sent to all users.\",\n confirmText: \"Resend\",\n onConfirm: async () => {\n await createRulesEngineEvent(\n RulesEngineEventTypeEnum.ArticleMarkedLive,\n {\n source_type: \"Article\",\n source_id: article.id,\n actor_id: article.collaborators[0].id,\n }\n )\n toast.success(\"Publish event resent\")\n },\n ...confirmProps,\n })\n }, [article, confirmProps, showConfirm, createRulesEngineEvent])\n\n return call\n}\n","import { QueryResult, useQuery } from \"@apollo/client\"\nimport { Link, useSearchParams } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport { editArticlePath } from \"~/common/paths\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { Error } from \"~/ui/Error\"\nimport { CreateContentButton } from \"~/articles/CreateContentButton\"\nimport UserSquare from \"../images/icons/user-square.svg?react\"\nimport Bookmark from \"../images/icons/bookmark.svg?react\"\nimport DollarSquare from \"../images/icons/dollar-square.svg?react\"\nimport {\n ArticleSortTypeEnum,\n ArticleStateEnum,\n ArticleVisibilityEnum,\n Article_MyContentTableFragment,\n CommunitySlug,\n Exact,\n InputMaybe,\n MyContentQuery,\n} from \"~/__generated__/graphql\"\nimport { ReactNode, useCallback, useMemo, useRef, useState } from \"react\"\nimport { cn } from \"~/lib/utils\"\nimport { ARTICLE_STATE_LABELS } from \"~/common/enumTranslations\"\nimport { compareAsc, format, parseISO } from \"date-fns\"\nimport {\n ArrowUpDown,\n ChevronLeft,\n ChevronRight,\n Megaphone,\n MoreHorizontal,\n Pencil,\n Trash,\n} from \"lucide-react\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport Driver from \"~/images/icons/driver.svg?react\"\nimport Send2 from \"~/images/icons/send-2.svg?react\"\nimport ExternalLink from \"~/images/icons/external-link.svg?react\"\nimport ReactPaginate from \"react-paginate\"\nimport { StackedUserAvatars } from \"~/ui/StackedUserAvatars\"\nimport { CollaborationInvites } from \"~/articles/CollaborationInvites\"\nimport { ArticleCard } from \"~/ui/ArticleCard\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { useToggleFeaturedConfirm } from \"~/content/useToggleFeaturedConfirm\"\nimport { IconButton } from \"~/ui/IconButton\"\nimport { SimpleTooltip } from \"~/ui/SimpleTooltip\"\nimport { useTogglePremiumConfirm } from \"~/content/useTogglePremiumConfirm\"\nimport { formatDate } from \"~/common/formatDate\"\nimport { TagBubble } from \"~/ui/TagBubble\"\nimport { ButtonGroupToggle } from \"~/ui/ButtonGroupToggle\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useChangeVisibilityConfirm } from \"~/content/useChangeVisibilityConfirm\"\nimport { useSubmitForReviewConfirm } from \"~/content/useSubmitForReviewConfirm\"\nimport { useRequestEditsConfirm } from \"~/content/useRequestEditsConfirm\"\nimport { ArticlePublishModal } from \"~/articles/ArticlePublishModal\"\nimport { SearchInput } from \"~/ui/SearchInput\"\nimport {\n DropdownMenuCheckboxes,\n DropdownOptionType,\n} from \"~/common/DropdownMenuCheckboxes\"\nimport { ContentOptionType, SortOptionType } from \"./LibraryScreen\"\nimport { StateSetter } from \"~/types\"\nimport { useDebounce } from \"use-debounce\"\nimport {\n shouldShowApprove,\n shouldShowRequestEdits,\n shouldShowSubmitForReview,\n} from \"~/articles/ArticleTopActionToolbar\"\nimport { Tabs, TabsList, TabsTrigger } from \"~/ui/tabs\"\nimport { Badge } from \"~/ui/badge\"\nimport { useArchiveArticleConfirm } from \"~/content/useArchiveArticleConfirm\"\nimport { useToggleExternalShare } from \"~/content/useToggleExternalShare\"\nimport { useResendPublishEventConfirm } from \"~/content/useResendPublishEventConfirm\"\nimport { useTranslation } from \"~/common/Translation\"\nimport { ContentTypeIcon, useContentTypeOptions } from \"~/ui/ContentType\"\nimport { Button } from \"~/ui/button\"\n\nconst PER_PAGE = 25\n\ntype MyContentTabOptions =\n | ArticleVisibilityEnum.Hidden\n | ArticleVisibilityEnum.Live\n | \"CONTENT_SUBMISSIONS\"\n\nexport type AttributeOptionType = {\n label: ReactNode\n value: \"PREMIUM\" | \"FEATURED\" | \"ADMIN_AUTHORED\"\n}\n\nexport const attributeOptions: AttributeOptionType[] = [\n {\n value: \"PREMIUM\",\n label: (\n
\n \n
Premium
\n
\n ),\n },\n {\n value: \"FEATURED\",\n label: (\n
\n \n
Featured
\n
\n ),\n },\n {\n value: \"ADMIN_AUTHORED\",\n label: (\n
\n \n
Admin Authored
\n
\n ),\n },\n]\n\nexport const sortOptions = [\n {\n value: ArticleSortTypeEnum.CreatedAtDesc,\n label: \"Newest to Oldest\",\n },\n {\n value: ArticleSortTypeEnum.CreatedAtAsc,\n label: \"Oldest to Newest\",\n },\n {\n value: ArticleSortTypeEnum.LastEditedAt,\n label: \"Recently Edited\",\n },\n {\n value: ArticleSortTypeEnum.Alpha,\n label: \"Alphabetically\",\n },\n]\n\n/* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */\nconst resetPagination = (\n setter: StateSetter,\n paginate: (page: number) => void\n) => {\n return (value: T) => {\n paginate(1)\n setter(value)\n }\n}\n/* eslint-enable @typescript-eslint/no-unnecessary-type-constraint */\n\nexport const MyContentScreen = () => {\n const currentUser = useCurrentUser()\n const community = useCommunity()\n const ccls = useCommunityClassname()\n const [searchParams, setSearchParams] = useSearchParams()\n const page = parseInt(searchParams.get(\"page\") || \"1\")\n const [tab, _setTab] = useState(\n ArticleVisibilityEnum.Live\n )\n const [publishArticleId, setPublishArticleId] = useState(null)\n const paginate = useCallback(\n (page: number) => {\n setSearchParams({ page: page.toString() })\n },\n [setSearchParams]\n )\n const [query, _setQuery] = useState(\"\")\n const [topics, _setTopics] = useState([])\n const [contentTypes, _setContentTypes] = useState([])\n const [sort, _setSort] = useState([sortOptions[0]])\n const [attributes, _setAttributes] = useState([])\n const [debouncedQuery] = useDebounce(query, 200)\n\n const setQuery = resetPagination(_setQuery, paginate)\n const setTopics = resetPagination(_setTopics, paginate)\n const setSort = resetPagination(_setSort, paginate)\n const setContentTypes = resetPagination(_setContentTypes, paginate)\n const setAttributes = resetPagination(_setAttributes, paginate)\n\n const setTab = (tab: MyContentTabOptions) => {\n paginate(1)\n _setTab(tab)\n }\n const myContentResult = useQuery(ARTICLES_QUERY_DOCUMENT, {\n variables: {\n first: PER_PAGE,\n after: btoa(((page - 1) * PER_PAGE).toString()),\n visibilities:\n tab === ArticleVisibilityEnum.Hidden ||\n tab === ArticleVisibilityEnum.Live\n ? [tab]\n : null,\n query: debouncedQuery,\n tagIds: topics.length > 0 ? topics.map((t) => t.value) : undefined,\n contentTypes:\n contentTypes.length > 0\n ? contentTypes.map((t) => t.value)\n : community.contentTypes,\n sort: sort[0] ? sort[0].value : undefined,\n premium:\n attributes.findIndex((v) => v.value === \"PREMIUM\") >= 0\n ? true\n : undefined,\n featured:\n attributes.findIndex((v) => v.value === \"FEATURED\") >= 0\n ? true\n : undefined,\n adminAuthoredOnly:\n attributes.findIndex((v) => v.value === \"ADMIN_AUTHORED\") >= 0\n ? true\n : undefined,\n memberSubmissions: tab === \"CONTENT_SUBMISSIONS\",\n },\n })\n\n const topicOptions = (\n myContentResult.data?.tags.nodes ||\n myContentResult.previousData?.tags.nodes ||\n []\n ).map((topic) => ({\n value: topic.id,\n label: topic.name,\n }))\n\n const pageCount = Math.ceil(\n (myContentResult.data?.myContent.totalCount || 0) / PER_PAGE\n )\n\n const afterInviteAccept = useCallback(() => {\n paginate(1)\n myContentResult.refetch()\n }, [paginate, myContentResult])\n\n return (\n <>\n
\n \n
\n\n \n\n \n\n {\n const value = v as MyContentTabOptions\n setTab(value)\n\n if (currentUser.admin) {\n const newAttributes = attributes.filter(\n (a) => a.value !== \"ADMIN_AUTHORED\"\n )\n if (value === ArticleVisibilityEnum.Hidden) {\n setAttributes([\n ...newAttributes,\n attributeOptions.find((a) => a.value === \"ADMIN_AUTHORED\")!,\n ])\n } else {\n setAttributes(newAttributes)\n }\n }\n\n if (\n value === \"CONTENT_SUBMISSIONS\" ||\n value === ArticleVisibilityEnum.Hidden\n ) {\n setSort(\n sortOptions.filter(\n (s) => s.value === ArticleSortTypeEnum.LastEditedAt\n )\n )\n } else {\n setSort(\n sortOptions.filter(\n (s) => s.value === ArticleSortTypeEnum.CreatedAtDesc\n )\n )\n }\n }}\n >\n \n \n Live\n \n \n Drafts\n \n {currentUser.admin && (\n <>\n \n Member Submissions\n {myContentResult.data?.memberSubmissionsCount.totalCount ? (\n \n {myContentResult.data?.memberSubmissionsCount.totalCount}\n \n ) : null}\n \n \n )}\n \n \n\n
\n \n\n {!myContentResult.loading && pageCount > 1 && (\n }\n nextLabel={}\n previousLabel={}\n forcePage={page - 1}\n onPageChange={({ selected }) => paginate(selected + 1)}\n pageRangeDisplayed={5}\n pageCount={Math.ceil(\n (myContentResult.data?.myContent.totalCount || 0) / PER_PAGE\n )}\n renderOnZeroPageCount={null}\n containerClassName=\"flex items-center justify-center gap-4 my-6 text-sm\"\n disabledLinkClassName=\"cursor-not-allowed text-gray-300\"\n activeLinkClassName=\"text-blue-600 font-semibold\"\n />\n )}\n
\n {publishArticleId && (\n !isOpen && setPublishArticleId(null)}\n onSuccess={myContentResult.refetch}\n />\n )}\n \n )\n}\n\nconst MyContentFilters = ({\n query,\n setQuery,\n topics,\n setTopics,\n topicOptions,\n contentTypes,\n setContentTypes,\n sort,\n setSort,\n attributes,\n setAttributes,\n}: {\n query: string\n setQuery: (v: string) => void\n topics: DropdownOptionType[]\n setTopics: (v: DropdownOptionType[]) => void\n topicOptions: DropdownOptionType[]\n contentTypes: ContentOptionType[]\n setContentTypes: (v: ContentOptionType[]) => void\n sort: SortOptionType[]\n setSort: (v: SortOptionType[]) => void\n attributes: AttributeOptionType[]\n setAttributes: (v: AttributeOptionType[]) => void\n}) => {\n const currentUser = useCurrentUser()\n const contentTypeOptions = useContentTypeOptions()\n\n return (\n
\n
\n \n
\n
\n
\n 0 &&\n contentTypes.length !== contentTypeOptions.length\n ? `${contentTypes.length} Selected`\n : \"By Type\"\n }\n optionTitle=\"FILTER BY TYPE\"\n options={contentTypeOptions}\n selected={contentTypes}\n onChange={(data) => {\n setContentTypes(data)\n }}\n />\n
\n
\n 0 ? `${topics.length} Selected` : \"Topic\"}\n optionTitle=\"FILTER BY TOPIC\"\n options={topicOptions}\n selected={topics}\n onChange={(data) => setTopics(data)}\n />\n
\n
\n currentUser.admin || option.value !== \"ADMIN_AUTHORED\"\n )}\n selected={attributes}\n onChange={setAttributes}\n // exclusive={true}\n />\n
\n
\n }\n variant=\"minimal\"\n theme=\"current\"\n >\n Sort\n \n }\n />\n
\n
\n
\n )\n}\n\nconst MyContentTable = ({\n result,\n tab,\n setPublishArticleId,\n}: {\n result: QueryResult<\n MyContentQuery,\n Exact<{\n first?: InputMaybe | undefined\n after?: InputMaybe | undefined\n }>\n >\n tab: MyContentTabOptions\n setPublishArticleId: (id: string) => void\n}) => {\n const { data, loading, error } = result\n\n if (loading)\n return (\n
\n \n
\n )\n if (error || !data) return \n\n const articles = data.myContent.nodes.filter((a) => {\n if (tab === ArticleVisibilityEnum.Live)\n return a.visibility === ArticleVisibilityEnum.Live\n if (tab === ArticleVisibilityEnum.Hidden)\n return a.visibility === ArticleVisibilityEnum.Hidden\n return true\n })\n\n if (articles.length === 0) {\n return (\n
\n
\n \n
\n\n
\n No Content\n
\n\n
\n You have not created any content yet. Use the buttons above to get\n started!\n
\n
\n )\n }\n\n return (\n <>\n \n\n \n \n \n \n {articles.map((article) => (\n setPublishArticleId(article.id)}\n refreshList={result.refetch}\n />\n ))}\n \n
\n
\n
\n \n )\n}\n\nconst ArticleRow = ({\n article,\n openPublish,\n refreshList,\n}: {\n article: Article_MyContentTableFragment\n openPublish: () => void\n refreshList: () => void\n}) => {\n const currentUser = useCurrentUser()\n const contextMenuTriggerRef = useRef(null)\n\n const isFeatured = useMemo(\n () =>\n article.featuredUntil &&\n compareAsc(parseISO(article.featuredUntil), new Date()) === 1,\n [article]\n )\n\n const toggleExternalShare = useToggleExternalShare({ article })\n const toggleFeatured = useToggleFeaturedConfirm({ article })\n const togglePremium = useTogglePremiumConfirm({ article })\n const changeVisibility = useChangeVisibilityConfirm({\n article,\n onSuccess: refreshList,\n })\n const submitForReview = useSubmitForReviewConfirm({ article })\n const requestEdits = useRequestEditsConfirm({ article })\n const archive = useArchiveArticleConfirm({ article })\n const resendPublishEvent = useResendPublishEventConfirm({ article })\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n const { t: contentTypesT } = useTranslation(\"contentTypes\")\n\n return (\n <>\n \n \n {shouldShowSubmitForReview(article) && (\n \n }\n />\n \n )}\n\n {shouldShowApprove(article) &&\n article.state !== ArticleStateEnum.Approved && (\n \n }\n />\n \n )}\n\n {shouldShowRequestEdits(article) && (\n \n }\n />\n \n )}\n\n {article.currentUserCanMarkAsFeatured.value && (\n \n \n }\n />\n \n )}\n\n {article.currentUserCanMarkAsPremium.value && (\n \n \n }\n />\n \n )}\n\n {currentUser.currentUserCanDebug.value &&\n article.visibility === ArticleVisibilityEnum.Live && (\n \n }\n />\n \n )}\n\n {article.currentUserCanArchive.value &&\n article.state !== ArticleStateEnum.Archived && (\n \n }\n />\n \n )}\n \n \n \n \n
\n c.user)}\n />\n
\n
\n \n
\n {isFeatured && (\n \n
\n \n
\n \n )}\n {article.premium && (\n
\n \n
\n )}\n
\n \n

\n {article.markedLiveAt ? (\n <>Date Published - {formatDate(article.markedLiveAt)}\n ) : (\n <>Date Created - {formatDate(article.createdAt)}\n )}\n

\n

\n {article.revision.title}\n

\n \n
\n \n
\n \n {article.revision.contentType && (\n
\n \n {contentTypesT(article.revision.contentType)}\n
\n )}\n
\n
\n \n
\n \n Share\n
\n }\n leftButtonOnClick={() =>\n article.currentUserCanChangeExternalShareSetting.value &&\n toggleExternalShare()\n }\n rightButtonOnClick={() =>\n article.currentUserCanChangeExternalShareSetting.value &&\n toggleExternalShare()\n }\n activeButton={article.allowExternalShare ? \"right\" : \"left\"}\n />\n
\n \n {article.currentUserCanChangeVisibility.value && (\n \n changeVisibility()}\n rightButtonOnClick={() => changeVisibility()}\n activeButton={\n article.visibility === ArticleVisibilityEnum.Live\n ? \"right\"\n : \"left\"\n }\n />\n \n )}\n {ARTICLE_STATE_LABELS[article.state]}\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst MenuEntryWithIcon = ({\n icon,\n copy,\n}: {\n icon: ReactNode\n copy: string\n}) => (\n
\n
{icon}
\n {copy}\n
\n)\n\nconst Cell = ({\n children,\n className,\n}: {\n children?: ReactNode\n className?: string\n}) => (\n \n {children}\n \n)\n\ntype MyContentCardViewProps = {\n articles: Article_MyContentTableFragment[]\n}\n\nconst MyContentCardView = ({ articles }: MyContentCardViewProps) => {\n return (\n
\n {articles.map((article) => (\n
\n \n
\n ))}\n
\n )\n}\n\ngql(`\n fragment Article_ReviewActions on Article {\n id\n state\n currentUserCanRequestEdits { value }\n currentUserCanApprove { value }\n currentUserCanSubmitForApproval { value }\n }\n`)\n\ngql(`\n fragment Article_MyContentTable on Article {\n id\n createdAt\n markedLiveAt\n state\n visibility\n featuredUntil\n premium\n allowExternalShare\n collaborators {\n id\n user {\n id\n ...User_Avatar\n }\n }\n revision: draftRevision {\n id\n title\n description\n contentType\n contentVersion\n landscapeImageUrl\n portraitImageUrl\n tag {\n id\n name\n }\n }\n createdAt\n\n currentUserCanMarkAsFeatured { value }\n currentUserCanMarkAsPremium { value }\n currentUserCanChangeExternalShareSetting { value }\n currentUserCanChangeVisibility { value }\n currentUserCanRequestEdits { value }\n currentUserCanApprove { value }\n currentUserCanSubmitForApproval { value }\n currentUserCanArchive { value }\n\n ...Article_ReviewActions\n }\n`)\n\nconst ARTICLES_QUERY_DOCUMENT = gql(`\n query MyContent(\n $first: Int,\n $after: String,\n $contentTypes: [ArticleContentTypeEnum!],\n $visibilities: [ArticleVisibilityEnum!],\n $query: String\n $tagIds: [ID!]\n $sort: ArticleSortTypeEnum\n $featured: Boolean\n $premium: Boolean\n $adminAuthoredOnly: Boolean\n $memberSubmissions: Boolean\n ) {\n myContent: articles(\n first: $first,\n after: $after,\n revisionType: DRAFT,\n contentTypes: $contentTypes,\n visibilities: $visibilities,\n query: $query,\n tagIds: $tagIds\n sort: $sort\n featured: $featured\n premium: $premium\n adminAuthoredOnly: $adminAuthoredOnly,\n memberSubmissions: $memberSubmissions\n ) {\n totalCount\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n nodes {\n ...Article_MyContentTable\n }\n }\n memberSubmissionsCount: articles(revisionType: DRAFT, contentTypes: $contentTypes, memberSubmissions: true) {\n totalCount\n }\n\n tags {\n nodes {\n id\n name\n }\n }\n }\n`)\n","import * as React from \"react\";\nconst SvgCloseCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 13, height: 13, viewBox: \"0 0 13 13\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M6.50065 11.9166C9.47982 11.9166 11.9173 9.47909 11.9173 6.49992C11.9173 3.52075 9.47982 1.08325 6.50065 1.08325C3.52148 1.08325 1.08398 3.52075 1.08398 6.49992C1.08398 9.47909 3.52148 11.9166 6.50065 11.9166Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4.9668 8.03287L8.03263 4.96704\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.03263 8.03287L4.9668 4.96704\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgCloseCircle;\n","import CloseCircle from \"../images/icons/close-circle.svg?react\"\n\nconst matchCountText = (totalCount: number) => {\n if (totalCount === 0) {\n return \"No Matches\"\n } else if (totalCount === 1) {\n return \"1 Match\"\n } else {\n return `${totalCount} Matches`\n }\n}\n\nexport const SearchFeedback = ({\n totalCount,\n onClearSearch,\n}: {\n totalCount: number\n onClearSearch: () => void\n}) => {\n return (\n
\n
\n
\n {matchCountText(totalCount)}\n for your search criteria\n
\n \n Clear Search\n \n
\n
\n
\n )\n}\n","import { useEffect, useRef, useState } from \"react\"\nimport { MarkReadEnum } from \"~/__generated__/graphql\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { MARK_READ_MUTATION } from \"~/common/userUpdateMutation\"\n\nexport const useReadIndicators = ({\n target,\n}: {\n target: MarkReadEnum\n}): { unviewedIds: string[] } => {\n const markedReadRef = useRef(false)\n const [runMarkRead] = useSafeMutation(MARK_READ_MUTATION)\n const [unviewedIds, setUnviewedIds] = useState([])\n\n useEffect(() => {\n if (markedReadRef.current) return\n markedReadRef.current = true\n\n const run = async () => {\n const { data } = await runMarkRead({\n variables: {\n input: {\n target,\n },\n },\n })\n\n if (data?.markRead.unviewedIds) {\n setUnviewedIds(data.markRead.unviewedIds)\n }\n }\n\n run()\n }, [runMarkRead, target])\n\n return {\n unviewedIds,\n }\n}\n","import React, { useEffect, useState, useRef, useMemo } from \"react\"\nimport { useDebounce } from \"use-debounce\"\nimport { useQuery } from \"@apollo/client\"\n\nimport { gql } from \"~/__generated__\"\nimport { SearchFeedback } from \"~/common/SearchFeedback\"\nimport {\n ArticleSortTypeEnum,\n AhoyEventTypeEnum,\n ArticleContentTypeEnum,\n MarkReadEnum,\n CommunitySlug,\n ScreenEnum,\n} from \"~/__generated__/graphql\"\nimport {\n DropdownMenuCheckboxes,\n DropdownOptionType,\n} from \"~/common/DropdownMenuCheckboxes\"\nimport { ArticleCard } from \"~/ui/ArticleCard\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useSearchParams } from \"react-router-dom\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { useReadIndicators } from \"~/content/useReadIndicators\"\nimport { SearchInput } from \"~/ui/SearchInput\"\nimport { cn } from \"~/lib/utils\"\nimport { Translation, useTranslation } from \"~/common/Translation\"\nimport { H7 } from \"~/ui/typography\"\nimport { camelCase } from \"change-case\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { ScrollArea, ScrollBar, ScrollFade } from \"~/ui/scroll-area\"\nimport { Button, LinkButton } from \"~/ui/button\"\nimport { CreateContentButton } from \"~/articles/CreateContentButton\"\nimport { myContentPath } from \"~/common/paths\"\nimport {\n ArticleCategory,\n categoriesToContentTypes,\n ContentTypeIcon,\n useContentTypeOptions,\n} from \"~/ui/ContentType\"\nimport { ArrowUpDown } from \"lucide-react\"\nimport { useTags } from \"~/common/GlobalsProvider\"\n\nexport type SortOptionType = {\n label: string\n value: ArticleSortTypeEnum\n}\n\nexport type ContentOptionType = {\n label: string | React.ReactNode\n value: ArticleContentTypeEnum\n}\n\nexport const librarySortOptions: SortOptionType[] = [\n {\n value: ArticleSortTypeEnum.Alpha,\n label: \"Alphabetically\",\n },\n {\n value: ArticleSortTypeEnum.CreatedAtDesc,\n label: \"Newest to Oldest\",\n },\n]\n\nexport const LibraryScreen = () => {\n const { logEvent } = useLogEvent()\n const [searchParams, setSearchParams] = useSearchParams()\n const [query, setQuery] = useState(searchParams.get(\"search\") || \"\")\n const [debouncedQuery] = useDebounce(query, 200)\n const [topics, setTopics] = useState([])\n const [contentTypes, setContentTypes] = useState([])\n const [sort, setSort] = useState([librarySortOptions[1]])\n const community = useCommunity()\n const { unviewedIds } = useReadIndicators({ target: MarkReadEnum.Library })\n const ccls = useCommunityClassname()\n const { t } = useTranslation(\"libraryScreen\")\n\n const [selectedCategory, setSelectedCategory] =\n useState(\"discover\")\n\n useEffect(() => {\n if (debouncedQuery.length > 0) {\n if (debouncedQuery !== searchParams.get(\"search\")) {\n setSearchParams({ search: debouncedQuery })\n }\n } else {\n searchParams.delete(\"search\")\n setSearchParams(searchParams)\n }\n }, [debouncedQuery, searchParams, setSearchParams])\n\n useEffect(() => {\n setContentTypes(\n categoriesToContentTypes[selectedCategory]\n .filter((value) => community.contentTypes.includes(value))\n .map((value) => ({\n value,\n label: value,\n }))\n )\n }, [selectedCategory])\n\n const { data: categorizedData, loading: categorizedLoading } = useQuery(\n LIBRARY_QUERY_DOCUMENT,\n {\n variables: {\n query: debouncedQuery,\n tagIds: topics.length > 0 ? topics.map((t) => t.value) : undefined,\n contentTypes:\n contentTypes.length > 0\n ? contentTypes.map((t) => t.value)\n : community.contentTypes,\n sort: sort[0] ? sort[0].value : undefined,\n first: 9,\n },\n skip: selectedCategory !== \"discover\",\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-first\",\n onCompleted: () => {\n if (debouncedQuery.length !== 0) {\n logEvent(AhoyEventTypeEnum.ContentSearched, {\n search_query: debouncedQuery,\n })\n }\n },\n }\n )\n\n const {\n data: currentData,\n previousData,\n loading,\n fetchMore,\n } = useQuery(LIBRARY_ARTICLES_QUERY_DOCUMENT, {\n variables: {\n query: debouncedQuery,\n tagIds: topics.length > 0 ? topics.map((t) => t.value) : undefined,\n contentTypes:\n contentTypes.length > 0\n ? contentTypes.map((t) => t.value)\n : community.contentTypes,\n sort: sort[0] ? sort[0].value : undefined,\n first: 9,\n },\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-first\",\n onCompleted: () => {\n if (debouncedQuery.length !== 0) {\n logEvent(AhoyEventTypeEnum.ContentSearched, {\n search_query: debouncedQuery,\n })\n }\n },\n })\n\n const data = currentData || previousData\n\n const tags = useTags()\n const topicOptions = useMemo(\n () =>\n tags.map((tag) => ({\n value: tag.id,\n label: tag.name,\n })),\n [tags]\n )\n\n const {\n featuredArticles,\n newlyAddedArticles,\n trendingArticles,\n communityArticles,\n } = useMemo(() => {\n if (!categorizedData) {\n return {\n featuredArticles: [],\n newlyAddedArticles: [],\n trendingArticles: [],\n communityArticles: [],\n }\n }\n return {\n featuredArticles: categorizedData.featuredArticles.edges.map(\n (e) => e.node\n ),\n newlyAddedArticles: categorizedData.newlyAddedArticles.edges.map(\n (e) => e.node\n ),\n trendingArticles: categorizedData.trendingArticles.edges.map(\n (e) => e.node\n ),\n communityArticles: categorizedData.communityArticles.edges.map(\n (e) => e.node\n ),\n }\n }, [categorizedData])\n\n const contentTypeOptions = useContentTypeOptions(selectedCategory, \"w-4 h-4\")\n\n const inputRef = useRef(null)\n\n const clearSearch = () => {\n setQuery(\"\")\n setTopics([])\n setContentTypes([])\n setSort([])\n }\n\n const searchActive =\n debouncedQuery !== \"\" ||\n topics.length > 0 ||\n (contentTypes.length > 0 &&\n contentTypes.length !== contentTypeOptions.length)\n\n const isLoading = (loading || categorizedLoading) && !data && !categorizedData\n\n return (\n <>\n
\n {/* \n \n \n

\n \n

*/}\n\n
\n \n \n My Content\n \n
\n\n
\n }\n variant={selectedCategory === \"discover\" ? \"filled\" : \"unselected\"}\n onClick={() => setSelectedCategory(\"discover\")}\n >\n Discover\n \n }\n variant={\n selectedCategory === \"newsletters\" ? \"filled\" : \"unselected\"\n }\n onClick={() => setSelectedCategory(\"newsletters\")}\n >\n Newsletters\n \n }\n variant={selectedCategory === \"ondemand\" ? \"filled\" : \"unselected\"}\n onClick={() => setSelectedCategory(\"ondemand\")}\n >\n Replays\n \n }\n variant={selectedCategory === \"resources\" ? \"filled\" : \"unselected\"}\n onClick={() => setSelectedCategory(\"resources\")}\n >\n Resources\n \n {/* }\n variant={selectedCategory === \"podcasts\" ? \"filled\" : \"unselected\"}\n onClick={() => setSelectedCategory(\"podcasts\")}\n >\n Podcasts\n */}\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n 0 &&\n contentTypes.length !== contentTypeOptions.length\n ? `${contentTypes.length} Selected`\n : \"By Type\"\n }\n optionTitle=\"FILTER BY TYPE\"\n options={contentTypeOptions}\n selected={contentTypes}\n onChange={(data) => {\n const contentTypeNames = (data || []).map((t) => t.label)\n\n if (contentTypeNames.length !== 0) {\n logEvent(AhoyEventTypeEnum.ContentTypeFilterApplied, {\n content_types: contentTypeNames.join(\", \"),\n })\n }\n\n setContentTypes(data)\n }}\n />\n
\n
\n 0 ? `${topics.length} Selected` : \"By Topic\"\n }\n optionTitle=\"FILTER BY TOPIC\"\n options={topicOptions}\n selected={topics}\n onChange={(data) => {\n const topicNames = (data || []).map((t) => t.label)\n\n if (topicNames.length !== 0) {\n logEvent(AhoyEventTypeEnum.TopicFilterApplied, {\n topics: topicNames.join(\", \"),\n })\n }\n\n setTopics(data)\n }}\n />\n
\n
\n }\n variant=\"minimal\"\n theme=\"current\"\n >\n Sort\n \n }\n />\n
\n
\n {searchActive && (\n {\n logEvent(AhoyEventTypeEnum.ContentSearchCleared, {\n search_query: query,\n topics: (topics || []).map((t) => t.label).join(\", \"),\n types: (contentTypes || []).map((t) => t.value).join(\", \"),\n })\n clearSearch()\n }}\n />\n )}\n
\n\n {isLoading && }\n {!isLoading && (\n <>\n {featuredArticles && featuredArticles.length > 0 && (\n
\n \n \n \n\n \n
\n {featuredArticles.map((article) => {\n return (\n \n )\n })}\n
\n \n \n \n
\n
\n )}\n\n {newlyAddedArticles && newlyAddedArticles.length > 0 && (\n
\n \n \n \n\n \n
\n {newlyAddedArticles.map((article) => {\n return (\n \n )\n })}\n
\n \n \n \n
\n
\n )}\n\n {trendingArticles && trendingArticles.length > 0 && (\n
\n \n \n \n\n \n
\n {trendingArticles.map((article) => {\n return (\n \n )\n })}\n
\n \n \n \n
\n
\n )}\n\n {communityArticles && communityArticles.length > 0 && (\n
\n \n \n \n\n \n
\n {communityArticles.map((article) => {\n return (\n \n )\n })}\n
\n \n \n \n
\n
\n )}\n\n
\n \n \n \n\n \n {data && (\n <>\n {data.libraryArticles.edges\n .map((e) => e.node)\n .map((article) => {\n return (\n \n )\n })}\n \n fetchMore({\n variables: {\n after: data.libraryArticles.pageInfo.endCursor,\n },\n })\n }\n canLoadMore={data.libraryArticles.pageInfo.hasNextPage}\n loadingText=\"Loading articles...\"\n loading={false}\n />\n \n )}\n
\n
\n \n )}\n \n \n )\n}\n\nexport const LIBRARY_QUERY_DOCUMENT = gql(`\n query LibraryCategorizedArticles(\n $query: String,\n $collaborators: [ID!],\n $tagIds: [ID!],\n $contentTypes: [ArticleContentTypeEnum!],\n $sort: ArticleSortTypeEnum,\n $first: Int,\n $after: String\n ) {\n featuredArticles: articles(\n query: $query,\n revisionType: APPROVED,\n visibilities: [LIVE],\n states: [APPROVED HAS_PENDING_EDITS],\n collaborators: $collaborators,\n tagIds: $tagIds,\n contentTypes: $contentTypes,\n sort: CREATED_AT_DESC,\n first: 10,\n featured: true\n ) {\n edges {\n node {\n id\n ...Article_Card\n }\n }\n }\n\n newlyAddedArticles: articles(\n query: $query,\n revisionType: APPROVED,\n visibilities: [LIVE],\n states: [APPROVED HAS_PENDING_EDITS],\n collaborators: $collaborators,\n tagIds: $tagIds,\n contentTypes: $contentTypes,\n sort: CREATED_AT_DESC,\n first: 10\n newlyAdded: true\n ) {\n edges {\n node {\n id\n ...Article_Card\n }\n }\n }\n\n trendingArticles: articles(\n query: $query,\n revisionType: APPROVED,\n visibilities: [LIVE],\n states: [APPROVED HAS_PENDING_EDITS],\n collaborators: $collaborators,\n tagIds: $tagIds,\n contentTypes: $contentTypes,\n sort: TOP_VIEWED,\n first: 10\n ) {\n edges {\n node {\n id\n ...Article_Card\n }\n }\n }\n\n communityArticles: articles(\n query: $query,\n revisionType: APPROVED,\n visibilities: [LIVE],\n states: [APPROVED HAS_PENDING_EDITS],\n collaborators: $collaborators,\n tagIds: $tagIds,\n contentTypes: $contentTypes,\n communityAuthoredOnly: true,\n sort: CREATED_AT_DESC,\n first: 10\n ) {\n edges {\n node {\n id\n ...Article_Card\n }\n }\n }\n\n libraryArticles: articles(\n query: $query,\n revisionType: APPROVED,\n visibilities: [LIVE],\n states: [APPROVED HAS_PENDING_EDITS],\n collaborators: $collaborators,\n tagIds: $tagIds,\n contentTypes: $contentTypes,\n sort: $sort,\n first: $first,\n after: $after\n ) {\n totalCount\n pageInfo {\n endCursor\n hasNextPage\n }\n edges {\n node {\n id\n ...Article_Card\n }\n }\n }\n }\n`)\n\nconst LIBRARY_ARTICLES_QUERY_DOCUMENT = gql(`\n query LibraryArticles(\n $query: String,\n $collaborators: [ID!],\n $tagIds: [ID!],\n $contentTypes: [ArticleContentTypeEnum!],\n $sort: ArticleSortTypeEnum,\n $first: Int,\n $after: String\n ) {\n libraryArticles: articles(\n query: $query,\n revisionType: APPROVED,\n visibilities: [LIVE],\n states: [APPROVED HAS_PENDING_EDITS],\n collaborators: $collaborators,\n tagIds: $tagIds,\n contentTypes: $contentTypes,\n sort: $sort,\n first: $first,\n after: $after\n ) {\n totalCount\n pageInfo {\n endCursor\n hasNextPage\n }\n edges {\n node {\n id\n ...Article_Card\n }\n }\n }\n }\n`)\n","import { cn } from \"~/lib/utils\"\nimport { useFormContext } from \"react-hook-form\"\nimport { useTranslation } from \"react-i18next\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { useCommunity } from \"~/community/useCommunity\"\n\nconst COMMUNITY_BIO_ROWS: Record = {\n [CommunitySlug.Safespace]: 3,\n [CommunitySlug.Boardroom]: 4,\n [CommunitySlug.Marketingland]: 4,\n [CommunitySlug.Gotomillions]: 4,\n [CommunitySlug.Fintechtakes]: 4,\n}\n\nconst COMMUNITY_BIO_LENGTH: Record = {\n [CommunitySlug.Safespace]: 200,\n [CommunitySlug.Boardroom]: 400,\n [CommunitySlug.Marketingland]: 400,\n [CommunitySlug.Gotomillions]: 400,\n [CommunitySlug.Fintechtakes]: 400,\n}\n\nexport const OnboardingBioField = () => {\n const {\n register,\n watch,\n formState: { errors },\n } = useFormContext()\n const { t } = useTranslation(\"onboarding\")\n const community = useCommunity()\n const bioLength = COMMUNITY_BIO_LENGTH[community.slug]\n\n return (\n \n )\n}\n","import { useState, Dispatch, SetStateAction } from \"react\"\nimport { cn } from \"~/lib/utils\"\nimport { useFormContext, Controller } from \"react-hook-form\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport GooglePlacesAutocomplete from \"react-google-places-autocomplete\"\nimport { SingleValue } from \"react-select\"\nimport { FieldPointer, OnboardingFieldLabel } from \"~/ui/Onboarding\"\nimport { useTranslation } from \"react-i18next\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { useConfig } from \"~/common/ConfigProvider\"\nimport { Alert } from \"~/ui/alert\"\nimport { CircleAlert } from \"lucide-react\"\n\ntype PlaceValueType = {\n label: string\n value: google.maps.places.AutocompletePrediction | string\n}\n\nexport const OnboardingDetailsFields = ({\n setCardLocation,\n}: {\n setCardLocation?: Dispatch>\n}) => {\n const ccls = useCommunityClassname()\n const {\n control,\n clearErrors,\n setValue,\n register,\n formState: { errors },\n watch,\n } = useFormContext()\n const currentUser = useCurrentUser()\n const { mapsApiKey } = useConfig()\n const { t } = useTranslation(\"onboarding\")\n\n const community = useCommunity()\n\n // Jumping through some real hoops to avoid uncontrolled form errors\n // for no explicable reason\n const [placeValue, setPlaceValue] = useState({\n value: currentUser.place?.id || \"\",\n label: currentUser.place?.full || \"\",\n })\n\n const onChangePlace = (option: SingleValue) => {\n if (option) {\n if (typeof option.value == \"string\") {\n setValue(\"placeId\", option.value, { shouldDirty: true })\n setPlaceValue(option)\n } else {\n setValue(\"placeId\", option.value.place_id, { shouldDirty: true })\n setPlaceValue({ value: option.value.place_id, label: option.label })\n if (setCardLocation) {\n if (option.label.endsWith(\", USA\")) {\n setCardLocation(option.label.slice(0, -5))\n } else {\n setCardLocation(option.label.split(\",\").slice(-1)[0].trim())\n }\n }\n }\n clearErrors(\"placeId\")\n } else {\n setValue(\"placeId\", null, { shouldDirty: true })\n if (setCardLocation) {\n setCardLocation(null)\n }\n setPlaceValue({ value: \"\", label: \"\" })\n }\n }\n\n return (\n
\n {!!Object.keys(errors).length && (\n \n \n
\n Please correct the following:\n
\n {Object.values(errors)\n .map((fieldError) => fieldError?.message)\n .join(\", \")}\n .\n
\n
\n
\n )}\n \n \n \n \n \n \n
\n )\n}\n","import * as React from \"react\";\nconst SvgUploadPhoto = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 64, height: 64, viewBox: \"0 0 64 64\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"mask\", { id: \"mask0_94_2010\", style: {\n maskType: \"luminance\"\n}, maskUnits: \"userSpaceOnUse\", x: 0, y: 0, width: 64, height: 64 }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 32, cy: 32, r: 32, fill: \"white\" })), /* @__PURE__ */ React.createElement(\"g\", { mask: \"url(#mask0_94_2010)\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.4658 42.2245C19.6578 42.2721 19.854 42.1619 19.9042 41.9727C20.6419 39.2398 23.6403 38.5315 25.4324 38.1077C25.8815 38.0017 26.2361 37.9178 26.4667 37.819C28.5081 36.9393 29.1736 35.5241 29.3727 34.4915C29.397 34.3671 29.3519 34.2391 29.2545 34.1552C28.1915 33.2442 27.2948 31.8767 26.7289 30.3036C26.7131 30.2588 26.6881 30.2176 26.6551 30.182C25.9066 29.3741 25.4768 28.5201 25.4768 27.8395C25.4768 27.442 25.628 27.1753 25.9682 26.974C26.0721 26.9122 26.1372 26.8034 26.1423 26.6839C26.2984 23.0599 28.8978 20.2089 32.0845 20.1897C32.0881 20.1897 32.1576 20.1947 32.1612 20.1947C35.3644 20.2388 37.9466 23.1516 38.039 26.8254C38.0418 26.9271 38.0877 27.0224 38.1665 27.0878C38.3907 27.2763 38.4952 27.5152 38.4952 27.8395C38.4952 28.4091 38.1894 29.1096 37.635 29.8108C37.6085 29.8442 37.5884 29.8826 37.5748 29.9231C37.0018 31.7266 35.9732 33.3189 34.7541 34.2931C34.651 34.3756 34.6023 34.5079 34.6266 34.6366C34.8257 35.6685 35.4912 37.0829 37.5326 37.964C37.7739 38.0679 38.1486 38.1489 38.6235 38.2506C40.3977 38.6318 43.3667 39.2711 44.0951 41.9713C44.1381 42.1299 44.2828 42.2345 44.4404 42.2345C44.4712 42.2345 44.502 42.2302 44.5335 42.2224C44.7247 42.1712 44.8379 41.9763 44.7871 41.7864C43.9454 38.6666 40.5818 37.9434 38.7753 37.5551C38.3563 37.4648 37.9946 37.3873 37.8184 37.3105C36.4861 36.7359 35.6652 35.8605 35.3751 34.7042C36.6121 33.6495 37.6472 32.0224 38.2388 30.1976C38.867 29.3869 39.2122 28.5521 39.2122 27.8388C39.2122 27.363 39.0575 26.9662 38.751 26.6562C38.5819 22.6709 35.7168 19.5319 32.1619 19.4814L32.0552 19.48C28.5647 19.4985 25.6881 22.5543 25.4367 26.4705C24.9883 26.7977 24.7605 27.2564 24.7605 27.8388C24.7605 28.6801 25.2397 29.6863 26.0785 30.6094C26.658 32.1903 27.5562 33.5791 28.6256 34.5513C28.3369 35.7118 27.5154 36.5901 26.1802 37.1654C26.0076 37.2401 25.6638 37.3219 25.2655 37.4157C23.4455 37.8453 20.0589 38.6453 19.2108 41.7871C19.1614 41.9792 19.2746 42.1733 19.4658 42.2245Z\", fill: \"white\", stroke: \"white\" }));\nexport default SvgUploadPhoto;\n","import { Dispatch, SetStateAction, useState } from \"react\"\nimport { cn } from \"~/lib/utils\"\nimport { Controller, useFormContext } from \"react-hook-form\"\nimport Dropzone from \"react-dropzone\"\nimport { useDirectImageUpload } from \"~/common/directImageUpload\"\nimport { Button } from \"~/ui/button\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\nimport UploadPhotoIcon from \"~/images/icons/upload-photo.svg?react\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { AhoyEventTypeEnum, CommunitySlug } from \"~/__generated__/graphql\"\nimport { FieldPointer, OnboardingFieldLabel } from \"~/ui/Onboarding\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\n\nexport const OnboardingPhotoField = ({\n value,\n onChange,\n variant,\n}: {\n value: string | null\n onChange: Dispatch>\n variant?: string\n}) => {\n const { directImageUpload } = useDirectImageUpload()\n const { setValue, control } = useFormContext()\n const [uploading, setUploading] = useState(false)\n const { logEvent } = useLogEvent()\n const ccls = useCommunityClassname()\n const community = useCommunity()\n\n const removePhoto = (e: React.MouseEvent) => {\n onChange(null)\n setValue(\"photo\", null, { shouldDirty: true })\n e.preventDefault()\n }\n\n return (\n (\n {\n setUploading(true)\n const blob = await directImageUpload(acceptedFiles[0])\n onChange(URL.createObjectURL(acceptedFiles[0]))\n setValue(\"photo\", blob.signedId, { shouldDirty: true })\n setUploading(false)\n logEvent(AhoyEventTypeEnum.HeadshotAdded)\n }}\n >\n {({ getRootProps, getInputProps, open }) => (\n \n )}\n \n )}\n />\n )\n}\n","import * as React from \"react\";\nconst SvgSignOutLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 14, height: 12, viewBox: \"0 0 14 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M10.3334 0.666748H12.3334C12.5102 0.666748 12.6798 0.736986 12.8048 0.86201C12.9298 0.987035 13 1.1566 13 1.33341V10.6667C13 10.8436 12.9298 11.0131 12.8048 11.1382C12.6798 11.2632 12.5102 11.3334 12.3334 11.3334H10.3334M5.29338 1.76675L6.33338 2.66675C6.39992 2.72365 6.4546 2.7931 6.49429 2.87114C6.53399 2.94918 6.55793 3.03427 6.56474 3.12156C6.57155 3.20885 6.5611 3.29662 6.53398 3.37987C6.50687 3.46312 6.46362 3.54021 6.40671 3.60675L5.44004 4.66675H10.3334V7.33341H5.44004L6.38004 8.42675C6.49821 8.55773 6.55966 8.7302 6.55091 8.90639C6.54216 9.08258 6.46394 9.24812 6.33338 9.36675L5.32004 10.2334C5.25258 10.2978 5.17237 10.3473 5.08459 10.3787C4.99681 10.4101 4.90341 10.4228 4.81042 10.4159C4.71744 10.409 4.62694 10.3827 4.54477 10.3386C4.46259 10.2945 4.39058 10.2337 4.33338 10.1601L1.16004 6.43341C1.05676 6.31266 1 6.15898 1 6.00008C1 5.84118 1.05676 5.6875 1.16004 5.56675L4.33338 1.84008C4.39048 1.77058 4.46105 1.71334 4.54086 1.67183C4.62066 1.63032 4.70804 1.60539 4.79773 1.59854C4.88742 1.59169 4.97757 1.60306 5.06275 1.63197C5.14793 1.66087 5.22638 1.70672 5.29338 1.76675V1.76675Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgSignOutLeft;\n","import copy from \"copy-to-clipboard\"\nimport { useState, useEffect } from \"react\"\nimport { AhoyEventTypeEnum } from \"~/__generated__/graphql\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { useCommunity, useCommunityFeatures } from \"~/community/useCommunity\"\n\nexport const ReferralCode = () => {\n const community = useCommunity()\n const features = useCommunityFeatures()\n const currentUser = useCurrentUser()\n const [copied, setCopied] = useState(false)\n const { logEvent } = useLogEvent()\n\n useEffect(() => {\n if (copied) {\n const timeout = setTimeout(() => {\n setCopied(false)\n }, 2000)\n return () => clearTimeout(timeout)\n }\n }, [copied])\n\n const onCopy = () => {\n copy(\n community.referralsClipboardBlurb\n .replaceAll(\"{{REFERRAL_CODE}}\", currentUser.referralCode || \"\")\n .replaceAll(\"{{SIGN_UP_URL}}\", community.signUpUrl)\n .replaceAll(\"{{REFERRAL_URL}}\", community.referralUrl)\n )\n setCopied(true)\n logEvent(AhoyEventTypeEnum.ReferralCodeCopied)\n }\n\n if (!currentUser.referralCode || !features.Referrals) {\n return null\n }\n\n return (\n
\n \n \n

\n ✨ Refer a friend ✨\n

\n
{community.referralsProfileBlurb}
\n\n
\n 🔗\n
\n \n {community.referralUrl}\n \n
\n
\n\n
\n 🤑\n
\n
\n {currentUser.referralCode}\n
\n
\n \n
\n {copied && (\n
\n Copied to clipboard!\n
\n )}\n
\n
\n
\n
\n
\n )\n}\n","import { Popover, PopoverContent, PopoverTrigger } from \"~/ui/popover\"\nimport { Button, buttonVariants } from \"~/ui/button\"\nimport { Check, ChevronsUpDown, Sparkle, X } from \"lucide-react\"\nimport { Command, CommandGroup, CommandInput, CommandItem } from \"~/ui/command\"\nimport { useFormContext } from \"react-hook-form\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useEffect, useMemo, useState } from \"react\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { cn } from \"~/lib/utils\"\nimport { OnboardingFieldLabel } from \"~/ui/Onboarding\"\n\nconst COMMON_PRONOUNS = [\"She / Her\", \"He / Him\", \"They / Them\"]\n\nexport const Pronouns = ({\n displayPronouns = false,\n}: {\n displayPronouns?: boolean\n}) => {\n const currentUser = useCurrentUser()\n const [enteredPronouns, setEnteredPronouns] = useState(\"\")\n const [selectedPronouns, setSelectedPronouns] = useState(currentUser.pronouns)\n\n const { setValue, register } = useFormContext()\n\n const ccls = useCommunityClassname()\n\n const displayedPronouns = useMemo(() => {\n return [\n selectedPronouns,\n currentUser.pronouns,\n ...COMMON_PRONOUNS,\n enteredPronouns,\n ]\n .filter((pronouns) => pronouns)\n .filter(\n (pronouns, index, self) => self.indexOf(pronouns) === index\n ) as string[]\n }, [enteredPronouns, selectedPronouns, currentUser.pronouns])\n\n const [pronounsPickerOpen, setPronounsPickerOpen] = useState(false)\n useEffect(() => {\n if (!pronounsPickerOpen) {\n setEnteredPronouns(\"\")\n }\n }, [pronounsPickerOpen])\n const onSelectPronouns = (pronouns: string) => {\n setSelectedPronouns(pronouns)\n setValue(\"pronouns\", pronouns, {\n shouldDirty: currentUser.pronouns !== pronouns,\n })\n setPronounsPickerOpen(false)\n }\n\n const clearPronouns = (\n e: Pick\n ) => {\n e.preventDefault()\n e.stopPropagation()\n setSelectedPronouns(\"\")\n setEnteredPronouns(\"\")\n setValue(\"pronouns\", \"\", { shouldDirty: !!currentUser.pronouns })\n }\n\n return (\n displayPronouns && (\n \n )\n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport {\n RefObject,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\"\nimport { FormProvider, SubmitHandler, useForm } from \"react-hook-form\"\nimport toast from \"react-hot-toast\"\nimport { useLocation, useNavigate } from \"react-router-dom\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { imgixResize } from \"~/common/imgix\"\nimport {\n editCelebrationsPath,\n editExpertisePath,\n editInterestsPath,\n editProfilePath,\n signOutPath,\n} from \"~/common/paths\"\nimport { TAGS_QUERY_DOCUMENT } from \"~/common/queries\"\nimport { cn } from \"~/lib/utils\"\nimport { InstagramImg, isSocialMediaType } from \"~/common/social-media\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { USER_UPDATE_MUTATION } from \"~/common/userUpdateMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { OnboardingBioField } from \"~/components/onboarding/OnboardingBioField\"\nimport { OnboardingDetailsFields } from \"~/components/onboarding/OnboardingDetailsFields\"\nimport { OnboardingPhotoField } from \"~/components/onboarding/OnboardingPhotoField\"\nimport { Button, buttonVariants } from \"~/ui/button\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { Error } from \"~/ui/Error\"\nimport { AhoyEventTypeEnum, CommunitySlug } from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport {\n NEXT_PROMPT_KEY,\n NOTIFICATIONS_DENY_COUNT_KEY,\n} from \"~/common/Notifications\"\nimport LinkedinIcon from \"~/images/icons/social/linkedin.svg?react\"\nimport TwitterIcon from \"~/images/icons/social/x.svg?react\"\nimport {\n FieldPointer,\n OnboardingFieldLabel,\n OnboardingInterestToggle,\n} from \"~/ui/Onboarding\"\nimport ArrowLeft from \"../images/icons/arrow-left.svg?react\"\nimport SignOutLeft from \"../images/icons/sign-out-left.svg?react\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { AddCelebration, ShowCelebration } from \"~/celebrations\"\nimport { useAuthenticatedLayout } from \"~/layouts/AuthenticatedLayout\"\nimport { Link } from \"~/ui/Link\"\nimport { ReferralCode } from \"~/account-settings/ReferralCode\"\nimport { useConfig } from \"~/common/ConfigProvider\"\nimport { Pronouns } from \"~/components/onboarding/Pronouns\"\n\ninterface IFormInput {\n firstName: string | null\n lastName: string | null\n companyName: string | null\n jobTitle: string | null\n placeId: string | null\n photo: string | null\n bio: string | null\n linkedin: string | null\n twitter: string | null\n instagram: string | null\n}\n\ninterface NameMap {\n [key: string]: string\n}\n\nconst MAXIMUM_CELEBRATIONS = 3\n\nexport const EditProfileScreen = () => {\n const { qaToolsEnabled } = useConfig()\n const { logEvent } = useLogEvent()\n const { data, loading, error } = useQuery(TAGS_QUERY_DOCUMENT)\n const [runUserUpdate, { loading: updating }] =\n useSafeMutation(USER_UPDATE_MUTATION)\n\n const currentUser = useCurrentUser()\n const navigate = useNavigate()\n const location = useLocation()\n\n const createdCompletedItemRef = useRef(false)\n const editProfileRef = useRef(null)\n const celebrationsRef = useRef(null)\n const interestsRef = useRef(null)\n const expertiseRef = useRef(null)\n\n const [selectedTags, setSelectedTags] = useState({\n interests: currentUser.interests.map((tag) => tag.id),\n expertise: currentUser.expertise.map((tag) => tag.id),\n })\n\n const [imageURL, setImageURL] = useState(\n currentUser.photoUrl\n ? imgixResize(currentUser.photoUrl, {\n width: 192,\n height: 192,\n fit: \"crop\",\n })\n : null\n )\n\n const form = useForm()\n\n useEffect(\n () =>\n form.reset(\n {\n firstName: currentUser.firstName,\n lastName: currentUser.lastName,\n companyName: currentUser.companyName,\n jobTitle: currentUser.jobTitle,\n placeId: currentUser.place?.id,\n bio: currentUser.bio,\n linkedin: currentUser.linkedin,\n twitter: currentUser.twitter,\n instagram: currentUser.instagram,\n },\n { keepDirtyValues: true }\n ),\n [currentUser, form]\n )\n\n const dirtyFieldsCount = useMemo(\n () => Object.keys(form.formState.dirtyFields).length,\n [form.formState]\n )\n\n const scrollToRef = (ref: RefObject) => {\n if (ref.current)\n window.scrollTo({\n top: Math.max(0, ref.current.offsetTop - 30),\n behavior: \"smooth\",\n })\n }\n\n useEffect(() => {\n if (location.hash === \"#celebrations\") scrollToRef(celebrationsRef)\n if (location.hash === \"#interests\") scrollToRef(interestsRef)\n if (location.hash === \"#expertise\") scrollToRef(expertiseRef)\n }, [location])\n\n const onSocialBlur = (e: React.FocusEvent) => {\n if (!isSocialMediaType(e.target.name)) {\n return\n }\n\n let url = null\n try {\n url = new URL(e.target.value)\n } catch {\n console.log(\"Invalid URL\")\n }\n\n if (url) {\n form.setValue(\n e.target.name,\n url.pathname\n .split(\"/\")\n .filter((s) => s)\n .slice(-1)[0]\n )\n } else if (e.target.value && e.target.value.startsWith(\"@\")) {\n form.setValue(e.target.name, e.target.value.substr(1))\n }\n }\n\n const onSubmit: SubmitHandler = async (formData: IFormInput) => {\n const oldCompany = currentUser.companyName\n\n // Check if all required fields are filled\n const isProfileComplete =\n (formData.companyName || currentUser.companyName) &&\n (formData.jobTitle || currentUser.jobTitle) &&\n (formData.placeId || currentUser.place) &&\n (formData.photo || currentUser.photoUrl) &&\n (formData.bio || currentUser.bio) &&\n (selectedTags.interests.length > 0 || currentUser.interests.length > 0) &&\n (selectedTags.expertise.length > 0 || currentUser.expertise.length > 0)\n\n if (\n isProfileComplete &&\n !currentUser.onboardingActions?.enhanceYourProfile\n ) {\n logEvent(AhoyEventTypeEnum.NewUserChecklistItemCompleted, {\n step_name: \"Enhance Your Profile\",\n })\n }\n\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n ...formData,\n enhancedYourProfile:\n isProfileComplete &&\n !currentUser.onboardingActions?.enhanceYourProfile\n ? true\n : undefined,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n return false\n } else {\n if (oldCompany !== formData.companyName) {\n logEvent(AhoyEventTypeEnum.CompanyChanged, {\n company: formData.companyName,\n prior_company_name: oldCompany,\n })\n }\n toast.success(\"Account settings updated!\")\n form.reset()\n }\n }\n\n const toggleTag = (\n tagType: \"interests\" | \"expertise\",\n tagId: string,\n nameMap: NameMap\n ) => {\n const tags = structuredClone(selectedTags)\n const priorTags = structuredClone(tags)\n\n if (tags[tagType].includes(tagId) && tags[tagType].length > 2) {\n tags[tagType] = tags[tagType].filter((id) => id !== tagId)\n } else if (!tags[tagType].includes(tagId) && tags[tagType].length < 3) {\n tags[tagType].push(tagId)\n }\n\n const isProfileComplete =\n currentUser.companyName &&\n currentUser.jobTitle &&\n currentUser.place &&\n currentUser.photoUrl &&\n currentUser.bio &&\n currentUser.interests.length > 0 &&\n (tags.expertise.length > 0 || tags.expertise.length > 0)\n\n setSelectedTags(tags)\n\n runUserUpdate({\n variables: {\n input: {\n enhancedYourProfile: isProfileComplete ? true : undefined,\n interestIds: tags.interests,\n expertiseIds: tags.expertise,\n },\n },\n }).then(() => {\n if (\n isProfileComplete &&\n !currentUser.onboardingActions?.enhanceYourProfile &&\n !createdCompletedItemRef.current\n ) {\n logEvent(AhoyEventTypeEnum.NewUserChecklistItemCompleted, {\n step_name: \"Enhance Your Profile\",\n })\n createdCompletedItemRef.current = true\n }\n // Detect if priorTags.interests and tags.interests are different\n const sortedInterestTags = (tags.interests || []).slice().sort()\n const sortedPriorInterestTags = (priorTags.interests || []).slice().sort()\n const interestsChanged = !(\n sortedPriorInterestTags.every((v, i) => v === sortedInterestTags[i]) &&\n sortedInterestTags.length === sortedPriorInterestTags.length\n )\n\n // Detect if priorTags.expertise and tags.expertise are different\n const sortedExpertiseTags = (tags.expertise || []).slice().sort()\n const sortedPriorExpertiseTags = (priorTags.expertise || [])\n .slice()\n .sort()\n const expertiseChanged = !(\n sortedPriorExpertiseTags.every(\n (v, i) => v === sortedExpertiseTags[i]\n ) && sortedExpertiseTags.length === sortedPriorExpertiseTags.length\n )\n\n if (interestsChanged) {\n logEvent(AhoyEventTypeEnum.InterestsChanged, {\n prior_interests: (priorTags.interests || [])\n .map((tag) => nameMap[tag])\n .join(\", \"),\n interests: (tags.interests || [])\n .map((tag) => nameMap[tag])\n .join(\", \"),\n })\n }\n\n if (expertiseChanged) {\n logEvent(AhoyEventTypeEnum.ExpertiseChanged, {\n prior_expertise: (priorTags.expertise || [])\n .map((tag) => nameMap[tag])\n .join(\", \"),\n expertise: (tags.expertise || [])\n .map((tag) => nameMap[tag])\n .join(\", \"),\n })\n }\n })\n }\n\n const TagSection = forwardRef(\n (\n {\n tagType,\n title,\n }: {\n tagType: \"interests\" | \"expertise\"\n title: string\n },\n ref: React.ForwardedRef\n ) => {\n const nameMap =\n error || !data\n ? {}\n : data.tags.nodes.reduce((acc, node) => {\n acc[node.id] = node.name\n return acc\n }, {} as NameMap)\n\n return (\n \n \n \n \n {title}\n \n \n
\n Choose between 2-3 areas\n
\n
\n \n {!loading &&\n (error || !data ? (\n \n ) : (\n
\n
\n {data.tags.nodes.map((tag) => (\n {\n toggleTag(tagType, tag.id, nameMap)\n }}\n >\n {tag.name}\n \n ))}\n
\n
\n ))}\n
\n \n )\n }\n )\n\n const ccls = useCommunityClassname()\n\n const { setLeftSidebar, resetLeftSidebar } = useAuthenticatedLayout()\n\n useEffect(() => {\n setLeftSidebar()\n\n return () => {\n resetLeftSidebar()\n }\n }, [location, setLeftSidebar, resetLeftSidebar])\n\n return (\n
\n
\n
\n navigate(-1)}\n >\n Back\n
\n
\n \n \n Profile Details\n \n \n \n \n
\n \n
\n
Account Details
\n \n
\n \n Bio\n \n \n
\n \n \n Social Media\n \n
\n \n \n \n \n\n \n \n Save Changes\n \n \n \n \n \n \n \n \n What are you celebrating?\n \n \n
\n {currentUser.celebrations.length < MAXIMUM_CELEBRATIONS && (\n \n )}\n {currentUser.celebrations.length > 0 && (\n <>\n
\n Celebrations\n
\n
\n {currentUser.celebrations.map((celebration) => (\n \n ))}\n
\n \n )}\n
\n
\n
\n \n \n {dirtyFieldsCount !== 0 && (\n \n \n Save Changes\n \n \n )}\n\n navigate(-1)}\n >\n Go Back\n \n\n \n Sign Out\n \n\n {qaToolsEnabled && (\n
\n
QA tools
\n {\n localStorage.removeItem(NEXT_PROMPT_KEY)\n localStorage.removeItem(NOTIFICATIONS_DENY_COUNT_KEY)\n alert(\"cleared - refresh the page\")\n }}\n >\n Clear Notification Vars\n \n {\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n placeId: null,\n companyName: null,\n photo: null,\n bio: null,\n enhancedYourProfile: false,\n interestIds: [],\n expertiseIds: [],\n },\n },\n })\n\n if (errors) {\n alert(\"Error resetting enhanced profile state\")\n } else {\n toast.success(\n \"Enhanced profile state reset! Refresh the page.\"\n )\n }\n }}\n >\n Reset enhanced profile state\n \n
\n )}\n \n \n )\n}\n\nexport const EditProfileNavigation = () => {\n const community = useCommunity()\n\n return (\n
\n \n Profile Details\n \n \n Celebrations\n \n \n Interests\n \n \n Expertise\n \n \n Contact Us\n \n \n
\n )\n}\n","import { gql } from \"~/__generated__\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { ComposerOnSave } from \"../post-composer/PostComposer\"\nimport { displayErrors } from \"~/common/validations\"\nimport invariant from \"tiny-invariant\"\nimport toast from \"react-hot-toast\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { AhoyEventTypeEnum } from \"~/__generated__/graphql\"\n\nexport const useCreateMessage = ({\n roomId,\n onSuccess,\n otherUserId,\n}: {\n roomId?: string | null\n onSuccess: () => void\n otherUserId: string | undefined\n}) => {\n const [runPostCreate, postCreateResult] = useSafeMutation(\n MESSAGE_CREATE_MUTATION\n )\n\n const { logEvent } = useLogEvent()\n\n const createReply: ComposerOnSave = async ({\n content,\n channelId,\n tagId,\n attachmentIds,\n videoUrl,\n }) => {\n if (!roomId) {\n invariant(\"room id required\")\n }\n\n const { data, errors } = await runPostCreate({\n variables: {\n input: {\n content,\n channelId,\n tagId,\n attachmentIds,\n roomId,\n videoUrl,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n return false\n } else {\n toast.success(\"Created message\")\n invariant(data?.postCreate.post.id)\n\n if (otherUserId) {\n logEvent(AhoyEventTypeEnum.DirectMessageSent, {\n room_id: roomId,\n room_type: data?.postCreate.post.room?.roomType || \"unknown\",\n user_id_messaged: otherUserId,\n })\n } else {\n logEvent(AhoyEventTypeEnum.DirectMessageSent, {\n room_id: roomId,\n room_type: data?.postCreate.post.room?.roomType || \"unknown\",\n user_ids: data?.postCreate.post.room?.users\n .map((u) => u.id)\n .join(\",\"),\n })\n }\n\n onSuccess()\n return true\n }\n }\n\n return { createReply, replayIsSaving: postCreateResult.loading }\n}\n\nconst MESSAGE_CREATE_MUTATION = gql(`\n mutation MessageCreate($input: PostCreateInput!) {\n postCreate(input: $input) {\n post {\n id\n room {\n roomType\n users {\n id\n }\n }\n }\n }\n }\n`)\n","import { ReactNode } from \"react\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { cn } from \"~/lib/utils\"\n\nexport const MessageSectionHeader = ({\n className,\n children,\n}: {\n className?: string\n children: ReactNode\n}) => {\n const ccls = useCommunityClassname()\n return (\n \n {children}\n \n )\n}\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { Button } from \"~/ui/button\"\nimport { gql } from \"~/__generated__\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { messagesPath } from \"~/common/paths\"\n\nexport const LeaveRoomModal = ({\n isOpen,\n setIsOpen,\n roomId,\n}: {\n isOpen: boolean\n setIsOpen: (open: boolean) => void\n roomId: string\n}) => {\n const [runMutation, mutationResult] = useSafeMutation(ROOM_LEAVE_MUTATION)\n\n const leaveRoom = async () => {\n const { errors } = await runMutation({\n variables: { input: { roomId } },\n })\n\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n setIsOpen(false)\n window.location.href = messagesPath.pattern\n }\n }\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n
Leave Room
\n
Would you like to leave this room?
\n\n
\n setIsOpen(false)}\n variant=\"outline\"\n >\n Cancel\n \n \n Leave\n \n
\n
\n \n )\n}\n\nconst ROOM_LEAVE_MUTATION = gql(`\n mutation RoomLeave($input: RoomLeaveInput!) {\n roomLeave(input: $input) {\n success\n }\n }\n`)\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { Button } from \"~/ui/button\"\nimport { useLazyQuery } from \"@apollo/client\"\nimport AsyncSelect from \"react-select/async\"\nimport { useCallback, useEffect } from \"react\"\nimport { MENTION_USER_QUERY_DOCUMENT } from \"~/post-composer/useMentionDataSource\"\nimport { useDebouncedCallback } from \"use-debounce\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { z } from \"zod\"\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { UserPill } from \"~/ui/UserPill\"\nimport { gql } from \"~/__generated__\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate } from \"react-router-dom\"\nimport { roomPath } from \"~/common/paths\"\nimport invariant from \"tiny-invariant\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { AhoyEventTypeEnum, UserRoleEnum } from \"~/__generated__/graphql\"\n\nexport const MAX_GROUP_MEMBERS = 20\nconst MAX_INVITABLE = MAX_GROUP_MEMBERS - 1\n\ntype UserOption = {\n value: string\n label: string\n data: {\n id: string\n name: string\n firstName: string\n lastName: string\n photoUrl?: string\n role: UserRoleEnum\n }\n}\n\nconst formSchema = z.object({\n name: z.string(),\n selectedUsers: z\n .array(\n z.object({\n id: z.string(),\n name: z.string(),\n firstName: z.string(),\n lastName: z.string(),\n photoUrl: z.string().optional(),\n role: z.nativeEnum(UserRoleEnum),\n })\n )\n .min(1, { message: \"Please select at least 1 person\" })\n .max(MAX_INVITABLE, {\n message: `You may only invite a max of ${MAX_INVITABLE} people`,\n }),\n})\n\nexport type FormValues = z.infer\n\nexport const StartRoomModal = ({\n isOpen,\n setIsOpen,\n onSuccess,\n}: {\n isOpen: boolean\n setIsOpen: (value: boolean) => void\n onSuccess: () => void\n}) => {\n const { logEvent } = useLogEvent()\n\n const form = useForm>({\n resolver: zodResolver(formSchema),\n defaultValues: {\n name: \"\",\n selectedUsers: [],\n },\n })\n const navigate = useNavigate()\n\n const [getCollaboratorSearch] = useLazyQuery(MENTION_USER_QUERY_DOCUMENT, {\n variables: { excludeSelf: true },\n })\n\n const [runMutation, mutationResult] = useSafeMutation(ROOM_CREATE_MUTATION)\n\n const onSubmit = async (values: FormValues) => {\n const { data, errors } = await runMutation({\n variables: {\n input: {\n name: values.name,\n userIds: values.selectedUsers.map((u) => u.id),\n },\n },\n })\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n invariant(data)\n toast.success(\"Group created\")\n setIsOpen(false)\n logEvent(AhoyEventTypeEnum.DirectMessageInitiated, {\n user_ids: data.roomCreate.room.users.map(({ id }) => id).join(\",\"),\n room_id: data.roomCreate.room.id,\n room_type: data.roomCreate.room.roomType,\n })\n navigate(roomPath({ roomId: data.roomCreate.room.id }))\n onSuccess()\n }\n }\n\n useEffect(() => {\n if (isOpen === false) form.reset()\n }, [isOpen, form])\n\n const _loadOptions = useCallback(\n (query: string, callback: (options: UserOption[]) => void) => {\n getCollaboratorSearch({\n variables: { query },\n }).then(({ data }) => {\n if (!data) {\n callback([])\n } else {\n callback(\n data.users.nodes.map((u) => ({\n value: u.id,\n label: u.name || \"\",\n data: {\n id: u.id,\n name: u.name || \"\",\n firstName: u.firstName || \"\",\n lastName: u.lastName || \"\",\n photoUrl: u.photoUrl || undefined,\n role: u.role || UserRoleEnum.Member,\n },\n }))\n )\n }\n })\n },\n [getCollaboratorSearch]\n )\n const loadOptions = useDebouncedCallback(_loadOptions, 400)\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n
\n Create a Group\n
\n\n
\n \n
\n (\n \n \n Search members\n \n \n {\n if (selection?.value) {\n form.setValue(\"selectedUsers\", [\n selection.data,\n ...form.getValues()[\"selectedUsers\"],\n ])\n }\n }}\n styles={{\n control: (baseStyles) => ({\n ...baseStyles,\n outline: \"none !important\",\n boxShadow: \"none\",\n paddingTop: \"0.25rem\",\n paddingBottom: \"0.25rem\",\n paddingLeft: \"0.5rem\",\n paddingRight: \"0.5rem\",\n fontSize: 16,\n borderRadius: 8,\n }),\n }}\n />\n \n \n \n )}\n />\n\n
\n {form.watch(\"selectedUsers\").map((user) => (\n {\n form.setValue(\n \"selectedUsers\",\n form\n .getValues(\"selectedUsers\")\n .filter((item) => item.id !== user.id)\n )\n }}\n />\n ))}\n
\n\n (\n \n \n Group name (optional)\n \n \n \n \n \n \n )}\n />\n
\n\n
\n\n
\n setIsOpen(false)}\n >\n Cancel\n \n \n Create Group\n \n
\n \n \n \n \n )\n}\n\nconst ROOM_CREATE_MUTATION = gql(`\n mutation RoomCreateModal($input: RoomCreateInput!) {\n roomCreate(input: $input) {\n room {\n id\n roomType\n users {\n id\n }\n }\n }\n }\n`)\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { Button } from \"~/ui/button\"\nimport { useLazyQuery } from \"@apollo/client\"\nimport AsyncSelect from \"react-select/async\"\nimport { useCallback, useEffect } from \"react\"\nimport { MENTION_USER_QUERY_DOCUMENT } from \"~/post-composer/useMentionDataSource\"\nimport { useDebouncedCallback } from \"use-debounce\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { z } from \"zod\"\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { UserPill } from \"~/ui/UserPill\"\nimport { gql } from \"~/__generated__\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport toast from \"react-hot-toast\"\nimport invariant from \"tiny-invariant\"\nimport { User_AvatarFragment, UserRoleEnum } from \"~/__generated__/graphql\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"~/ui/tooltip\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { MAX_GROUP_MEMBERS } from \"./StartRoomModal\"\nimport { UserName } from \"~/directory/UserName\"\n\ntype UserOption = {\n value: string\n label: string\n data: {\n id: string\n name: string\n firstName: string\n lastName: string\n photoUrl?: string\n role: UserRoleEnum\n }\n}\n\nconst formSchema = z.object({\n canSeeFullHistory: z.boolean(),\n selectedUsers: z\n .array(\n z.object({\n id: z.string(),\n name: z.string(),\n firstName: z.string(),\n lastName: z.string(),\n photoUrl: z.string().optional(),\n role: z.nativeEnum(UserRoleEnum),\n })\n )\n .min(1, { message: \"Select at least 1 person to add\" }),\n})\n\nexport type FormValues = z.infer\n\nexport const AddMembersModal = ({\n isOpen,\n setIsOpen,\n roomId,\n currentMembers,\n}: {\n isOpen: boolean\n setIsOpen: (value: boolean) => void\n roomId: string\n currentMembers: User_AvatarFragment[]\n}) => {\n const form = useForm>({\n resolver: zodResolver(formSchema),\n defaultValues: {\n canSeeFullHistory: true,\n selectedUsers: [],\n },\n })\n\n const [getCollaboratorSearch] = useLazyQuery(MENTION_USER_QUERY_DOCUMENT, {\n variables: { excludeSelf: true },\n })\n\n const [runMutation, mutationResult] = useSafeMutation(\n ROOM_ADD_MEMBERS_MUTATION\n )\n\n const onSubmit = async (values: FormValues) => {\n const { data, errors } = await runMutation({\n variables: {\n input: {\n roomId,\n canSeeFullHistory: values.canSeeFullHistory,\n userIds: values.selectedUsers.map((u) => u.id),\n },\n },\n })\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n invariant(data)\n toast.success(\"Added members\")\n setIsOpen(false)\n }\n }\n\n useEffect(() => {\n if (isOpen === false) form.reset()\n }, [isOpen, form])\n\n const _loadOptions = useCallback(\n (query: string, callback: (options: UserOption[]) => void) => {\n getCollaboratorSearch({\n variables: { query },\n }).then(({ data }) => {\n if (!data) {\n callback([])\n } else {\n callback(\n data.users.nodes\n .map((u) => ({\n value: u.id,\n label: u.name || \"\",\n data: {\n id: u.id,\n name: u.name || \"\",\n firstName: u.firstName || \"\",\n lastName: u.lastName || \"\",\n photoUrl: u.photoUrl || undefined,\n role: u.role,\n },\n }))\n .filter((u) => !currentMembers.find((cm) => cm.id === u.value))\n )\n }\n })\n },\n [getCollaboratorSearch, currentMembers]\n )\n const loadOptions = useDebouncedCallback(_loadOptions, 400)\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n
\n Manage Members\n
\n\n
\n
Current Members
\n
\n {currentMembers.map((user) => (\n \n \n \n
\n \n
\n
\n \n \n \n
\n
\n ))}\n
\n
\n\n
\n \n
\n (\n \n \n Add members\n \n \n {\n if (selection?.value) {\n if (\n form.watch(\"selectedUsers\").length +\n currentMembers.length >=\n MAX_GROUP_MEMBERS\n ) {\n toast.error(\n `Groups may only have up to ${MAX_GROUP_MEMBERS} members`\n )\n return\n }\n form.setValue(\"selectedUsers\", [\n selection.data,\n ...form.getValues()[\"selectedUsers\"],\n ])\n }\n }}\n styles={{\n control: (baseStyles) => ({\n ...baseStyles,\n outline: \"none !important\",\n boxShadow: \"none\",\n paddingTop: \"0.25rem\",\n paddingBottom: \"0.25rem\",\n paddingLeft: \"0.5rem\",\n paddingRight: \"0.5rem\",\n fontSize: 16,\n borderRadius: 8,\n }),\n }}\n />\n \n \n \n )}\n />\n\n {form.watch(\"selectedUsers\").length > 0 && (\n
\n {form.watch(\"selectedUsers\").map((user) => (\n {\n form.setValue(\n \"selectedUsers\",\n form\n .getValues(\"selectedUsers\")\n .filter((item) => item.id !== user.id)\n )\n }}\n />\n ))}\n
\n )}\n\n (\n \n \n field.onChange(e.target.checked)}\n />\n \n \n Allow new members to see full group message history?\n \n \n \n )}\n />\n
\n\n
\n\n
\n setIsOpen(false)}\n >\n Cancel\n \n \n Add Members\n \n
\n \n \n \n \n )\n}\n\nconst ROOM_ADD_MEMBERS_MUTATION = gql(`\n mutation RoomAddMembersModal($input: RoomAddMembersInput!) {\n roomAddMembers(input: $input) {\n room {\n id\n ...Room_MessageList\n users {\n ...User_Avatar\n name\n }\n }\n }\n }\n`)\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { Button } from \"~/ui/button\"\nimport { useEffect } from \"react\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"~/ui/form\"\nimport { z } from \"zod\"\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { gql } from \"~/__generated__\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport invariant from \"tiny-invariant\"\n\nconst formSchema = z.object({\n name: z.string().min(1, {\n message: \"Please enter a group name\",\n }),\n})\n\nexport type FormValues = z.infer\n\nexport const RenameRoomModal = ({\n isOpen,\n setIsOpen,\n roomId,\n existingName,\n}: {\n isOpen: boolean\n setIsOpen: (value: boolean) => void\n roomId: string\n existingName?: string | null\n}) => {\n const form = useForm>({\n resolver: zodResolver(formSchema),\n defaultValues: {\n name: \"\",\n },\n })\n\n const [runMutation, mutationResult] = useSafeMutation(ROOM_UPDATE_MUTATION)\n\n const onSubmit = async (values: FormValues) => {\n const { data, errors } = await runMutation({\n variables: {\n input: {\n name: values.name,\n roomId,\n },\n },\n })\n if (errors) {\n displayErrors(errors)\n console.log(errors)\n } else {\n invariant(data)\n setIsOpen(false)\n }\n }\n\n useEffect(() => {\n if (isOpen === true) return\n form.reset()\n form.setValue(\"name\", existingName || \"\")\n }, [isOpen, form, existingName])\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n
\n Create a Group\n
\n\n
\n \n
\n (\n \n \n Group name\n \n \n \n \n \n \n )}\n />\n
\n\n
\n\n
\n setIsOpen(false)}\n >\n Cancel\n \n \n Save\n \n
\n \n \n \n \n )\n}\n\nconst ROOM_UPDATE_MUTATION = gql(`\n mutation RoomNameUpdateModal($input: RoomUpdateInput!) {\n roomUpdate(input: $input) {\n room {\n id\n name\n }\n }\n }\n`)\n","import { Room, User } from \"~/__generated__/graphql\"\nimport { UserName } from \"~/directory/UserName\"\n\ninterface RoomNameInterface extends Pick {\n dmOtherUser?: Pick<\n User,\n \"id\" | \"firstName\" | \"lastName\" | \"name\" | \"admin\" | \"coach\"\n > | null\n}\n\nexport const roomDisplayName = (room: RoomNameInterface) => {\n if (room.dmOtherUser) {\n return \n } else if (room.name && room.name.length > 0) {\n return room.name\n } else {\n return room.defaultName\n }\n}\n","import { QueryResult } from \"@apollo/client\"\nimport { RoomQueryQuery } from \"~/__generated__/graphql\"\nimport { MessageSectionHeader } from \"./MessageSectionHeader\"\nimport { Menu, MoreHorizontal } from \"lucide-react\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"~/ui/tooltip\"\nimport { useUserDialogContext } from \"~/directory/UserDialogContext\"\nimport { LeaveRoomModal } from \"./LeaveRoomModal\"\nimport { useState } from \"react\"\nimport { StyledDropdown, StyledDropdownItem } from \"~/ui/StyledDropdown\"\nimport { AddMembersModal } from \"./AddMembersModal\"\nimport { RenameRoomModal } from \"./RenameRoomModal\"\nimport { roomDisplayName } from \"./utils\"\nimport { UserName } from \"~/directory/UserName\"\n\nexport const MessagesPaneHeader = ({\n roomResult,\n setMobileConversationsOpen,\n}: {\n roomResult: QueryResult\n setMobileConversationsOpen: (open: boolean) => void\n}) => {\n const { data } = roomResult\n const otherUser = data?.room.dmOtherUser\n const room = data?.room\n const isRoom = !otherUser\n const { openUserDialog } = useUserDialogContext()\n\n const [leaveRoomModalOpen, setLeaveRoomModalOpen] = useState(false)\n const [addMembersModalOpen, setAddMembersModalOpen] = useState(false)\n const [renameRoomModalOpen, setRenameRoomModalOpen] = useState(false)\n\n if (!data) return null\n\n return (\n <>\n \n setMobileConversationsOpen(true)}\n className=\"mr-4 xl:hidden cursor-pointer\"\n >\n \n
\n {otherUser ? (\n
\n \n
\n \n
\n
\n ) : (\n
\n
{roomDisplayName(data.room)}
\n
\n )}\n {isRoom && (\n \n \n
\n }\n >\n setAddMembersModalOpen(true)}\n />\n {room?.currentUserCanUpdate.value && (\n setRenameRoomModalOpen(true)}\n />\n )}\n setLeaveRoomModalOpen(true)}\n />\n \n )}\n \n {isRoom && (\n
\n {data.room.users.map((user) => (\n \n \n \n openUserDialog(user.id)}\n >\n \n
\n \n \n \n \n \n \n ))}\n
\n )}\n {room && (\n <>\n \n \n \n \n )}\n \n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { gql } from \"~/__generated__\"\nimport { useEffect, useRef } from \"react\"\nimport { AhoyEventTypeEnum } from \"~/__generated__/graphql\"\nimport { PostComposer } from \"~/post-composer/PostComposer\"\nimport { MessagesSectionInner } from \"./MessagesSectionInner\"\nimport { useCreateMessage } from \"./useCreateMessage\"\nimport { RefObject } from \"react\"\nimport { Error } from \"~/ui/Error\"\nimport { MessagesPaneHeader } from \"./MessagesPaneHeader\"\nimport { useSearchParams } from \"react-router-dom\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport SmsNotification from \"../images/icons/sms-notification.svg?react\"\nimport { Button } from \"~/ui/button\"\nimport { Lock, Menu } from \"lucide-react\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { useSubscription } from \"~/subscriptions/SubscriptionProvider\"\nimport { useMessagesContext } from \"~/screens/MessagesScreen\"\n\nexport const MessagesPane = ({\n roomId,\n dmOtherUserId,\n scrollviewRef,\n}: {\n roomId?: string\n dmOtherUserId?: string\n scrollviewRef: RefObject\n}) => {\n const { openSubscriptionWizard } = useSubscription()\n const roomResult = useQuery(ROOM_QUERY_DOCUMENT, {\n variables: {\n dmOtherUserId,\n roomId,\n },\n })\n const { setMobileConversationsOpen, initiateDirectMessage } =\n useMessagesContext()\n const createMessageBag = useCreateMessage({\n roomId: roomResult.data?.room.id,\n otherUserId: dmOtherUserId,\n onSuccess: () => {},\n })\n\n const { logEvent } = useLogEvent()\n const [searchParams, setSearchParams] = useSearchParams()\n const hasLoggedEvent = useRef(false)\n\n useEffect(() => {\n if (searchParams.get(\"ref\") === \"introduction_mail\") {\n logEvent(\n AhoyEventTypeEnum.IntroductionDmInitiated,\n { introduction_partner_id: dmOtherUserId },\n hasLoggedEvent\n )\n searchParams.set(\"ref\", \"\")\n setSearchParams(searchParams)\n }\n }, [searchParams, setSearchParams, logEvent, dmOtherUserId])\n\n useEffect(() => {\n if (\n roomResult.error?.graphQLErrors.some(\n (e) => e.extensions?.rule === \"initiate_dms?\"\n )\n ) {\n openSubscriptionWizard(\"PricingTableStep\", {\n source: \"InitiateDirectMessage\",\n requiredFeature: \"canInitiateDms\",\n })\n }\n }, [roomResult.error, openSubscriptionWizard])\n\n if (roomResult.loading) {\n return null\n }\n\n if (roomResult.error) {\n if (\n roomResult.error.graphQLErrors.some(\n (e) => e.extensions?.rule === \"initiate_dms?\"\n )\n ) {\n return (\n \n )\n } else {\n return \n }\n }\n\n if (!roomResult.data) {\n return null\n }\n\n return (\n <>\n \n \n \n \n
\n \n
\n \n )\n}\n\nconst NoMessages = ({\n setMobileConversationsOpen,\n initiateDirectMessage,\n}: {\n setMobileConversationsOpen: (open: boolean) => void\n initiateDirectMessage: () => void\n}) => {\n const community = useCommunity()\n const currentUser = useCurrentUser()\n\n return (\n
\n setMobileConversationsOpen(true)}\n className=\"mr-4 xl:hidden cursor-pointer top-6 left-6 absolute\"\n >\n \n
\n\n
\n \n
\n
Your Messages
\n
\n Start a private conversation with a {community.name} member!\n
\n \n Compose Message\n {currentUser.permissions.canInitiateDms ? null : (\n \n )}\n \n \n )\n}\n\nconst ROOM_QUERY_DOCUMENT = gql(`\n query RoomQuery($roomId: ID, $dmOtherUserId: ID) {\n room(roomId: $roomId, dmOtherUserId: $dmOtherUserId) {\n id\n hasUnreadPosts\n name\n defaultName\n currentUserCanUpdate {\n value\n }\n users {\n ...User_Avatar\n name\n }\n dmOtherUser {\n ...User_Avatar\n name\n }\n }\n }\n`)\n","import * as React from \"react\";\nconst SvgMessageCompose = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { id: \"Frame\", clipPath: \"url(#clip0_761_4062)\" }, /* @__PURE__ */ React.createElement(\"g\", { id: \"All-Icons\" }, /* @__PURE__ */ React.createElement(\"g\", { id: \"Desktop\" }, /* @__PURE__ */ React.createElement(\"g\", { id: \"edit\" }, /* @__PURE__ */ React.createElement(\"path\", { id: \"Path\", d: \"M13.8184 9.93461V13.8182C13.8184 14.6216 13.1672 15.2728 12.3639 15.2728H2.18208C1.37876 15.2728 0.727539 14.6216 0.727539 13.8182V3.63643C0.727539 2.83311 1.37876 2.18188 2.18208 2.18188H6.06572\", stroke: \"black\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { id: \"Path_2\", fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M12.3635 0.727295L15.2726 3.63639L7.99991 10.9091H5.09082V8.00002L12.3635 0.727295Z\", stroke: \"black\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))))), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_761_4062\" }, /* @__PURE__ */ React.createElement(\"rect\", { width: 16, height: 16, fill: \"white\" }))));\nexport default SvgMessageCompose;\n","import { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport MessageCompose from \"~/images/icons/message-compose.svg?react\"\nimport { MessageSectionHeader } from \"./MessageSectionHeader\"\nimport {\n CommunitySlug,\n Room_MessageListFragment,\n} from \"~/__generated__/graphql\"\nimport { Error } from \"~/ui/Error\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\nimport { postDateDisplay } from \"~/feed/postDateDisplay\"\nimport { cn } from \"~/lib/utils\"\nimport { Link, useParams } from \"react-router-dom\"\nimport { dmPath, roomPath } from \"~/common/paths\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { ArrowLeft, Lock } from \"lucide-react\"\nimport { StyledDropdown, StyledDropdownItem } from \"~/ui/StyledDropdown\"\nimport { roomDisplayName } from \"./utils\"\nimport { useMessagesContext } from \"~/screens/MessagesScreen\"\nimport { SearchInput } from \"~/ui/SearchInput\"\nimport { Translation } from \"~/common/Translation\"\nimport { Muted } from \"~/ui/typography\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\n\nexport const RoomsPane = () => {\n const ccls = useCommunityClassname()\n const currentUser = useCurrentUser()\n const {\n searchQuery,\n setSearchQuery,\n roomsResult,\n orderedRooms,\n setMobileConversationsOpen,\n initiateDirectMessage,\n initiateNewRoom,\n } = useMessagesContext()\n const totalCount = roomsResult?.data?.myRooms.totalCount\n\n return (\n
\n \n
\n
{currentUser.name}
\n\n }>\n \n )\n }\n />\n \n )\n }\n />\n \n \n\n
\n \n {searchQuery && totalCount !== undefined && (\n
\n \n 0 ? \"matchedCount\" : \"matchedCount_zero\"}\n values={{ count: totalCount }}\n />\n \n
\n )}\n
\n\n
\n {roomsResult && (\n <>\n {roomsResult.error ? (\n \n ) : roomsResult.loading && orderedRooms?.length === 0 ? (\n \n ) : roomsResult.data ? (\n
\n {orderedRooms && orderedRooms.length > 0 && (\n <>\n {orderedRooms.map((room) => (\n \n ))}\n \n roomsResult.fetchMore({\n variables: {\n roomsCursor:\n roomsResult.data?.myRooms.pageInfo.endCursor,\n },\n })\n }\n canLoadMore={\n !roomsResult.loading &&\n roomsResult.data.myRooms.pageInfo.hasNextPage\n }\n loadingText=\"Loading posts...\"\n loading={roomsResult.loading && orderedRooms.length > 0}\n />\n \n )}\n
\n ) : null}\n \n )}\n
\n \n )\n}\n\nconst RoomEntry = ({\n room,\n setMobileConversationsOpen,\n}: {\n room: Room_MessageListFragment\n\n setMobileConversationsOpen: (open: boolean) => void\n}) => {\n const currentUser = useCurrentUser()\n const otherUser = room.dmOtherUser\n const latestPost = room.latestPost\n\n const { otherUserId, roomId } = useParams()\n const isSelected =\n (otherUserId && otherUserId === otherUser?.id) ||\n (roomId && room.id === roomId)\n\n const path = otherUser?.id\n ? dmPath({ otherUserId: otherUser.id })\n : roomPath({ roomId: room.id })\n\n const ccls = useCommunityClassname()\n\n return (\n {\n setMobileConversationsOpen(false)\n }}\n className={cn(\"flex items-center gap-2 tracking-wide rounded-lg p-4\", {\n \"bg-black/5\": isSelected,\n \"bg-card-highlight-background\": room.hasUnreadPosts,\n })}\n >\n \n
\n
{roomDisplayName(room)}
\n {latestPost && (\n <>\n
\n \n {latestPost.user.id === currentUser.id\n ? \"You replied\"\n : \"Sent a message\"}\n {\" \"}\n ·{\" \"}\n \n {postDateDisplay(latestPost.createdAt)}\n \n
\n {latestPost.content}\n \n )}\n
\n\n
\n \n
\n \n )\n}\n","import { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { Button } from \"~/ui/button\"\nimport { useLazyQuery } from \"@apollo/client\"\nimport AsyncSelect from \"react-select/async\"\nimport { useCallback } from \"react\"\nimport { MENTION_USER_QUERY_DOCUMENT } from \"~/post-composer/useMentionDataSource\"\nimport { useDebouncedCallback } from \"use-debounce\"\nimport { useNavigate } from \"react-router-dom\"\nimport { dmPath } from \"~/common/paths\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { useCommunity } from \"~/community/useCommunity\"\n\ntype UserOption = {\n value: string\n label: string\n}\n\nexport const StartDmModal = ({\n isOpen,\n setIsOpen,\n}: {\n isOpen: boolean\n setIsOpen: (value: boolean) => void\n}) => {\n const navigate = useNavigate()\n const [getCollaboratorSearch] = useLazyQuery(MENTION_USER_QUERY_DOCUMENT, {\n variables: { excludeSelf: true },\n })\n const community = useCommunity()\n\n const _loadOptions = useCallback(\n (query: string, callback: (options: UserOption[]) => void) => {\n getCollaboratorSearch({\n variables: { query },\n }).then(({ data }) => {\n if (!data) {\n callback([])\n } else {\n callback(\n data.users.nodes.map((u) => ({\n value: u.id,\n label: u.name || \"\",\n }))\n )\n }\n })\n },\n [getCollaboratorSearch]\n )\n const loadOptions = useDebouncedCallback(_loadOptions, 400)\n\n return (\n {\n setIsOpen(value)\n }}\n >\n \n
\n Compose New Message\n
\n\n
\n
\n {\n if (selection?.value) {\n setIsOpen(false)\n navigate(dmPath({ otherUserId: selection.value }))\n }\n }}\n styles={{\n control: (baseStyles) => ({\n ...baseStyles,\n outline: \"none !important\",\n boxShadow: \"none\",\n paddingTop: 8,\n paddingBottom: 8,\n paddingLeft: 12,\n fontSize: 16,\n borderRadius: 8,\n borderColor:\n community.slug === CommunitySlug.Gotomillions\n ? \"var(--primary)\"\n : \"var(--borderColor)\",\n }),\n }}\n />\n
\n\n
\n\n
\n setIsOpen(false)}\n >\n Cancel\n \n
\n
\n \n \n )\n}\n","import { QueryResult, useQuery } from \"@apollo/client\"\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\"\nimport { useLocation, useNavigate, useParams } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport { MessagesPane } from \"~/chat/MessagesPane\"\nimport { RoomsPane } from \"~/chat/RoomsPane\"\nimport { StartDmModal } from \"~/chat/StartDmModal\"\nimport { useMessagesSubscription } from \"~/chat/useMessagesSubscription\"\nimport { Card } from \"~/ui/card\"\nimport SmsNotification from \"../images/icons/sms-notification.svg?react\"\nimport { Button } from \"~/ui/button\"\nimport { cn } from \"~/lib/utils\"\nimport { Lock, Menu } from \"lucide-react\"\nimport { dmPath, messagesPath, roomPath } from \"~/common/paths\"\nimport { parseISO } from \"date-fns\"\nimport { StartRoomModal } from \"~/chat/StartRoomModal\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useSubscription } from \"~/subscriptions/SubscriptionProvider\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport {\n AhoyEventTypeEnum,\n CommunitySlug,\n MyRoomsQuery,\n Room_MessageListFragment,\n} from \"~/__generated__/graphql\"\nimport invariant from \"tiny-invariant\"\nimport { useDebounce } from \"use-debounce\"\n\nconst ROOMS_PER_PAGE = 20\n\nconst MessagesContext = createContext<{\n searchQuery: string\n setSearchQuery: (query: string) => void\n roomsResult?: QueryResult\n orderedRooms?: Room_MessageListFragment[]\n initiateDirectMessage: () => void\n initiateNewRoom: () => void\n setMobileConversationsOpen: (open: boolean) => void\n} | null>(null)\n\nexport const useMessagesContext = () => {\n const context = useContext(MessagesContext)\n invariant(\n context,\n \"useMessagesContext must be used within a MessagesProvider\"\n )\n return context\n}\n\nexport const MessagesScreen = () => {\n const ccls = useCommunityClassname()\n const [startDmModalOpen, setStartDmModalOpen] = useState(false)\n const [startRoomModalOpen, setStartRoomModalOpen] = useState(false)\n const { otherUserId, roomId } = useParams()\n const currentUser = useCurrentUser()\n const { openSubscriptionWizard } = useSubscription()\n const messagesScrollViewRef = useRef(null)\n const location = useLocation()\n const { logEvent } = useLogEvent()\n const [searchQuery, setSearchQuery] = useState(\"\")\n const [debouncedSearchQuery] = useDebounce(searchQuery, 400)\n const roomsResult = useQuery(MY_ROOMS_QUERY_DOCUMENT, {\n variables: {\n first: ROOMS_PER_PAGE,\n query: debouncedSearchQuery,\n },\n })\n const rooms = useMemo(\n () => roomsResult.data?.myRooms.edges.map((e) => e.node) || [],\n [roomsResult.data]\n )\n const orderedRooms = useMemo(\n () =>\n rooms.slice().sort((a, b) => {\n const aDate = parseISO(a.latestPost?.createdAt || a.createdAt)\n const bDate = parseISO(b.latestPost?.createdAt || b.createdAt)\n return bDate.getTime() - aDate.getTime()\n }),\n [rooms]\n )\n\n const navigate = useNavigate()\n const community = useCommunity()\n\n const [mobileConversationsOpen, setMobileConversationsOpen] = useState(false)\n\n useMessagesSubscription({\n scrollviewRef: messagesScrollViewRef,\n visibleRoomIds: roomsResult.data?.myRooms.edges.map((e) => e.node.id) || [],\n refetchRooms: roomsResult.refetch,\n })\n\n useEffect(() => {\n if (otherUserId && otherUserId === currentUser.id && !currentUser.admin) {\n navigate(messagesPath.pattern)\n }\n }, [otherUserId, currentUser.id, navigate, currentUser.admin])\n\n useEffect(() => {\n if (location.pathname !== messagesPath.pattern) return\n\n const firstRoom = orderedRooms[0]\n\n if (firstRoom?.dmOtherUser?.id) {\n navigate(dmPath({ otherUserId: firstRoom.dmOtherUser.id }))\n } else if (firstRoom?.id) {\n navigate(roomPath({ roomId: firstRoom.id }))\n }\n }, [orderedRooms, navigate, location])\n\n const initiateDirectMessage = useCallback(() => {\n logEvent(AhoyEventTypeEnum.DirectMessageInitiated)\n\n if (currentUser.permissions.canInitiateDms) {\n setStartDmModalOpen(true)\n } else {\n openSubscriptionWizard(\"PricingTableStep\", {\n source: \"InitialDirectMessage\",\n requiredFeature: \"canInitiateDms\",\n })\n }\n }, [currentUser, openSubscriptionWizard, logEvent])\n\n const initiateNewRoom = useCallback(() => {\n if (currentUser.permissions.canInitiateDms) {\n setStartRoomModalOpen(true)\n } else {\n openSubscriptionWizard(\"PricingTableStep\", {\n source: \"InitiateDirectMessage\",\n requiredFeature: \"canInitiateDms\",\n })\n }\n }, [currentUser, openSubscriptionWizard])\n\n return (\n \n \n \n \n
\n
\n {roomId || otherUserId ? (\n \n ) : (\n
\n setMobileConversationsOpen(true)}\n className=\"mr-4 xl:hidden cursor-pointer top-6 left-6 absolute\"\n >\n \n
\n
\n \n
\n
Your Messages
\n
\n Start a private conversation with a {community.name} member!\n
\n \n Compose Message\n {currentUser.permissions.canInitiateDms ? null : (\n \n )}\n \n
\n )}\n \n \n \n roomsResult.refetch()}\n />\n \n )\n}\n\nexport const MY_ROOMS_QUERY_DOCUMENT = gql(`\n query MyRooms($first: Int, $roomsCursor: String, $query: String) {\n myRooms(first: $first, after: $roomsCursor, query: $query) {\n edges {\n node {\n ...Room_MessageList\n }\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n totalCount\n }\n }\n`)\n\ngql(`\n fragment Room_MessageList on Room {\n id\n createdAt\n name\n defaultName\n memberCount\n latestPost {\n id\n createdAt\n content\n user {\n id\n }\n }\n hasUnreadPosts\n dmOtherUser {\n id\n name\n ...User_Avatar\n }\n }\n`)\n","import { CommunitySlug, User_CardFragment } from \"~/__generated__/graphql\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { Card, CardContent, CardFooter } from \"~/ui/card\"\nimport { Button } from \"~/ui/button\"\nimport { cn } from \"~/lib/utils\"\nimport { UserName } from \"./UserName\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\n\nexport type UserCardFormat = \"card\" | \"list\"\n\nexport const UserCard = ({\n user,\n format,\n onClick,\n highlight,\n}: {\n user: User_CardFragment\n format: UserCardFormat\n onClick: () => void\n highlight?: boolean\n}) => {\n const location = user.place?.full\n const ccls = useCommunityClassname()\n const community = useCommunity()\n\n return (\n \n \n \n
\n
\n
\n \n
\n {user.pronouns &&
{user.pronouns}
}\n
\n {user.jobTitle && user.jobTitle.length > 0 && (\n
{user.jobTitle}
\n )}\n {(user.companyName?.length || location?.length) && (\n \n {user.companyName}\n {user.companyName?.length && location?.length ? \" - \" : \"\"}\n {location}\n
\n )}\n \n {format === \"list\" && (\n \n View\n \n )}\n \n {format === \"card\" && (\n \n View\n \n )}\n \n )\n}\n","import * as React from \"react\";\nconst SvgMapMarker = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M8.00114 1.33325C5.42114 1.33325 3.33447 3.41992 3.33447 5.99992C3.33447 9.49992 8.00114 14.6666 8.00114 14.6666C8.00114 14.6666 12.6678 9.49992 12.6678 5.99992C12.6678 3.41992 10.5811 1.33325 8.00114 1.33325ZM8.00114 7.66658C7.08114 7.66658 6.33447 6.91992 6.33447 5.99992C6.33447 5.07992 7.08114 4.33325 8.00114 4.33325C8.92114 4.33325 9.66781 5.07992 9.66781 5.99992C9.66781 6.91992 8.92114 7.66658 8.00114 7.66658Z\", fill: \"#E22D05\" }));\nexport default SvgMapMarker;\n","import {\n forwardRef,\n createRef,\n useEffect,\n useMemo,\n useState,\n useRef,\n useImperativeHandle,\n useCallback,\n MutableRefObject,\n RefObject,\n} from \"react\"\nimport ReactDOMServer from \"react-dom/server\"\nimport { cn } from \"~/lib/utils\"\nimport {\n Map as GoogleMap,\n Marker,\n useMarkerRef,\n InfoWindow,\n} from \"@vis.gl/react-google-maps\"\nimport MapMarkerIcon from \"~/images/icons/map-marker.svg?react\"\nimport { LatLng } from \"~/common/useDeviceLocation\"\nimport { useUserDialogContext } from \"~/directory/UserDialogContext\"\nimport { CurrentLocation } from \"~/__generated__/graphql\"\n\nconst svgUrl = `data:image/svg+xml;charset=UTF-8,${encodeURIComponent(\n ReactDOMServer.renderToString()\n)}`\n\ninterface StaggeredPlace {\n idNames: { id: string; name: string }[]\n lat: number\n lng: number\n}\n\ninterface MarkerRef {\n closeInfoWindow: () => void\n}\n\ntype MarkerRefs = MutableRefObject[]>\n\ninterface GroupedMarkerProps {\n position: LatLng\n idNames: { id: string; name: string }[]\n expanded?: boolean\n}\n\nconst staggerPlaces = (\n places: CurrentLocation[],\n zoom: number\n): StaggeredPlace[] => {\n const minJiltBase = 0.001\n const maxJiltBase = 0.01\n const minZoom = 10\n const maxZoom = 20\n\n const fittedJiltBase = parseFloat(\n (\n maxJiltBase -\n ((zoom - minZoom) / (maxZoom - minZoom)) * (maxJiltBase - minJiltBase)\n ).toFixed(5)\n )\n\n const pointMap = new Map()\n\n // Calculate a map of locations that have conflicts for a given precision\n // Similiar to jilt above, these numbers are largely experimental based on\n // google map's \"zoom\" levels.\n let precision: number\n\n if (zoom < 6) {\n precision = 2\n } else if (zoom < 11) {\n precision = 3\n } else if (zoom < 16) {\n precision = 5\n } else {\n precision = 7\n }\n\n places.forEach(({ lat, lng }, index) => {\n if (lat === null || lng === null) {\n return\n }\n\n const key = `${lat.toFixed(precision)},${lng.toFixed(precision)}`\n\n if (!pointMap.has(key)) {\n pointMap.set(key, [])\n }\n\n pointMap.get(key)!.push(index)\n })\n\n // Apply jilt to the original mapping for the found conflicts. Conflicts are\n // defined as all the entries in the pointMap that have more than one found\n // index in the original mapping.\n //\n // When more than 5 conflicts exist at given point, the points are aggregated\n // into groupings.\n //\n // To apply the jilt, the points are distributed around a circle of the given\n // conflict.\n const modifiedPlaces: StaggeredPlace[] = []\n\n const randomOffset = () => {\n const angle = Math.random() * 2 * Math.PI\n const radius = fittedJiltBase * Math.random()\n\n return {\n latOffset: Math.sin(angle) * radius,\n lngOffset: Math.cos(angle) * radius,\n }\n }\n\n pointMap.forEach((indices) => {\n if (indices.length > 1) {\n const numGroups = Math.min(5, indices.length)\n const groupSize = Math.ceil(indices.length / numGroups)\n\n Array.from({ length: numGroups }).forEach((_, groupIndex) => {\n const group = indices.slice(\n groupIndex * groupSize,\n (groupIndex + 1) * groupSize\n )\n\n if (group.length === 0 || places[group[0]] === undefined) {\n return\n }\n\n const { latOffset, lngOffset } = randomOffset()\n\n modifiedPlaces.push({\n idNames: group.map((index) => {\n return { id: places[index].id, name: places[index].name }\n }),\n lat: places[group[0]].lat + latOffset,\n lng: places[group[0]].lng + lngOffset,\n })\n })\n } else {\n modifiedPlaces.push({\n idNames: [{ id: places[indices[0]].id, name: places[indices[0]].name }],\n lat: places[indices[0]].lat,\n lng: places[indices[0]].lng,\n })\n }\n })\n\n return modifiedPlaces\n}\n\nexport const UserLocationMap = ({\n mapCenter,\n aspectClass,\n zoomLevel,\n userLocations,\n}: {\n mapCenter: LatLng\n aspectClass: string\n zoomLevel: number\n userLocations: CurrentLocation[] | null\n}) => {\n // Properties for the map are needed from the window which the react\n // component sets. This polls to wait until the properties are available and\n // functional. There are loaded hooks that should work here as wel, however\n // they didn't appear to work in all cases and this approach seemed more\n // reliable.\n const { openUserDialog } = useUserDialogContext()\n const [googleMapsLoaded, setGoogleMapsLoaded] = useState(false)\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (window.google && window.google.maps) {\n if (typeof window.google.maps.Size === \"function\") {\n try {\n new window.google.maps.Size(100, 100)\n setGoogleMapsLoaded(true)\n clearInterval(interval)\n } catch {\n // No-op and try again\n }\n }\n }\n }, 100)\n\n return () => clearInterval(interval)\n }, [])\n\n const staggeredPlaces = useMemo(() => {\n if (userLocations) {\n return staggerPlaces([...userLocations], zoomLevel)\n }\n\n return []\n }, [userLocations, zoomLevel])\n\n const markerRefs: MarkerRefs = useRef([] as RefObject[])\n\n // This stores all markers in an array. A map with id keys could also be used\n // here, however the markers are sometimes aggregates of multiple ids. This\n // can be expanded in the future to support showing a marker on the map when\n // interacting outside of the map.\n useEffect(() => {\n if (!userLocations) return\n\n markerRefs.current = markerRefs.current.slice(0, userLocations.length)\n userLocations.forEach((_, i) => {\n markerRefs.current[i] = markerRefs.current[i] || createRef()\n })\n }, [markerRefs, userLocations])\n\n const closeAllInfoWindows = useCallback(() => {\n markerRefs.current?.forEach((ref) => ref.current?.closeInfoWindow())\n }, [markerRefs])\n\n const GroupedMarker = forwardRef(\n ({ position, idNames }, ref) => {\n const [open, setOpen] = useState(false)\n const [markerRef, marker] = useMarkerRef()\n\n useImperativeHandle(ref, () => {\n return {\n closeInfoWindow: () => {\n setOpen(false)\n },\n }\n })\n\n return (\n <>\n {\n closeAllInfoWindows()\n setOpen(!open)\n }}\n key={idNames[0].id}\n position={position}\n icon={{\n url: svgUrl,\n scaledSize: new window.google.maps.Size(20, 20),\n origin: new window.google.maps.Point(0, 0),\n anchor: new window.google.maps.Point(10, 20),\n }}\n />\n {open && (\n \n <>\n {idNames.slice(0, 2).map(({ id, name }) => {\n return (\n {\n if (open) openUserDialog(id)\n }}\n >\n {name}\n \n )\n })}\n {idNames.length > 2 && (\n
\n + {idNames.length - 2}\n
\n )}\n \n \n )}\n \n )\n }\n )\n\n return (\n {\n closeAllInfoWindows()\n }}\n >\n {googleMapsLoaded &&\n staggeredPlaces.map(({ idNames, lat, lng }, index) => {\n return (\n \n )\n })}\n \n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { APIProvider } from \"@vis.gl/react-google-maps\"\nimport { useEffect, useMemo, useState } from \"react\"\nimport { gql } from \"~/__generated__\"\nimport { CommunitySlug, CurrentLocation } from \"~/__generated__/graphql\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useConfig } from \"~/common/ConfigProvider\"\nimport { Translation } from \"~/common/Translation\"\nimport { LatLng, NullLatLng } from \"~/common/useDeviceLocation\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { useUserDialogContext } from \"~/directory/UserDialogContext\"\nimport AddCircle from \"~/images/icons/add-circle.svg?react\"\nimport MinusCircle from \"~/images/icons/minus-circle.svg?react\"\nimport { cn } from \"~/lib/utils\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { Dialog, DialogContent } from \"~/ui/dialog\"\nimport { Switch } from \"~/ui/switch\"\nimport { UserLocationMap } from \"./UserLocationMap\"\nimport { useCurrentLocation } from \"~/auth/CurrentLocationContext\"\n\nconst CITY_ZOOM_LEVEL = 12\nconst REGION_ZOOM_LEVEL = 11\nconst MapDialog = ({\n isOpen,\n setIsOpen,\n mapCenter,\n zoomLevel,\n userLocations,\n}: {\n isOpen: boolean\n setIsOpen: React.Dispatch>\n mapCenter: LatLng\n zoomLevel: number\n userLocations: CurrentLocation[] | null\n}) => {\n const { userDialogOpen } = useUserDialogContext()\n const ccls = useCommunityClassname()\n return (\n setIsOpen(val)}>\n setIsOpen(false)}\n className=\"p-0 outline-0 bg-transparent border-0\"\n darkenBackground={!userDialogOpen}\n >\n \n \n \n \n \n \n \n
\n {mapCenter && (\n \n )}\n
\n
\n \n
\n \n )\n}\n\nexport const DirectoryMap = ({\n className,\n expandable,\n isExpanded,\n setIsExpanded,\n}: {\n className: string\n expandable: boolean\n isExpanded: boolean\n setIsExpanded: (open: boolean) => void\n}) => {\n const toggleExpanded = () => {\n setIsExpanded(!isExpanded)\n }\n const currentUser = useCurrentUser()\n const {\n updateUserLocation,\n enableLocation,\n setEnableLocationAndDevicePreference,\n deviceLatLng,\n fetchingDeviceLatLng,\n fetchingPermissions,\n locationServicesEnabled,\n } = useCurrentLocation()\n\n const { mapsApiKey } = useConfig()\n\n const currentUserPlaceLatLng = useMemo(() => {\n return {\n lat: currentUser.place?.lat || null,\n lng: currentUser.place?.lng || null,\n }\n }, [currentUser.place])\n\n const { data, refetch } = useQuery(USER_LOCATIONS_QUERY_DOCUMENT, {\n pollInterval: 30_000,\n })\n\n useEffect(() => {\n refetch()\n }, [deviceLatLng, enableLocation, refetch])\n\n const mapCenter = useMemo(() => {\n if (\n locationServicesEnabled &&\n enableLocation &&\n deviceLatLng &&\n !fetchingDeviceLatLng\n ) {\n return deviceLatLng\n } else {\n return currentUser.place ? (currentUserPlaceLatLng as LatLng) : null\n }\n }, [\n locationServicesEnabled,\n enableLocation,\n deviceLatLng,\n fetchingDeviceLatLng,\n currentUser,\n currentUserPlaceLatLng,\n ])\n\n const usersForMap = useMemo(() => {\n if (data?.userCurrentLocations) {\n return data.userCurrentLocations\n } else if (currentUserPlaceLatLng) {\n // Default to the current users place location\n return [\n {\n __typename: \"CurrentLocation\",\n id: currentUser.id,\n name: currentUser.name ?? \"Unknown\",\n lat: currentUserPlaceLatLng.lat as number,\n lng: currentUserPlaceLatLng.lng as number,\n live: false,\n },\n ]\n } else {\n return null\n }\n }, [currentUser, data, currentUserPlaceLatLng])\n\n const [mapEnlarged, setMapEnlarged] = useState(false)\n const ccls = useCommunityClassname()\n return (\n \n \n \n \n \n {expandable && (\n
\n {isExpanded ? (\n \n ) : (\n \n )}\n
\n )}\n \n {(!expandable || isExpanded) && (\n \n
\n
\n {\n setEnableLocationAndDevicePreference(val)\n\n if (val) {\n updateUserLocation({ checkPermissions: false })\n }\n }}\n />\n\n
\n Enable Location?\n
\n
\n\n {!expandable && (\n {\n setMapEnlarged(true)\n }}\n className=\"text-xs text-primary tracking-wide\"\n >\n enlarge\n \n )}\n
\n\n {mapCenter && (\n \n <>\n \n
\n \n
\n \n
\n )}\n
\n )}\n \n )\n}\n\nconst USER_LOCATIONS_QUERY_DOCUMENT = gql(`\n query UserCurrentLocations {\n userCurrentLocations {\n live\n name\n id\n lat\n lng\n }\n }\n`)\n","import { add, parseISO, startOfDay } from \"date-fns\"\nimport { forwardRef, useState } from \"react\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { USER_UPDATE_MUTATION } from \"~/common/userUpdateMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { CalendarDateField } from \"~/ui/CalendarDateField\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport {\n AhoyEventTypeEnum,\n UserIntroductionsStateEnum,\n} from \"~/__generated__/graphql\"\nimport { useSubscription } from \"~/subscriptions/SubscriptionProvider\"\nimport { Button } from \"~/ui/button\"\nimport { AlarmClock, HeartHandshake, Lock } from \"lucide-react\"\nimport { Switch } from \"~/ui/switch\"\nimport { FieldPointer } from \"~/ui/Onboarding\"\n\nexport const useIntroductionsSnoozedUntilMutation = () => {\n const currentUser = useCurrentUser()\n const [date, setDate] = useState(\n currentUser.introductionsSnoozedUntil\n ? parseISO(currentUser.introductionsSnoozedUntil)\n : null\n )\n\n const [runUserUpdate] = useSafeMutation(USER_UPDATE_MUTATION)\n const { logEvent } = useLogEvent()\n\n const updateIntroductionsSnoozedUntil = async (newDate: Date | null) => {\n const previousDate = date\n setDate(newDate)\n const introductionsSnoozedUntilVal = newDate ? startOfDay(newDate) : null\n\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n introductionsSnoozedUntil: introductionsSnoozedUntilVal,\n introductionsState: introductionsSnoozedUntilVal\n ? UserIntroductionsStateEnum.ActivelySnooze\n : UserIntroductionsStateEnum.Active,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n setDate(previousDate)\n } else {\n if (introductionsSnoozedUntilVal) {\n logEvent(AhoyEventTypeEnum.IntroductionPreferenceSelected, {\n introduction_preference: \"SNOOZED\",\n })\n } else {\n logEvent(AhoyEventTypeEnum.IntroductionPreferenceSelected, {\n introduction_preference: \"ACTIVE\",\n })\n }\n }\n }\n\n return { updateIntroductionsSnoozedUntil, date, setDate }\n}\n\nexport const useIntroductionsStateMutation = () => {\n const currentUser = useCurrentUser()\n const [date, setDate] = useState(\n currentUser.introductionsSnoozedUntil\n ? parseISO(currentUser.introductionsSnoozedUntil)\n : null\n )\n\n const [introductionsState, setIntroductionsState] =\n useState(currentUser.introductionsState)\n\n const [runUserUpdate] = useSafeMutation(USER_UPDATE_MUTATION)\n const { logEvent } = useLogEvent()\n\n const updateIntroductionsState = async (\n newState: UserIntroductionsStateEnum,\n newDate: Date | null\n ) => {\n const previousState = introductionsState\n const previousDate = date\n setIntroductionsState(newState)\n setDate(newDate)\n\n if (!currentUser.onboardingActions?.optIntoIntroductions) {\n logEvent(AhoyEventTypeEnum.NewUserChecklistItemCompleted, {\n step_name: \"Opt Into Intros\",\n })\n }\n\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n introductionsSnoozedUntil: newDate ? startOfDay(newDate) : null,\n introductionsState: newState,\n ...(!currentUser.onboardingActions?.optIntoIntroductions && {\n optedIntoIntros: true,\n }),\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n setIntroductionsState(previousState)\n setDate(previousDate)\n } else {\n if (newState === UserIntroductionsStateEnum.ActivelySnooze) {\n logEvent(AhoyEventTypeEnum.IntroductionPreferenceSelected, {\n introduction_preference: \"SNOOZED\",\n })\n } else {\n logEvent(AhoyEventTypeEnum.IntroductionPreferenceSelected, {\n introduction_preference: \"ACTIVE\",\n })\n }\n }\n }\n\n return {\n updateIntroductionsState,\n introductionsState,\n date,\n }\n}\n\nexport const IntroductionsSettingsModule = forwardRef(\n (_, ref: React.ForwardedRef) => {\n const {\n updateIntroductionsState,\n introductionsState,\n date: snoozeDate,\n } = useIntroductionsStateMutation()\n const { openSubscriptionWizard } = useSubscription()\n const currentUser = useCurrentUser()\n const canUseIntroductions = currentUser.permissions.canUseIntroductions\n\n return (\n \n \n Introductions Settings\n \n \n {canUseIntroductions ? (\n <>\n <>\n
\n Receiving curated introductions are a Plus Membership benefit.\n
\n
\n If you'd like to opt in, make sure your toggle is set to\n \"Participate.\" If you need to pause receiving introductions,\n shift your toggle towards \"Snooze.\" Your preference is saved\n until you change it in the future.\n
\n
\n \n {\n if (\n [\n UserIntroductionsStateEnum.DefaultSnooze,\n UserIntroductionsStateEnum.ActivelySnooze,\n ].includes(introductionsState)\n ) {\n updateIntroductionsState(\n UserIntroductionsStateEnum.Active,\n null\n )\n } else {\n updateIntroductionsState(\n UserIntroductionsStateEnum.ActivelySnooze,\n add(new Date(), { months: 1 })\n )\n }\n }}\n variant=\"selector\"\n size=\"xl\"\n options={[\n
\n \n Snooze\n
,\n
\n \n Participate\n
,\n ]}\n />\n \n
\n \n {snoozeDate && (\n <>\n
\n Snooze Until?\n
\n {\n if (date) {\n updateIntroductionsState(\n UserIntroductionsStateEnum.ActivelySnooze,\n date\n )\n }\n }}\n fromYear={new Date().getFullYear()}\n toYear={new Date().getFullYear() + 2}\n disabled={{\n before: new Date(),\n after: add(new Date(), { years: 2 }),\n }}\n />\n \n )}\n \n ) : (\n \n openSubscriptionWizard(\"PricingTableStep\", {\n source: \"IntroductionSettingsModule\",\n requiredFeature: \"canUseIntroductions\",\n })\n }\n >\n Enable Introductions \n \n )}\n
\n
\n )\n }\n)\n","import { User_AvatarFragment } from \"~/__generated__/graphql\"\nimport {\n AvatarPlaceholder,\n AvatarWithFallback,\n AvatarWithFallbackProps,\n} from \"./AvatarWithFallback\"\nimport { useRef, useState, useCallback, useEffect } from \"react\"\n\ninterface AvatarStackProps extends Omit {\n users: User_AvatarFragment[]\n overlap?: number\n totalCount: number\n}\n\nexport const AvatarStack = ({\n users,\n overlap = 8,\n ...avatarWithFallbackProps\n}: AvatarStackProps) => {\n const wrapperRef = useRef(null)\n const testAvatarRef = useRef(null)\n const [, setAvatarWidth] = useState(0)\n const [avatarHeight, setAvatarHeight] = useState(0)\n const [visibleUsers, setVisibleUsers] = useState([])\n const [additionalUsersCount, setAdditionalUsersCount] = useState(0)\n\n const calculateVisibleUsers = useCallback(() => {\n if (!wrapperRef.current || !testAvatarRef.current) return\n\n const wrapperWidth = wrapperRef.current.clientWidth\n const avatarWidth = testAvatarRef.current.clientWidth\n const avatarHeight = testAvatarRef.current.clientHeight\n setAvatarWidth(avatarWidth)\n setAvatarHeight(avatarHeight)\n\n const maxVisibleUsers = Math.floor(wrapperWidth / (avatarWidth - overlap))\n\n // If the number of users would fit exactly, show all of them\n if (users.length <= maxVisibleUsers) {\n setVisibleUsers(users)\n setAdditionalUsersCount(0)\n return\n } else if (users.length > maxVisibleUsers) {\n setVisibleUsers(users.slice(0, maxVisibleUsers - 1))\n setAdditionalUsersCount(Math.max(users.length - maxVisibleUsers, 0))\n }\n }, [users, overlap])\n\n const [observer] = useState(() => {\n return new ResizeObserver(() => {\n calculateVisibleUsers()\n })\n })\n\n useEffect(() => {\n // the ref is not updated in the same react lifecycle event that the state changes and the ref cannot be observed\n setTimeout(() => {\n if (!testAvatarRef.current) return\n observer.observe(testAvatarRef.current)\n })\n\n return observer.disconnect()\n }, [observer])\n\n if (!users.length) return null\n\n return (\n \n \n {visibleUsers.map((user, index) => (\n \n ))}\n {additionalUsersCount > 0 && (\n \n +{additionalUsersCount}\n \n )}\n \n )\n}\n","import { useLazyQuery } from \"@apollo/client\"\nimport { parseISO } from \"date-fns\"\nimport { Lock } from \"lucide-react\"\nimport { useCallback, useEffect, useMemo, useState } from \"react\"\nimport { gql } from \"~/__generated__\"\nimport {\n AhoyEventTypeEnum,\n CommunitySlug,\n UserIntroductionsStateEnum,\n} from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { editIntroductionsPath } from \"~/common/paths\"\nimport { useIntroductionsSnoozedUntilMutation } from \"~/introduction-cycles/IntroductionsSettingsModule\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { useSubscription } from \"~/subscriptions/SubscriptionProvider\"\nimport { AvatarStack } from \"~/ui/AvatarStack\"\nimport { Link } from \"~/ui/Link\"\nimport {\n LoadingIndicator,\n LoadingIndicatorCentered,\n} from \"~/ui/LoadingIndicator\"\nimport { Translation } from \"~/common/Translation\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\n\nexport const IntroductionsModule = () => {\n const ccls = useCommunityClassname()\n const { openSubscriptionWizard } = useSubscription()\n const currentUser = useCurrentUser()\n const { updateIntroductionsSnoozedUntil, date } =\n useIntroductionsSnoozedUntilMutation()\n const { logEvent } = useLogEvent()\n const [getIntroductionMatches, { loading, data }] = useLazyQuery(\n INTRODUCTION_MATCHES_QUERY_DOCUMENT,\n {\n variables: {\n userId: currentUser.id,\n },\n }\n )\n\n const [, setIntroductionsSnoozedUntil] = useState(\n currentUser.introductionsSnoozedUntil\n ? parseISO(currentUser.introductionsSnoozedUntil)\n : null\n )\n\n useEffect(() => {\n setIntroductionsSnoozedUntil(date)\n }, [date, setIntroductionsSnoozedUntil])\n\n useEffect(() => {\n if (\n !currentUser.permissions.canUseIntroductions ||\n !!currentUser.introductionsSnoozedUntil\n )\n return\n getIntroductionMatches()\n }, [currentUser, getIntroductionMatches])\n\n const users = useMemo(() => {\n if (!data) return []\n return data.introductionMatches.edges\n .map(({ node }) => node.matchedWithUser!)\n .filter(\n (user, index, self) => self.findIndex((u) => u.id === user.id) === index\n )\n }, [data])\n\n const introductionsMadeCount = useMemo(() => {\n if (!data) return 0\n return data.introductionMatches.totalCount\n }, [data])\n\n const handleTurnOn = useCallback(() => {\n logEvent(AhoyEventTypeEnum.IntroductionsInterestClicked)\n\n if (!currentUser.permissions.canUseIntroductions) {\n openSubscriptionWizard(\"PricingTableStep\", {\n source: \"IntroductionsModule\",\n requiredFeature: \"canUseIntroductions\",\n })\n } else {\n updateIntroductionsSnoozedUntil(null)\n }\n }, [\n currentUser.permissions.canUseIntroductions,\n openSubscriptionWizard,\n updateIntroductionsSnoozedUntil,\n logEvent,\n ])\n\n if (\n currentUser.permissions.canUseIntroductions &&\n currentUser.introductionsState === UserIntroductionsStateEnum.Active &&\n introductionsMadeCount === 0\n ) {\n return null\n }\n\n return (\n \n \n \n Introductions\n
\n {!currentUser.permissions.canUseIntroductions && (\n \n )}\n
\n
\n
\n \n {!currentUser.permissions.canUseIntroductions ||\n [\n UserIntroductionsStateEnum.ActivelySnooze,\n UserIntroductionsStateEnum.DefaultSnooze,\n ].includes(currentUser.introductionsState) ? (\n <>\n
\n \n
\n
\n \n
\n \n ) : (\n <>\n
\n Your membership includes receiving curated introductions to peers\n in the community. Helping you build genuine relationships is our\n favorite thing to do. Reply via email or send a DM!\n
\n
\n Introductions Made:{\" \"}\n {loading ? : introductionsMadeCount}\n
\n {loading ? (\n \n ) : (\n \n )}\n \n Change introduction settings\n \n \n )}\n
\n \n )\n}\n\nconst INTRODUCTION_MATCHES_QUERY_DOCUMENT = gql(`\n query IntroductionMatches($userId: ID!) {\n introductionMatches(userId: $userId, accepted: true, first: 20) {\n totalCount\n edges {\n node {\n id\n matchedWithUser {\n id\n ...User_Avatar\n }\n }\n }\n }\n }\n`)\n","import { useMemo, useState } from \"react\"\nimport { gql } from \"~/__generated__\"\nimport {\n MarkReadEnum,\n UserSortEnum,\n AhoyEventTypeEnum,\n Place_FilterFragment,\n Tag,\n CommunitySlug,\n} from \"~/__generated__/graphql\"\nimport { useQuery } from \"@apollo/client\"\nimport { PageWithRightSidebar } from \"~/layouts/PageWithRightSidebar\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\nimport { Error } from \"~/ui/Error\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { UserCard, type UserCardFormat } from \"~/directory/UserCard\"\nimport { cn } from \"~/lib/utils\"\nimport { useDebounce } from \"use-debounce\"\nimport pluralize from \"pluralize\"\nimport { DirectoryMap } from \"./directory/DirectoryMap\"\nimport { useUserDialogContext } from \"~/directory/UserDialogContext\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"~/ui/dropdown-menu\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { Tabs, TabsList, TabsTrigger } from \"~/ui/tabs\"\nimport { Button } from \"~/ui/button\"\n\nimport DropdownArrow from \"~/images/dropdown-arrow.svg?react\"\nimport ChevronDown from \"~/images/icons/chevron-down.svg?react\"\nimport MinusCircle from \"~/images/icons/minus-circle.svg?react\"\nimport AddCircle from \"~/images/icons/add-circle.svg?react\"\n\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useReadIndicators } from \"~/content/useReadIndicators\"\nimport { SearchInput } from \"~/ui/SearchInput\"\nimport { IntroductionsModule } from \"./directory/IntroductionsModule\"\nimport { PlaceFilter, TagFilter } from \"~/admin/users/UsersFilters\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\n\nexport const DirectoryScreen = () => {\n const { logEvent } = useLogEvent()\n const [cardFormat, setCardFormat] = useState(\"card\")\n const [sort, setSort] = useState(UserSortEnum.Recent)\n const [sortMenuOpen, setSortMenuOpen] = useState(false)\n const [query, setQuery] = useState(\"\")\n const [debouncedQuery, debounced] = useDebounce(query, 200)\n const { unviewedIds } = useReadIndicators({ target: MarkReadEnum.Directory })\n const [selectedExpertises, setSelectedExpertises] = useState[]>(\n []\n )\n const [filtersExpanded, setFiltersExpanded] = useState(false)\n const [userLocationMapExpanded, setUserLocationMapExpanded] =\n useState(false)\n const [selectedPlace, setSelectedPlace] = useState<\n Partial | undefined\n >()\n const ccls = useCommunityClassname()\n\n const { openUserDialog } = useUserDialogContext()\n\n const {\n data: currentData,\n previousData,\n loading,\n error,\n fetchMore,\n } = useQuery(DIRECTORY_QUERY_DOCUMENT, {\n variables: {\n query: debouncedQuery,\n sort: sort,\n placeId: selectedPlace?.id,\n expertise: selectedExpertises.map(({ id }) => id!),\n },\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-and-network\",\n })\n\n const data = currentData || previousData\n\n const users = useMemo(() => {\n return data?.users.edges.map((e) => e.node) || []\n }, [data])\n\n const clearFilters = () => {\n setSelectedPlace(undefined)\n setSelectedExpertises([])\n setQuery(\"\")\n }\n\n if (!data && loading)\n return (\n
\n Loading directory...\n
\n )\n if (error || !data) return \n\n const DirectoryFilters = ({\n className,\n expandable,\n }: {\n className: string\n expandable: boolean\n }) => {\n const toggleExpanded = () => {\n if (filtersExpanded) {\n clearFilters()\n setFiltersExpanded(false)\n } else {\n setFiltersExpanded(true)\n }\n }\n\n return (\n \n \n Filter Data\n {expandable && (\n
\n {filtersExpanded ? (\n \n ) : (\n \n )}\n
\n )}\n \n {(!expandable || filtersExpanded) && (\n \n \n\n \n\n
\n {\n logEvent(AhoyEventTypeEnum.FiltersCleared, {\n location: selectedPlace?.full,\n topics: selectedExpertises.map((t) => t.name).join(\", \"),\n })\n\n clearFilters()\n }}\n >\n Clear Filters\n \n
\n
\n )}\n \n )\n }\n\n const MenuItem = ({\n value,\n textValue,\n }: {\n value: UserSortEnum\n textValue: string\n }) => (\n setSort(value)}\n >\n {textValue}\n \n )\n\n return (\n \n \n \n \n \n }\n >\n \n \n \n \n
\n
\n \n \n setCardFormat(value as UserCardFormat)\n }\n >\n \n \n Gallery\n \n \n List\n \n \n \n
\n
\n
\n {!debounced.isPending() &&\n !loading &&\n (query.length > 0 ||\n selectedExpertises.length > 0 ||\n selectedPlace) && (\n <>\n \n {pluralize(\"Match\", data.users.totalCount, true)}\n {\" \"}\n \n for your search criteria\n \n \n )}\n
\n
\n \n \n Sort Results \n \n \n e.preventDefault()}\n className=\"!animate-none p-2 text-center font-semibold flex flex-col gap-1\"\n >\n \n \n \n \n \n
\n
\n
\n {users.length > 0 && (\n \n {users.map((user) => (\n {\n openUserDialog(user.id)\n }}\n highlight={unviewedIds.includes(user.id)}\n />\n ))}\n \n fetchMore({\n variables: { usersCursor: data.users.pageInfo.endCursor },\n })\n }\n canLoadMore={!loading && data.users.pageInfo.hasNextPage}\n loadingText=\"Loading more users...\"\n loading={\n loading && users.length > 0 && data.users.pageInfo.hasNextPage\n }\n />\n \n )}\n
\n
\n \n )\n}\n\ngql(`\n fragment User_Card on User {\n id\n name\n pronouns\n companyName\n jobTitle\n onboarded\n bio\n admin\n coach\n role\n createdAt\n currentUserIntroducedAt\n ...User_Avatar\n place {\n ...Place_UserLocation\n }\n interests {\n id\n name\n }\n expertise {\n id\n name\n }\n linkedin\n twitter\n instagram\n anonymous\n pinnedPost {\n ...Post_Preview\n }\n celebrations {\n id\n celebrationType\n customCelebrationType\n date\n }\n }\n`)\n\ngql(`\n fragment Place_UserLocation on Place {\n id\n full\n lat\n lng\n }\n`)\n\n// TODO: refactor to avoid querying tags on each page load\nexport const DIRECTORY_QUERY_DOCUMENT = gql(`\n query Directory($query: String, $usersCursor: String, $sort: UserSortEnum, $placeId: ID, $expertise: [ID!]) {\n users(activeOnly: true, onboardedOnly: true, showHidden: false, sort: $sort, query: $query, placeId: $placeId, expertise: $expertise, first: 18, after: $usersCursor) {\n totalCount\n edges {\n node {\n ...User_Card\n }\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n`)\n","import { format } from \"date-fns\"\nimport {\n AhoyEventTypeEnum,\n Bookmark_CardFragment,\n} from \"~/__generated__/graphql\"\nimport { ArticleCard } from \"~/ui/ArticleCard\"\nimport { PostCard } from \"~/feed/PostCard\"\nimport { CardHeader } from \"~/ui/card\"\n\nimport BookmarkFilled from \"~/images/icons/bookmark-filled.svg?react\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useCallback } from \"react\"\n\nexport const BookmarkCard = ({\n bookmark,\n query,\n}: {\n bookmark: Bookmark_CardFragment\n query?: string\n}) => {\n const { logEvent } = useLogEvent()\n\n const handleClick = useCallback(\n (e: React.MouseEvent) => {\n if (e.target instanceof HTMLAnchorElement) {\n logEvent(AhoyEventTypeEnum.BookmarkLinkClicked, {\n url_clicked: e.target.href,\n })\n }\n },\n [logEvent]\n )\n\n if (bookmark.isDestroyed) {\n // if the record was unbookmarked, we don't want to render anything\n return\n }\n\n const header = (\n \n
\n \n
\n Bookmarked {format(bookmark.createdAt, \"MMM d, yyyy\")}\n
\n
\n
\n )\n\n return (\n
\n {bookmark.post && (\n \n )}\n {bookmark.article?.revision && (\n \n )}\n
\n )\n}\n","import { Link } from \"react-router-dom\"\nimport { BookmarkTypeEnum, CommunitySlug } from \"~/__generated__/graphql\"\nimport { bookmarksPath, bookmarksTypedPath } from \"~/common/paths\"\nimport { cn } from \"~/lib/utils\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\n\ntype TabMap = { [key in BookmarkTypeEnum]: string }\n\nconst TAB_LIST: TabMap = {\n [BookmarkTypeEnum.All]: \"All Bookmarks\",\n [BookmarkTypeEnum.Posts]: \"Posts\",\n [BookmarkTypeEnum.Articles]: \"Library Content\",\n}\n\nexport const BookmarkTabs = ({\n currentTab,\n}: {\n currentTab: BookmarkTypeEnum\n}) => {\n return (\n
\n {Object.entries(TAB_LIST).map(([bookmarkType, label]) => (\n \n ))}\n
\n )\n}\n\nconst Tab = ({\n bookmarkType,\n text,\n active,\n}: {\n bookmarkType: BookmarkTypeEnum\n text: string\n active: boolean\n}) => {\n const ccls = useCommunityClassname()\n const to =\n bookmarkType === BookmarkTypeEnum.All\n ? bookmarksPath.pattern\n : bookmarksTypedPath({ bookmarkType })\n\n const activeClasses = ccls({\n [CommunitySlug.Boardroom]: \"border-white text-white\",\n [CommunitySlug.Gotomillions]: \"border-white text-white\",\n default: \"border-primary text-primary\",\n })\n\n return (\n \n {text}\n \n )\n}\n","import * as React from \"react\"\nimport clsx from \"clsx\"\nimport { ScrollArea } from \"@radix-ui/react-scroll-area\"\nimport { ChevronsUpDown } from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"~/ui/dropdown-menu\"\n\nimport { Badge } from \"~/ui/badge\"\nimport { cn } from \"../lib/utils\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\n\nexport type BadgeOptionType = {\n label: string\n value: string\n}\n\ninterface DropdownMenuBadgesProps {\n title: string\n optionTitle?: string\n options: BadgeOptionType[]\n selected: BadgeOptionType[]\n onChange: (option: BadgeOptionType[]) => void\n}\n\nexport function DropdownMenuBadges({\n title,\n optionTitle,\n options,\n selected,\n onChange,\n}: DropdownMenuBadgesProps) {\n const ccls = useCommunityClassname()\n const isChecked = (value: string) => {\n const checked = selected.find((s) => s.value === value)\n\n return !!checked\n }\n\n const onClick = (option: BadgeOptionType, checked: boolean) => {\n return () => {\n if (checked) {\n onChange(selected.filter((s) => s.value !== option.value))\n } else {\n onChange([...selected, option])\n }\n }\n }\n\n return (\n \n \n 0 &&\n ccls({\n [CommunitySlug.Marketingland]: \"text-library-dropdown-badges\",\n default: \"text-primary\",\n }),\n ccls({\n [CommunitySlug.Gotomillions]: \"border-primary\",\n default: \"border-mercury\",\n })\n )}\n role=\"button\"\n >\n {title}\n \n \n \n \n {optionTitle && (\n <>\n
\n {optionTitle}\n
\n \n \n )}\n \n
\n {options.map((option) => {\n const checked = isChecked(option.value)\n\n return (\n
\n \n {option.label}\n {\n if (e.key === \"Enter\") {\n onClick(option, checked)()\n }\n }}\n onMouseDown={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n onClick={onClick(option, checked)}\n >\n \n
\n )\n })}\n
\n \n
\n
\n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { useParams } from \"react-router-dom\"\nimport { useState } from \"react\"\nimport { useDebounce } from \"use-debounce\"\nimport { gql } from \"~/__generated__\"\nimport {\n AhoyEventTypeEnum,\n BookmarkTypeEnum,\n CommunitySlug,\n} from \"~/__generated__/graphql\"\nimport { Card, CardHeader, CardTitle, CardContent } from \"~/ui/card\"\nimport { PageWithRightSidebar } from \"~/layouts/PageWithRightSidebar\"\nimport { BookmarkCard } from \"~/bookmarks/BookmarkCard\"\nimport { BookmarkTabs } from \"~/bookmarks/BookmarkTabs\"\nimport {\n DropdownMenuBadges,\n BadgeOptionType,\n} from \"~/common/DropdownMenuBadges\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { SearchFeedback } from \"~/common/SearchFeedback\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { LoadingIndicator } from \"~/ui/LoadingIndicator\"\nimport { Error } from \"~/ui/Error\"\nimport { SearchInput } from \"~/ui/SearchInput\"\nimport { cn } from \"~/lib/utils\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\n\n// return the bookmark type if it is a valid BookmarkTypeEnum, otherwise return undefined\nconst sanitizeBookmarkType = (bookmarkType: string | undefined) =>\n (Object.values(BookmarkTypeEnum).includes(bookmarkType)\n ? bookmarkType\n : BookmarkTypeEnum.All) as BookmarkTypeEnum\n\nexport const BookmarksScreen = () => {\n const { bookmarkType } = useParams()\n const sanitizedBookmarkType = sanitizeBookmarkType(bookmarkType)\n const [topics, setTopics] = useState([])\n const [query, setQuery] = useState(\"\")\n const [debouncedQuery] = useDebounce(query, 200)\n const { logEvent } = useLogEvent()\n const ccls = useCommunityClassname()\n\n const {\n data: currentData,\n previousData,\n loading,\n error,\n fetchMore,\n } = useQuery(BOOKMARKS_QUERY_DOCUMENT, {\n variables: {\n bookmarkType:\n sanitizedBookmarkType === BookmarkTypeEnum.All\n ? undefined\n : sanitizedBookmarkType,\n topicIds: topics.length > 0 ? topics.map((t) => t.value) : undefined,\n query: debouncedQuery,\n },\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-and-network\",\n skip: !sanitizedBookmarkType,\n onCompleted: () => {\n if (debouncedQuery.length !== 0) {\n logEvent(AhoyEventTypeEnum.ContentSearched, {\n search_query: debouncedQuery,\n })\n }\n },\n })\n const data = currentData || previousData\n\n const topicOptions = data?.tags.nodes\n ? data.tags.nodes.map((topic) => ({\n value: topic.id,\n label: topic.name,\n }))\n : []\n\n const clearSearch = () => {\n setQuery(\"\")\n setTopics([])\n }\n\n if (!data && loading)\n return (\n
\n Loading bookmarks...\n
\n )\n if (error || !data) return \n\n const bookmarks = data.bookmarks?.edges.map((e) => e.node) || []\n const searchActive = debouncedQuery !== \"\" || topics.length > 0\n\n return (\n \n \n \n Bookmarks\n \n \n
\n
\n \n
\n
\n 0\n ? `${topics.length} Selected`\n : \"Filter Topic\"\n }\n optionTitle=\"FILTER BY TOPIC\"\n options={topicOptions}\n selected={topics}\n onChange={(data) => {\n const topicNames = (data || []).map((t) => t.label)\n\n if (topicNames.length !== 0) {\n logEvent(AhoyEventTypeEnum.TopicFilterApplied, {\n topics: topicNames.join(\", \"),\n })\n }\n\n setTopics(data)\n }}\n />\n
\n
\n {searchActive && (\n {\n logEvent(AhoyEventTypeEnum.ContentSearchCleared, {\n search_query: query,\n topics: (topics || []).map((t) => t.label).join(\", \"),\n })\n clearSearch()\n }}\n />\n )}\n
\n
\n {sanitizedBookmarkType && (\n \n )}\n
\n
\n {bookmarks.map((bookmark) => (\n \n ))}\n
\n {data.bookmarks && (\n {\n if (!data.bookmarks) {\n return\n }\n fetchMore({\n variables: { after: data.bookmarks.pageInfo.endCursor },\n })\n }}\n canLoadMore={!loading && data.bookmarks.pageInfo.hasNextPage}\n loadingText=\"Loading bookmarks...\"\n loading={loading && bookmarks.length > 0}\n />\n )}\n
\n
\n )\n}\n\ngql(`\n fragment Bookmark_Card on Bookmark {\n ...Bookmark\n article {\n ...Article_Card\n }\n post {\n ...Post_Card\n }\n }\n`)\n\nexport const BOOKMARKS_QUERY_DOCUMENT = gql(`\n query BookmarksScreen($bookmarkType: BookmarkTypeEnum, $topicIds: [ID!], $query: String, $after: String) {\n bookmarks(bookmarkType: $bookmarkType, topicIds: $topicIds, query: $query, first: 20, after: $after) {\n edges {\n node {\n ...Bookmark_Card\n }\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n totalCount\n }\n tags {\n nodes {\n id\n name\n }\n }\n }\n`)\n","import { useEffect } from \"react\"\nimport { Outlet, useNavigate } from \"react-router-dom\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { feedPath } from \"~/common/paths\"\n\nexport const RequireUserInactive = () => {\n const navigate = useNavigate()\n const currentUser = useCurrentUser()\n\n useEffect(() => {\n if (currentUser.active && currentUser.fit !== false) {\n navigate(feedPath.pattern)\n }\n }, [navigate, currentUser])\n\n if (currentUser.active && currentUser.fit !== false) {\n return null\n }\n\n return \n}\n","import * as React from \"react\";\nconst SvgSadComputer = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 72, height: 73, viewBox: \"0 0 72 73\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#clip0_6136_11931)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M4.88281e-05 24.3377C4.88281e-05 50.8174 -0.0421387 49.1861 0.885986 51.0846C1.46255 52.2658 2.9813 53.8268 4.16255 54.4455C6.0188 55.4158 5.4563 55.3736 18.1829 55.4299L29.6719 55.4721V57.5674V59.6768H27.45C25.8188 59.6768 25.0172 59.733 24.4547 59.9018C21.9094 60.6471 19.9829 62.6018 19.3219 65.0908C19.1813 65.583 19.125 66.7924 19.125 69.0564V72.333H36H52.875V69.0564C52.875 66.7502 52.8188 65.583 52.6782 65.0768C52.2 63.2486 50.7516 61.4205 49.1485 60.5627C47.7141 59.8174 47.011 59.6768 44.55 59.6768H42.3282V57.5674V55.4721L53.8313 55.4299C66.5438 55.3736 65.9813 55.4158 67.8375 54.4455C69.0188 53.8268 70.5376 52.2658 71.1141 51.0846C72.0422 49.1861 72 50.8174 72 24.3377V0.333008H36H4.88281e-05V24.3377ZM67.7813 23.6064V42.6611H36H4.2188V23.6064V4.55176H36H67.7813V23.6064ZM67.7391 47.6955C67.6266 49.0877 66.7969 50.2971 65.6016 50.8314C65.0672 51.0846 63.8297 51.0986 36 51.0986C8.00161 51.0986 6.94692 51.0846 6.39849 50.8314C5.20317 50.2689 4.37349 49.0736 4.26099 47.6955L4.17661 46.8799H36H67.8235L67.7391 47.6955ZM38.1094 57.5674V59.6768H36H33.8907V57.5674V55.458H36H38.1094V57.5674ZM46.8985 64.1627C48.0657 64.6971 48.6563 65.7236 48.6563 67.2002V68.1143H36H23.3438V67.2002C23.3438 65.7236 23.9344 64.6971 25.1016 64.1627C25.636 63.9096 26.2407 63.8955 36 63.8955C45.7594 63.8955 46.3641 63.9096 46.8985 64.1627Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.1562 11.6533L15.6797 13.1299L17.1562 14.6064L18.6328 16.083L17.1141 17.6018L15.6094 19.1064L17.1281 20.6252L18.6328 22.1299L20.1516 20.6252L21.6562 19.1064L23.1328 20.583L24.6094 22.0596L26.0859 20.583L27.5625 19.1064L26.0859 17.6299L24.6094 16.1533L26.1141 14.6486L27.6328 13.1299L26.1141 11.6252L24.6094 10.1064L23.1047 11.6252L21.5859 13.1299L20.1094 11.6533L18.6328 10.1768L17.1562 11.6533Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M46.5469 11.6533L45.0703 13.1299L46.5891 14.6486L48.0938 16.1533L46.6172 17.6299L45.1406 19.1064L46.6172 20.583L48.0938 22.0596L49.5703 20.583L51.0469 19.1064L52.5656 20.6252L54.0703 22.1299L55.5891 20.6111L57.0938 19.1064L55.5891 17.5877L54.0703 16.083L55.5469 14.6064L57.0234 13.1299L55.5469 11.6533L54.0703 10.1768L52.5938 11.6533L51.1172 13.1299L49.6406 11.6533C48.825 10.8377 48.1359 10.1768 48.0938 10.1768C48.0516 10.1768 47.3625 10.8377 46.5469 11.6533Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M32.2032 25.9979C29.0814 26.4197 26.1564 27.3479 23.2173 28.8244C21.4736 29.7104 18.2392 31.8057 14.6532 34.3791L14.3439 34.6041L15.5111 36.3057C16.1439 37.2479 16.7345 37.9932 16.8189 37.965C16.9032 37.9229 18.422 36.9104 20.1939 35.701C23.8079 33.226 25.0173 32.5229 27.1126 31.6932C34.0876 28.9369 42.2017 29.6119 48.5579 33.5072C49.0501 33.8025 50.6954 34.9135 52.2282 35.9682C53.7611 37.0369 55.0829 37.9229 55.1673 37.951C55.322 38.0072 57.4314 35.0822 57.5439 34.6744C57.6142 34.4213 50.7657 29.8229 48.9376 28.8807C45.9282 27.3479 42.9751 26.4197 39.6986 25.9979C37.772 25.7447 34.0595 25.7447 32.2032 25.9979Z\", fill: \"black\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_6136_11931\" }, /* @__PURE__ */ React.createElement(\"rect\", { width: 72, height: 72, fill: \"white\", transform: \"translate(0 0.333008)\" }))));\nexport default SvgSadComputer;\n","import { formatDate } from \"date-fns\"\nimport { useEffect, useMemo } from \"react\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { CANCELED_STATUSES, PAST_DUE_STATUSES } from \"~/common/stripe\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { useAuthenticatedLayout } from \"~/layouts/AuthenticatedLayout\"\nimport { Button } from \"~/ui/button\"\nimport {\n Dialog,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"~/ui/dialog\"\nimport SadComputer from \"~/images/sad-computer.svg?react\"\nimport { useQuery } from \"@apollo/client\"\nimport {\n USER_INACTIVE_STRIPE_SUBSCRIPTIONS_QUERY_DOCUMENT,\n useSubscription,\n} from \"~/subscriptions/SubscriptionProvider\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\n\nexport const SubscribeScreen = () => {\n const currentUser = useCurrentUser()\n const community = useCommunity()\n const { setIsBlurred } = useAuthenticatedLayout()\n const { openSubscriptionWizard } = useSubscription()\n const { data, loading } = useQuery(\n USER_INACTIVE_STRIPE_SUBSCRIPTIONS_QUERY_DOCUMENT,\n {\n variables: { userId: currentUser.id },\n }\n )\n\n const mostRecentlyCanceledSubscription = useMemo(() => {\n if (loading) return null\n return data?.user?.inactiveStripeSubscriptions?.[0]\n }, [data, loading])\n\n const canceledAt = useMemo(\n () => mostRecentlyCanceledSubscription?.canceledAt,\n [mostRecentlyCanceledSubscription]\n )\n\n useEffect(() => {\n setIsBlurred(true)\n return () => setIsBlurred(false)\n }, [setIsBlurred])\n\n const stripeSubscriptionStatus = useMemo(\n () => mostRecentlyCanceledSubscription?.status || \"\",\n [mostRecentlyCanceledSubscription]\n )\n\n const statusHistory = useMemo(\n () =>\n [...(mostRecentlyCanceledSubscription?.statusHistory || [])].sort(\n (a, b) => b.createdAt.localeCompare(a.createdAt)\n ),\n [mostRecentlyCanceledSubscription]\n )\n\n const previousStripeSubscriptionStatus = useMemo(\n () => statusHistory[0]?.status,\n [statusHistory]\n )\n\n const isCanceled = useMemo(\n () => CANCELED_STATUSES.includes(stripeSubscriptionStatus),\n [stripeSubscriptionStatus]\n )\n\n const wasPastDue = useMemo(\n () => PAST_DUE_STATUSES.includes(previousStripeSubscriptionStatus || \"\"),\n [previousStripeSubscriptionStatus]\n )\n\n const wasCanceledDueToNonPayment = useMemo(\n () => isCanceled && wasPastDue,\n [isCanceled, wasPastDue]\n )\n const wasCanceledByUser = useMemo(\n () => isCanceled && !wasCanceledDueToNonPayment,\n [isCanceled, wasCanceledDueToNonPayment]\n )\n\n const cta = useMemo(() => {\n if (!stripeSubscriptionStatus || stripeSubscriptionStatus === \"paused\") {\n return \"Activate Membership\"\n }\n if (isCanceled) {\n return \"Reactivate Membership\"\n }\n }, [stripeSubscriptionStatus, isCanceled])\n\n return (\n \n \n {loading ? (\n
\n \n
\n ) : (\n <>\n \n \n \n <>\n {(!stripeSubscriptionStatus ||\n stripeSubscriptionStatus === \"paused\") && (\n <>Activate your membership?\n )}\n {isCanceled && <>Reactivate your membership?}\n \n \n \n
\n <>\n {!stripeSubscriptionStatus && (\n

\n To continue to{\" \"}\n {community.name},\n please activate your membership.\n

\n )}\n {wasCanceledByUser && (\n <>\n

\n Your membership to{\" \"}\n \n {community.name}\n {\" \"}\n was canceled\n {canceledAt &&\n ` on ${formatDate(canceledAt, \"MMM d, yyyy\")}`}\n .\n

\n

\n Pick up where you left off by reactivating your membership\n to{\" \"}\n \n {community.name}\n \n .\n

\n \n )}\n {wasCanceledDueToNonPayment && (\n <>\n

\n Your membership to{\" \"}\n \n {community.name}\n {\" \"}\n was canceled\n {canceledAt &&\n ` on ${formatDate(canceledAt, \"MMM d, yyyy\")}`}{\" \"}\n because we were unable to verify your payment method.\n

\n

\n Pick up where you left off by updating your payment method\n and reactivating your membership to{\" \"}\n \n {community.name}\n \n .\n

\n \n )}\n {stripeSubscriptionStatus === \"paused\" && (\n

\n If you've enjoyed your time at{\" \"}\n {community.name},\n please activate your membership.\n

\n )}\n \n
\n \n
\n \n openSubscriptionWizard(\"PricingTableStep\", {\n showAllTiers: true,\n disableSelectCurrentTier: false,\n })\n }\n type=\"button\"\n >\n {cta}\n \n
\n\n

\n Think this is a mistake? Contact us via
{\" \"}\n \n memberships@workweek.com\n \n

\n
\n \n )}\n
\n
\n )\n}\n","import { FeedSidebar } from \"~/feed/FeedSidebar\"\nimport { PageWithRightSidebar } from \"~/layouts/PageWithRightSidebar\"\nimport { Outlet } from \"react-router-dom\"\nimport { Card, CardContent, CardHeader } from \"~/ui/card\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { Mention, MentionsInput } from \"react-mentions\"\nimport { TagSelector } from \"~/post-composer/TagSelector\"\nimport { Button } from \"~/ui/button\"\nimport AddPhoto from \"../images/icons/add-photo.svg?react\"\nimport AddVideo from \"../images/icons/add-video.svg?react\"\nimport Attachment from \"../images/icons/attachment.svg?react\"\nimport { Skeleton } from \"~/ui/skeleton\"\n\nexport const FeedSkeletonLayout = () => {\n const phonyPosts = new Array(5).fill(null)\n\n return (\n }>\n
\n \n \n
\n Community Feed\n
\n
\n \n
\n
\n
\n \n\n
\n \n \n \n
\n
\n {}}\n disabled\n />\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n\n \n
\n
\n
\n
\n\n {phonyPosts.map((_, index) => (\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\nconst MENTION_STYLES = {\n suggestions: {\n zIndex: 30,\n list: {\n backgroundColor: \"white\",\n border: \"1px solid #E5E5E5\",\n borderBottom: 0,\n fontSize: 14,\n },\n item: {\n padding: \"5px 10px\",\n borderBottom: \"1px solid #E5E5E5\",\n \"&focused\": {\n backgroundColor: \"#f1f5f9\",\n },\n },\n },\n}\n","export default \"__VITE_ASSET__lATVhEy9__\"","import * as React from \"react\";\nconst SvgXOctogon = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 84, height: 84, viewBox: \"0 0 84 84\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 42, cy: 42, r: 41, stroke: \"white\", strokeWidth: 2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.8075 28.75H48.1925L56.25 36.8075V48.1925L48.1925 56.25H36.8075L28.75 48.1925V36.8075L36.8075 28.75Z\", stroke: \"white\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M46.625 38.375L38.375 46.625\", stroke: \"white\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M38.375 38.375L46.625 46.625\", stroke: \"white\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgXOctogon;\n","import { Link } from \"react-router-dom\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport SadComputer from \"~/images/error-screen.png\"\nimport { buttonVariants } from \"~/ui/button\"\nimport XOctogon from \"~/images/x-octogon.svg?react\"\nimport { useAuthenticatedLayout } from \"~/layouts/AuthenticatedLayout\"\nimport { useEffect } from \"react\"\n\nexport const NotFoundScreen = () => {\n const community = useCommunity()\n const { setLeftSidebar, resetLeftSidebar } = useAuthenticatedLayout()\n\n useEffect(() => {\n setLeftSidebar(null)\n return () => resetLeftSidebar()\n }, [setLeftSidebar, resetLeftSidebar])\n\n return (\n
\n
\n {community.slug === \"SAFESPACE\" ? (\n \n ) : (\n \n )}\n

Error 404

\n

\n Whoops! You've landed on a 404 page.\n
\n Go back to the community instead?\n

\n \n Back to the Community\n \n
\n
\n )\n}\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","import { useQuery } from \"@apollo/client\"\nimport {\n Check,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronsUpDown,\n Copy,\n X,\n} from \"lucide-react\"\nimport { useEffect, useMemo, useState } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { useSearchParams } from \"react-router-dom\"\nimport { useCopyToClipboard } from \"usehooks-ts\"\nimport { gql } from \"~/__generated__\"\nimport { Event_AdminFragment } from \"~/__generated__/graphql\"\nimport { formatDate } from \"~/common/formatDate\"\nimport { cn } from \"~/lib/utils\"\nimport { UserName } from \"~/directory/UserName\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"~/ui/collapsible\"\nimport { Command, CommandGroup, CommandInput, CommandItem } from \"~/ui/command\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"~/ui/popover\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\n\nconst DEFAULT_PAGE_SIZE = 100\n\nconst NAME_FILTERS = [\n \"Page Viewed\",\n \"HRIS Connection Initiated\",\n \"HRIS Connection Completed\",\n \"Headshot Addded\",\n \"Skip For Now Clicked\",\n \"Onboarding Completed\",\n \"Manual Data Submission Initiated\",\n \"Manual Data Submission Completed\",\n \"Benchmark Filter Applied\",\n \"Benchmark Filter Cleared\",\n \"Benchmark CTA Clicked\",\n \"Post Submitted\",\n \"Post Replied To\",\n \"Post Reacted To\",\n \"Content Shared\",\n \"Topic Filter Applied\",\n \"Topic Filter Cleared\",\n \"Content Searched\",\n \"Content Search Cleared\",\n \"Content Upload Initiated\",\n \"Content Submitted\",\n \"Content Submission Approved\",\n \"Collaboration Invite Sent\",\n \"Profile Viewed\",\n \"Activity Interval\",\n \"Complete Profile CTA Clicked\",\n \"Direct Message Initiated\",\n \"Interests Changed\",\n \"Expertise Changed\",\n \"Company Changed\",\n \"Manage Subscription Clicked\",\n \"Direct Message Sent\",\n \"Referral Code Copied\",\n \"Referral Code Redeemed\",\n \"Location Filter Applied\",\n \"Filters Cleared\",\n \"Profile Update Toast Clicked\",\n]\n\nexport const Events = () => {\n const [searchParams, setSearchParams] = useSearchParams()\n\n const [after, setAfter] = useState(\n searchParams.get(\"after\") || undefined\n )\n const [before, setBefore] = useState(\n searchParams.get(\"before\") || undefined\n )\n\n const first = useMemo(() => {\n if (!before) return DEFAULT_PAGE_SIZE\n return undefined\n }, [before])\n const last = useMemo(() => {\n if (before) return DEFAULT_PAGE_SIZE\n return undefined\n }, [before])\n\n const [nameFilter, setNameFilter] = useState(\n searchParams.get(\"name\") || undefined\n )\n\n const { data, loading } = useQuery(EVENTS_QUERY_DOCUMENT, {\n variables: {\n first,\n last,\n after,\n before,\n name: nameFilter,\n },\n })\n\n const events = data?.events.nodes\n const hasNextPage = data?.events.pageInfo.hasNextPage\n const hasPreviousPage = data?.events.pageInfo.hasPreviousPage\n\n const memoizedSearchParams = useMemo(() => {\n const params = new URLSearchParams(searchParams.toString())\n if (after) {\n params.set(\"after\", after)\n } else {\n params.delete(\"after\")\n }\n if (before) {\n params.set(\"before\", before)\n } else {\n params.delete(\"before\")\n }\n if (nameFilter) {\n params.set(\"name\", nameFilter)\n } else {\n params.delete(\"name\")\n }\n return params\n }, [after, before, nameFilter, searchParams])\n\n useEffect(() => {\n setSearchParams(memoizedSearchParams)\n }, [memoizedSearchParams, setSearchParams])\n\n useEffect(() => {\n if (nameFilter) {\n setAfter(undefined)\n setBefore(undefined)\n }\n }, [nameFilter])\n\n const goToNextPage = () => {\n if (!data?.events.pageInfo.endCursor) return\n\n setBefore(undefined)\n setAfter(data?.events.pageInfo.endCursor)\n }\n\n const goToPreviousPage = () => {\n if (!data?.events.pageInfo.startCursor) return\n\n setAfter(undefined)\n setBefore(data?.events.pageInfo.startCursor)\n }\n\n const clearNameFilter = (\n e: Pick\n ) => {\n e.stopPropagation()\n e.preventDefault()\n setNameFilter(undefined)\n }\n\n return (\n <>\n {loading ? (\n \n ) : (\n
\n
\n \n \n \n \n \n \n \n \n {NAME_FILTERS.map((name) => (\n setNameFilter(name)}\n >\n \n {name}\n \n ))}\n \n \n \n \n
\n {events?.map((event) => )}\n
\n \n
\n \n Previous\n
\n \n \n
\n Next\n \n
\n \n
\n
\n )}\n \n )\n}\n\ntype EventCardProps = {\n event: Event_AdminFragment\n}\n\nconst EventCard = ({ event }: EventCardProps) => {\n const [open, setOpen] = useState(false)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [_, copy] = useCopyToClipboard()\n\n const properties = useMemo(\n () => JSON.stringify(event.properties, null, 2),\n [event.properties]\n )\n\n const copyToClipboard = () => {\n copy(properties)\n toast.success(\"Copied to clipboard\")\n }\n\n return (\n \n \n \n
\n
\n \n setOpen(!open)}\n >\n <>\n {open ? (\n \n ) : (\n \n )}\n \n Toggle\n \n \n
\n
\n {formatDate(event.time, \"M/d/yyyy HH:mm:ss\")}\n
\n
{event.name}
\n
\n {event.user && }\n
\n
{event.user?.email}
\n
\n \n
\n
{properties}
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n )\n}\n\ngql(`\n fragment Event_Admin on Event {\n id\n name\n time\n properties\n\n user {\n id\n name\n email\n }\n }\n`)\n\nconst EVENTS_QUERY_DOCUMENT = gql(`\n query Events($first: Int, $last: Int, $after: String, $before: String, $name: String, $userId: ID) {\n events(first: $first, last: $last, after: $after, before: $before, name: $name, userId: $userId) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n nodes {\n ...Event_Admin\n }\n }\n }\n`)\n","import { Info, SatelliteDish } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { Events } from \"~/admin/Events\"\nimport { adminSailthruSyncsPath } from \"~/common/paths\"\nimport { Alert, AlertDescription, AlertTitle } from \"~/ui/alert\"\nimport { Link } from \"~/ui/Link\"\n\nexport const AdminEventsScreen = () => {\n return (\n <>\n \n \n \n Looking for Sailthru syncs?\n \n Check out the new{\" \"}\n Sailthru Syncs page.\n \n \n \n \n )\n}\n","import { cva, VariantProps } from \"class-variance-authority\"\nimport { forwardRef } from \"react\"\nimport { cn } from \"~/lib/utils\"\n\nconst descriptionListVariants = cva(\n \"grid grid-cols-1 md:grid-cols-4 gap-x-4 gap-y-2 items-center\",\n {\n variants: {\n variant: {\n inline: \"grid grid-cols-1 gap-x-4 gap-y-0\",\n },\n },\n }\n)\n\ninterface DescriptionListProps\n extends React.HTMLAttributes,\n VariantProps {}\n\nexport const DescriptionList = forwardRef<\n HTMLDListElement,\n DescriptionListProps\n>(({ variant, className, ...props }, ref) => {\n return (\n \n )\n})\n\nconst descriptionTermVariants = cva(\"font-semibold\", {\n variants: {\n variant: {\n inline: \"font-normal\",\n },\n },\n})\n\ninterface DescriptionTermProps\n extends React.HTMLAttributes,\n VariantProps {}\n\nexport const DescriptionTerm = forwardRef(\n ({ variant, className, ...props }, ref) => {\n return (\n \n )\n }\n)\n\nconst descriptionDetailsVariants = cva(\"col-span-3\", {\n variants: {\n variant: {\n inline: \"text-sm\",\n },\n },\n})\n\ninterface DescriptionDetailsProps\n extends React.HTMLAttributes,\n VariantProps {}\n\nexport const DescriptionDetails = forwardRef<\n HTMLElement,\n DescriptionDetailsProps\n>(({ variant, className, ...props }, ref) => {\n return (\n \n )\n})\n","import { forwardRef, useEffect, useMemo } from \"react\"\nimport { AhoyEventTypeEnum, TierLevelEnum } from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardHeader, CardTitle, CardContent, CardFooter } from \"~/ui/card\"\nimport {\n DescriptionDetails,\n DescriptionList,\n DescriptionTerm,\n} from \"~/ui/DescriptionList\"\nimport { gql } from \"~/__generated__\"\nimport { useQuery } from \"@apollo/client\"\nimport { Skeleton } from \"~/ui/skeleton\"\nimport { formatCalendarDate } from \"~/common/formatDate\"\nimport { formatDate } from \"date-fns\"\nimport { useSubscription } from \"./SubscriptionProvider\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { SubscriptionOverview } from \"./SubscriptionOverview\"\nimport { useTiers } from \"~/tiers/TiersProvider\"\n\nexport const SubscriptionManagementModule = forwardRef(\n (props, ref) => {\n const { logEvent } = useLogEvent()\n const { subscription, setSubscription, openSubscriptionWizard } =\n useSubscription()\n const currentUser = useCurrentUser()\n const { data, loading } = useQuery(FETCH_SUBSCRIPTION, {\n variables: { id: currentUser.id },\n })\n const { formatTierName, tiers } = useTiers()\n\n useEffect(() => {\n setSubscription(data?.user?.activeStripeSubscription || null)\n }, [data, setSubscription])\n\n const startDate = useMemo(() => {\n if (loading) return \n if (!subscription?.startDate) return \"N/A\"\n\n return formatCalendarDate(subscription.startDate, \"MMM d, yyyy\")\n }, [subscription, loading])\n\n const handleManageSubscriptionClicked = () => {\n logEvent(AhoyEventTypeEnum.ManageSubscriptionClicked)\n openSubscriptionWizard(\"IntakeStep\")\n }\n\n const handleUpgradeClicked = () => {\n openSubscriptionWizard(\"PricingTableStep\", {\n source: \"SubscriptionManagementModule\",\n })\n }\n\n const topTier = tiers[tiers.length - 1]\n\n return (\n \n \n Manage Membership\n \n \n \n Member Since\n {startDate}\n Membership Tier\n \n {formatTierName(currentUser.tier, currentUser.tierInterval)}\n \n {subscription?.cancelAt && (\n <>\n Expires On\n \n {formatDate(subscription.cancelAt, \"MMM d, yyyy\")}\n \n \n )}\n \n {currentUser.tier?.level !== TierLevelEnum.Free && (\n \n )}\n \n \n
\n {subscription && currentUser.tier?.level !== TierLevelEnum.Free && (\n \n {loading ? \"Loading...\" : \"Manage Subscription\"}\n \n )}\n\n {currentUser.tier?.level !== topTier.level && (\n \n Upgrade\n \n )}\n
\n
\n
\n )\n }\n)\n\nconst FETCH_SUBSCRIPTION = gql(`\n query FetchSubscription($id: ID!) {\n user(userId: $id) {\n activeStripeSubscription {\n ...StripeSubscriptionWithoutStatusHistory\n }\n }\n }\n`)\n","import { useState, useCallback } from \"react\"\n\nexport function useForceUpdate() {\n const [, setTick] = useState(0)\n const update = useCallback(() => {\n setTick((tick) => tick + 1)\n }, [])\n return update\n}\n","import { RefObject, useEffect, useMemo, useRef } from \"react\"\nimport { useLocation, useNavigate } from \"react-router-dom\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport {\n editIntroductionsPath,\n editNotificationsPath,\n editSubscriptionPath,\n} from \"~/common/paths\"\nimport { cn } from \"~/lib/utils\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport ArrowLeft from \"~/images/icons/arrow-left.svg?react\"\nimport { IntroductionsSettingsModule } from \"~/introduction-cycles/IntroductionsSettingsModule\"\nimport { useAuthenticatedLayout } from \"~/layouts/AuthenticatedLayout\"\nimport { Button, buttonVariants } from \"~/ui/button\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { SubscriptionManagementModule } from \"~/subscriptions/SubscriptionManagementModule\"\nimport { Link } from \"~/ui/Link\"\nimport { useForceUpdate } from \"~/common/useForceUpdate\"\nimport { FormProvider, useForm } from \"react-hook-form\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { gql } from \"@apollo/client/core\"\nimport { toast } from \"react-hot-toast\"\nimport { displayErrors } from \"~/common/validations\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { CheckboxField } from \"~/components/forms/CheckboxField\"\n\nexport const AccountSettingsScreen = () => {\n const navigate = useNavigate()\n const location = useLocation()\n const forceUpdate = useForceUpdate()\n const currentUser = useCurrentUser()\n const ccls = useCommunityClassname()\n\n interface IFormInput {\n discussions: boolean\n directMessaging: boolean\n library: boolean\n }\n\n const form = useForm()\n\n useEffect(\n () =>\n form.reset(\n {\n discussions: currentUser.notificationPreferences?.discussions,\n directMessaging: currentUser.notificationPreferences?.directMessaging,\n library: currentUser.notificationPreferences?.library,\n },\n { keepDirtyValues: true }\n ),\n [currentUser, form]\n )\n\n const [runNotificationPreferencesUpdate, { loading: updating }] =\n useSafeMutation(NOTIFICATION_PREFERENCES_UPDATE_MUTATION)\n\n const onNotificationPreferencesSubmit = async (formData: IFormInput) => {\n const { errors } = await runNotificationPreferencesUpdate({\n variables: {\n input: formData,\n },\n })\n\n if (errors) {\n displayErrors(errors)\n return false\n } else {\n toast.success(\"Notification preferences updated!\")\n form.reset()\n }\n }\n\n const notificationPreferencesDirtyFieldsCount = useMemo(\n () => Object.keys(form.formState.dirtyFields).length,\n [form.formState]\n )\n\n const introductionsRef = useRef(null)\n const notificationsRef = useRef(null)\n const subscriptionRef = useRef(null)\n\n const scrollToRef = (ref: RefObject) => {\n if (ref.current)\n window.scrollTo({\n top: Math.max(0, ref.current.offsetTop - 30),\n behavior: \"smooth\",\n })\n }\n\n useEffect(() => {\n if (location.hash === \"#introductions\") scrollToRef(introductionsRef)\n if (location.hash === \"#notifications\") scrollToRef(notificationsRef)\n if (location.hash === \"#subscription\") scrollToRef(subscriptionRef)\n }, [location])\n\n const { setLeftSidebar, resetLeftSidebar } = useAuthenticatedLayout()\n\n useEffect(() => {\n setLeftSidebar()\n\n return () => {\n resetLeftSidebar()\n }\n }, [location, setLeftSidebar, resetLeftSidebar])\n\n // periodically rerender so we pick up changes to notification permissions.\n useEffect(() => {\n const interval = setInterval(() => {\n forceUpdate()\n }, 400)\n return () => clearInterval(interval)\n }, [forceUpdate])\n\n return (\n
\n
\n
\n navigate(-1)}\n >\n Back\n
\n
\n\n \n\n \n \n Notifications\n \n \n {!(\"Notification\" in window) ? (\n <>Notifications not supported by this browser.\n ) : Notification.permission === \"granted\" ? (\n <>Notifications are enabled!\n ) : Notification.permission === \"denied\" ? (\n <>\n Notifications are disabled. Use your browser settings to enable\n them.\n \n ) : (\n
\n
\n Would you like to enable notifications?\n
\n
\n \n
\n
\n )}\n
\n
\n\n \n \n Manage Email Notification Preferences\n \n \n \n \n
\n Select which email notifications you would like to{\" \"}\n unsubscribe from\n
\n
\n \n Discussions (sent when you are tagged in a post)\n \n }\n name=\"discussions\"\n />\n \n Direct Messaging (sent when a peer has DMed you or\n replied to your DM)\n \n }\n name=\"directMessaging\"\n />\n \n Library (sent when new premium content has been added to\n the Library)\n \n }\n name=\"library\"\n />\n
\n \n Save changes\n \n \n
\n
\n
\n\n \n
\n
\n )\n}\n\nexport const AccountSettingsNavigation = () => {\n const community = useCommunity()\n\n return (\n
\n \n Introductions Settings\n \n \n Notifications\n \n \n Manage Membership\n \n \n Contact Us\n \n
\n )\n}\n\nconst NOTIFICATION_PREFERENCES_UPDATE_MUTATION = gql`\n mutation NotificationPreferencesUpdate(\n $input: NotificationPreferencesUpdateInput!\n ) {\n notificationPreferencesUpdate(input: $input) {\n user {\n id\n notificationPreferences {\n discussions\n directMessaging\n library\n }\n }\n }\n }\n`\n","import { useCommunityClassname } from \"~/community/useCommunity\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { CommunitySlug, TierLevelEnum } from \"~/__generated__/graphql\"\nimport Medal from \"~/images/icons/medal.svg?react\"\nimport { cn } from \"~/lib/utils\"\nimport { CommunityLogo } from \"~/community/CommunityLogo\"\n\nconst TIERS: Record = {\n [TierLevelEnum.Free]: \"Free Member\",\n [TierLevelEnum.Plus]: \"Plus Member\",\n [TierLevelEnum.Pro]: \"Pro Member\",\n}\n\nconst tierDisplay = (tier?: TierLevelEnum) => TIERS[tier || TierLevelEnum.Free]\n\ntype ActivationStatus = \"Not Activated\" | \"Activating\" | \"Activated\"\n\nexport const MembershipCard = ({\n containerClassName,\n}: {\n containerClassName?: string\n}) => {\n const currentUser = useCurrentUser()\n const name = currentUser.name || \"New Member\"\n\n const ccls = useCommunityClassname()\n\n let status: ActivationStatus = \"Not Activated\"\n if (currentUser.fit) {\n status = \"Activated\"\n } else if (currentUser.fitWaiting) {\n status = \"Activating\"\n }\n\n return (\n \n
\n \n\n \n {status}\n
\n \n
5892 7629 1003 2241
\n
\n
{name}
\n
\n \n {tierDisplay(currentUser.tier?.level)}\n
\n
\n \n )\n}\n","import { USER_UPDATE_MUTATION } from \"~/common/userUpdateMutation\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\n\nexport const useQaFitHelper = () => {\n const [runUserUpdate] = useSafeMutation(USER_UPDATE_MUTATION)\n\n const qaMarkFit = async ({ fit }: { fit: boolean }) => {\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n fit,\n },\n },\n })\n if (errors) {\n displayErrors(errors)\n }\n }\n\n return { qaMarkFit }\n}\n","import { useMemo } from \"react\"\nimport { CurrentUserProviderQuery, UserRoleEnum } from \"~/__generated__/graphql\"\nimport { cn } from \"~/lib/utils\"\nimport { UserName } from \"~/directory/UserName\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { FakeButton } from \"~/ui/button\"\nimport { MailOpen } from \"lucide-react\"\n\nexport interface OnboardingCardDataType {\n id: string\n firstName?: string | null | undefined\n lastName?: string | null | undefined\n companyName?: string | null | undefined\n jobTitle?: string | null | undefined\n photoUrl?: string | null | undefined\n location?: string | null | undefined\n bio?: string | null | undefined\n interests?: string[] | null | undefined\n expertise?: string[] | null | undefined\n coach?: boolean\n admin?: boolean\n role: UserRoleEnum\n}\n\nexport const OnboardingCard = ({\n user,\n formData,\n inlined,\n className,\n withFakeMessageButton,\n}: {\n user?: NonNullable\n formData?: OnboardingCardDataType\n inlined?: boolean\n className?: string\n withFakeMessageButton?: boolean\n}) => {\n const data = useMemo(() => {\n return Object.assign(\n user\n ? {\n id: user.id,\n firstName: user.firstName,\n lastName: user.lastName,\n companyName: user.companyName,\n jobTitle: user.jobTitle,\n location: user.place?.full,\n photoUrl: user.photoUrl,\n bio: user.bio,\n interests: user.interests.map((tag) => tag.name),\n expertise: user.expertise.map((tag) => tag.name),\n admin: !!user.admin,\n coach: !!user.coach,\n role: user.role,\n }\n : {},\n formData || {}\n ) as OnboardingCardDataType\n }, [user, formData])\n\n return (\n \n \n
\n \n
\n {data.jobTitle && data.jobTitle.length > 0 && (\n
{data.jobTitle}
\n )}\n {(data.companyName?.length || data.location?.length) && (\n
\n {data.companyName}\n {data.companyName?.length && data.location?.length ? \" - \" : \"\"}\n {data.location}\n
\n )}\n {data.bio &&
{data.bio}
}\n {data.interests && data.interests.length > 0 && (\n
\n EXCITED ABOUT\n
\n {data.interests.map((s) => (\n
\n {s}\n
\n ))}\n
\n
\n )}\n {data.expertise && data.expertise.length > 0 && (\n
\n EXPERTISE\n
\n {data.expertise.map((s) => (\n
\n {s}\n
\n ))}\n
\n
\n )}\n {withFakeMessageButton && (\n \n \n Message\n \n )}\n \n )\n}\n","import { OnboardingLayout } from \"~/layouts/OnboardingLayout\"\nimport { OnboardingTitle } from \"~/ui/Onboarding\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { USER_UPDATE_MUTATION } from \"~/common/userUpdateMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport {\n AhoyEventTypeEnum,\n DebugSettingKeyEnum,\n OnboardingStateEnum,\n TierIntervalEnum,\n TierLevelEnum,\n UserOffer_DisplayFragment,\n} from \"~/__generated__/graphql\"\nimport { useSubscription } from \"~/subscriptions/SubscriptionProvider\"\nimport { MembershipCard } from \"~/users/MembershipCard\"\nimport { useCommunity, useDebugSettings } from \"~/community/useCommunity\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useQuery } from \"@apollo/client\"\nimport { CURRENT_USER_QUERY_DOCUMENT } from \"~/auth/currentUserQuery\"\nimport { useQaFitHelper } from \"~/users/useQaFitHelper\"\nimport { Button } from \"~/ui/button\"\nimport { useEffect, useRef, useState } from \"react\"\nimport { cn } from \"~/lib/utils\"\nimport ReactPlayer from \"react-player\"\nimport { useNavigate } from \"react-router-dom\"\nimport { feedPath, unfitPath } from \"~/common/paths\"\nimport { Trans, useTranslation } from \"react-i18next\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { z } from \"zod\"\nimport { FormProvider, useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { OnboardingBioField } from \"~/components/onboarding/OnboardingBioField\"\nimport { OnboardingCard } from \"~/components/onboarding/OnboardingCard\"\nimport { Check } from \"lucide-react\"\nimport toast from \"react-hot-toast\"\nimport { Transition } from \"@headlessui/react\"\nimport { useConfirm } from \"~/ui/Confirm\"\nimport { useUserOffers } from \"~/offers/UserOffersProvider\"\n\nexport const FitWaitingScreen = () => {\n const currentUser = useCurrentUser()\n const navigate = useNavigate()\n\n useEffect(() => {\n if (currentUser.fit === false) {\n navigate(unfitPath.pattern)\n }\n }, [navigate, currentUser])\n\n return (\n \n {currentUser.fit ? : }\n \n )\n}\n\nconst CardAndVideo = () => {\n const community = useCommunity()\n const [isFlipped, setIsFlipped] = useState(false)\n const navigate = useNavigate()\n const { t } = useTranslation(\"community\")\n const { logEvent } = useLogEvent()\n\n const [runUserUpdate] = useSafeMutation(USER_UPDATE_MUTATION)\n\n const onFlip = () => {\n logEvent(AhoyEventTypeEnum.PageViewed, {\n sub_page: \"You're In\",\n })\n setIsFlipped(true)\n }\n\n const onComplete = async () => {\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n onboardingState: OnboardingStateEnum.Completed,\n },\n },\n })\n if (errors) {\n displayErrors(errors)\n } else {\n logEvent(AhoyEventTypeEnum.OnboardingCompleted)\n navigate(feedPath.pattern)\n }\n }\n\n return (\n <>\n Welcome to {community.name}\n\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n\n {isFlipped ? (\n <>\n
\n \n
\n \n Go to {community.name}\n \n \n ) : (\n <>\n \n Continue\n \n \n )}\n \n \n )\n}\n\nconst bioFormSchema = z.object({\n bio: z.string(),\n})\n\nexport type BioFormValues = z.infer\n\nconst Waiting = () => {\n const { debugSettings } = useDebugSettings()\n const { openSubscriptionWizard } = useSubscription()\n const currentUser = useCurrentUser()\n useQuery(CURRENT_USER_QUERY_DOCUMENT, { pollInterval: 30000 })\n const { qaMarkFit } = useQaFitHelper()\n const [loading, setLoading] = useState(false)\n const { areApplicationsPaused } = useCommunity()\n\n const [runUserUpdate] = useSafeMutation(USER_UPDATE_MUTATION)\n\n const [needsBio, setNeedsBio] = useState(!currentUser.bio)\n const [bioSubmitted, setBioSubmitted] = useState(false)\n const showConfirm = useConfirm()\n\n const form = useForm({\n resolver: zodResolver(bioFormSchema),\n defaultValues: {\n bio: currentUser.bio || \"\",\n },\n })\n\n const onSubmit = async (formData: BioFormValues) => {\n setLoading(true)\n await runUserUpdate({\n variables: {\n input: formData,\n },\n })\n setBioSubmitted(true)\n toast.success(\"Bio updated!\")\n setLoading(false)\n setTimeout(() => {\n setNeedsBio(false)\n }, 2000)\n }\n\n const { t } = useTranslation(\"onboarding\")\n const hasOpenedApplicationsPausedModalRef = useRef(false)\n useEffect(() => {\n if (areApplicationsPaused && !hasOpenedApplicationsPausedModalRef.current) {\n hasOpenedApplicationsPausedModalRef.current = true\n showConfirm({\n title: t(\"applicationsPausedModal.title\"),\n body: (\n
\n \n
\n ),\n confirmText: t(\"applicationsPausedModal.confirmText\"),\n showCancel: false,\n showConfirm: true,\n titleClassName: \"sm:text-center\",\n footerClassName: \"sm:justify-center\",\n })\n }\n }, [areApplicationsPaused, showConfirm, t])\n\n const { getBestUserOffer } = useUserOffers()\n const upgradeSubscription = () => {\n let bestOffer: UserOffer_DisplayFragment | null = null\n\n if (currentUser.tier?.level === TierLevelEnum.Free) {\n bestOffer =\n bestOffer ||\n getBestUserOffer(TierLevelEnum.Plus, TierIntervalEnum.Quarter)\n bestOffer =\n bestOffer || getBestUserOffer(TierLevelEnum.Plus, TierIntervalEnum.Year)\n }\n\n if (currentUser.tier?.level !== TierLevelEnum.Pro) {\n bestOffer =\n bestOffer ||\n getBestUserOffer(TierLevelEnum.Pro, TierIntervalEnum.Quarter)\n bestOffer =\n bestOffer || getBestUserOffer(TierLevelEnum.Pro, TierIntervalEnum.Year)\n }\n\n if (bestOffer) {\n openSubscriptionWizard(\"SpecialOfferStep\", {\n offer: bestOffer.offer,\n source: \"FitWaitingScreen\",\n })\n } else {\n openSubscriptionWizard(\"PricingTableStep\", {\n source: \"FitWaitingScreen\",\n })\n }\n }\n\n return (\n <>\n Let's go! Thank you.\n\n
\n Our membership team is reviewing your responses.\n
\n We'll get back to you within{\" \"}\n \n {currentUser.tier?.waitPeriodHours}\n {\" \"}\n hours via email.\n
\n\n
\n \n
\n\n {currentUser.tier && currentUser.tier.level !== TierLevelEnum.Pro && (\n
\n Want to skip the line and hear back sooner?\n
\n \n Upgrade Subscription\n \n
\n )}\n\n {currentUser.tier?.level === TierLevelEnum.Pro && (\n
\n There is so much to look forward to.
\n See you in your inbox soon.\n
\n )}\n\n \n
\n
\n In the meantime, share a short bio? It helps us get to know you a\n bit better. It'll also live on your profile, but don't worry, you\n can update it later anytime!\n
\n
\n \n \n
\n \n
\n \n {bioSubmitted ? (\n \n ) : (\n \"Submit Bio\"\n )}\n \n
\n \n
\n
\n
\n \n\n {debugSettings &&\n debugSettings[DebugSettingKeyEnum.MarkFitOnWaitingScreen] && (\n
\n qaMarkFit({ fit: false })}\n theme=\"destructive\"\n >\n Mark Unfit (QA)\n \n qaMarkFit({ fit: true })}\n variant=\"filled\"\n theme=\"success\"\n className=\"ml-2\"\n >\n Mark Fit (QA)\n \n
\n )}\n \n )\n}\n","import { OnboardingLayout } from \"~/layouts/OnboardingLayout\"\nimport { OnboardingTitle } from \"~/ui/Onboarding\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { LinkButton } from \"~/ui/button\"\nimport { feedPath } from \"~/common/paths\"\nimport { useNavigate } from \"react-router-dom\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useEffect } from \"react\"\nimport { CommunityName } from \"~/community/CommunityName\"\nimport { Trans } from \"react-i18next\"\nimport { Link } from \"~/ui/Link\"\n\nexport const UnfitScreen = () => {\n const community = useCommunity()\n\n const currentUser = useCurrentUser()\n const navigate = useNavigate()\n\n useEffect(() => {\n if (currentUser.fit !== false) {\n navigate(feedPath.pattern)\n }\n }, [navigate, currentUser])\n\n return (\n \n \n \n \n
\n
\n ,\n EmailLink: (\n \n memberships@workweek.com\n \n ),\n }}\n />\n
\n \n Back to \n \n
\n
\n )\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { useQuery } from \"@apollo/client\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport { feedPath, subscriberAgreementPath } from \"~/common/paths\"\nimport ReactMarkdown from \"react-markdown\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { Link } from \"~/ui/Link\"\n\ntype LegalPolicy = \"subscriberAgreement\" | \"privacyPolicy\"\n\nexport const LegalPolicyScreen = ({ policy }: { policy: LegalPolicy }) => {\n const { data, loading } = useQuery(LEGAL_POLICIES_QUERY_DOCUMENT)\n const navigate = useNavigate()\n const community = useCommunity()\n\n if (loading) return null\n if (!data?.legalPolicies[policy]) {\n toast.error(\"Could not find requested legal policy\")\n navigate(feedPath.pattern)\n return\n }\n\n return (\n
\n
\n (\n \n {children}\n \n ),\n h1: ({ node, children, ...other }) => (\n

\n {children}\n

\n ),\n h2: ({ node, children, ...other }) => (\n

\n {children}\n

\n ),\n h3: ({ node, children, ...other }) => (\n

\n {children}\n

\n ),\n h4: ({ node, children, ...other }) => (\n

\n {children}\n

\n ),\n h5: ({ node, children, ...other }) => (\n
\n {children}\n
\n ),\n h6: ({ node, children, ...other }) => (\n
\n {children}\n
\n ),\n li: ({ node, ...other }) =>
  • ,\n ol: ({ node, ...other }) => (\n \n ),\n p: ({ node, ...other }) => (\n

    \n ),\n ul: ({ node, ...other }) => (\n \n ),\n }}\n >\n {data.legalPolicies[policy]}\n \n

  • \n
    \n
    \n
    \n © {new Date().getFullYear()} {community.brand}\n
    \n Subscriber Agreement\n {/* \n Privacy Policy\n */}\n
    \n
    \n
    \n )\n}\n\nconst LEGAL_POLICIES_QUERY_DOCUMENT = gql(`\n query LegalPolicies {\n legalPolicies {\n subscriberAgreement\n privacyPolicy\n }\n }\n`)\n","import { Card, CardContent } from \"~/ui/card\"\nimport { Switch } from \"~/ui/switch\"\n\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { Bug } from \"lucide-react\"\nimport { useEffect } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport toast from \"react-hot-toast\"\nimport { z } from \"zod\"\nimport { gql } from \"~/__generated__\"\nimport { DebugSettingKeyEnum, JobClassEnum } from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { useDebugSettings } from \"~/community/useCommunity\"\nimport { Button } from \"~/ui/button\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n} from \"~/ui/form\"\nimport { Label } from \"~/ui/label\"\n\nconst FormSchema = z.object({\n autoOnboarding: z.boolean(),\n markFitOnWaitingScreen: z.boolean(),\n})\n\nexport const AdminDebugSettingsScreen = () => {\n const { debugSettings, loading } = useDebugSettings()\n const [upsertDebugSetting] = useSafeMutation(UPSERT_DEBUG_SETTING_MUTATION)\n const [runJob] = useSafeMutation(RUN_JOB_MUTATION)\n\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n defaultValues: {\n autoOnboarding: false,\n markFitOnWaitingScreen: false,\n },\n })\n\n const onSubmit = async (data: z.infer) => {\n const results = await Promise.all([\n upsertDebugSetting({\n variables: {\n input: {\n key: DebugSettingKeyEnum.AutoOnboarding,\n valueBoolean: data.autoOnboarding,\n },\n },\n }),\n\n upsertDebugSetting({\n variables: {\n input: {\n key: DebugSettingKeyEnum.MarkFitOnWaitingScreen,\n valueBoolean: data.markFitOnWaitingScreen,\n },\n },\n }),\n ])\n\n if (results.some((result) => result.errors)) {\n return toast.error(\"Failed to save settings\")\n }\n\n toast.success(\"Settings saved\")\n }\n\n const doRunJob = async (jobClass: JobClassEnum) => {\n const { data, errors } = await runJob({\n variables: {\n input: {\n jobClass,\n },\n },\n })\n\n if (errors) {\n return toast.error(\"Failed to run job\")\n }\n\n toast.success(`Job ${data?.jobRun.job.jobId} started`)\n }\n\n useEffect(() => {\n if (loading || !debugSettings) return\n\n form.reset({\n autoOnboarding: !!debugSettings[DebugSettingKeyEnum.AutoOnboarding],\n markFitOnWaitingScreen:\n !!debugSettings[DebugSettingKeyEnum.MarkFitOnWaitingScreen],\n })\n }, [form, debugSettings, loading])\n\n if (loading) {\n return null\n }\n\n return (\n <>\n \n
    \n \n \n
    \n \n
    \n
    \n (\n \n
    \n \n Auto Onboarding\n \n \n After subscribing via Stripe, automatically\n complete the application and onboarding processes.\n \n
    \n \n \n \n
    \n )}\n />\n (\n \n
    \n \n Mark Fit from Waiting Screen\n \n \n Show buttons on the waiting screen allowing you to\n mark the current user as fit or unfit.\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 Fire events for users who are celebrating a birthday or\n anniversary today.\n

    \n
    \n \n doRunJob(JobClassEnum.FireCelebrationAnniversaryEventsJob)\n }\n >\n Fire Events\n \n
    \n
    \n
    \n
    \n \n )\n}\n\nconst UPSERT_DEBUG_SETTING_MUTATION = gql(`\n mutation UpsertDebugSetting($input: DebugSettingUpsertInput!) {\n debugSettingUpsert(input: $input) {\n debugSetting {\n id\n key\n value\n valueBoolean\n valueString\n valueInteger\n valueDatetime\n valueJson\n }\n }\n }\n`)\n\nexport const RUN_JOB_MUTATION = gql(`\n mutation RunJob($input: JobRunInput!) {\n jobRun(input: $input) {\n job {\n jobId\n }\n }\n }\n`)\n","import { useQuery } from \"@apollo/client\"\nimport { DotsHorizontalIcon } from \"@radix-ui/react-icons\"\nimport { useEffect, useMemo, useRef, useState } from \"react\"\nimport { useNavigate, useParams } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport {\n Automation_AdminFragment,\n AutomationCategoryEnum,\n AutomationRun_AdminFragment,\n JobClassEnum,\n RulesEngineEffectTypeEnum,\n} from \"~/__generated__/graphql\"\nimport { adminAutoMessageEditPath, adminAutoMessagesPath } from \"~/common/paths\"\nimport { cn } from \"~/lib/utils\"\nimport { Badge } from \"~/ui/badge\"\nimport { Button } from \"~/ui/button\"\nimport { Card } from \"~/ui/card\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport {\n Table,\n TableBody,\n TableHead,\n TableHeader,\n TableRow,\n TableCell,\n} from \"~/ui/table\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"~/ui/tabs\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { RUN_JOB_MUTATION } from \"../AdminDebugSettingsScreen\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport toast from \"react-hot-toast\"\nimport { UserName } from \"~/directory/UserName\"\nimport { useUserDialogContext } from \"~/directory/UserDialogContext\"\nimport { formatDate } from \"~/common/formatDate\"\nimport { FormattedContent } from \"~/components/FormattedContent\"\nimport { IconButton } from \"~/ui/IconButton\"\nimport {\n ChevronDownIcon,\n ChevronRightIcon,\n MessageSquareCode,\n} from \"lucide-react\"\nimport { Label } from \"~/ui/label\"\nimport { UserNameAndAvatar } from \"~/directory/UserNameAndAvatar\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\n\nexport const AdminAutoMessagesScreen = () => {\n const navigate = useNavigate()\n const { activeTab: activeTabFromParams } = useParams()\n const [activeTab, setActiveTab] = useState(activeTabFromParams || \"\")\n\n useEffect(() => {\n if (activeTab !== activeTabFromParams) {\n navigate(adminAutoMessagesPath({ \"activeTab?\": activeTab }))\n }\n }, [activeTab, activeTabFromParams, navigate])\n\n const onTabChange = (tab: string) => {\n setActiveTab(tab)\n }\n\n return (\n <>\n \n \n navigate(adminAutoMessageEditPath({ automationId: \"new\" }))\n }\n >\n New Auto Message\n \n
    \n \n \n Configurations\n Previous Runs\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst AutomationsTable = () => {\n const {\n data: currentData,\n previousData,\n loading,\n fetchMore,\n } = useQuery(AUTO_MESSAGES_QUERY_DOCUMENT, {\n variables: {\n categories: [AutomationCategoryEnum.AutoMessage],\n },\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-and-network\",\n })\n\n const data = currentData || previousData\n\n const automations: any[] = useMemo(() => {\n return data?.automations?.edges.map((e) => e.node) || []\n }, [data])\n\n const hasNextPage = !!data?.automations?.pageInfo.hasNextPage\n\n return (\n <>\n {(automations.length > 0 || loading) && (\n \n \n \n \n Name\n Sender\n Trigger Event\n Active\n Actions\n \n \n \n {automations.length > 0 &&\n automations.map((automation) => (\n \n ))}\n \n
    \n
    \n )}\n\n {!loading && automations.length === 0 && (\n
    No automations found.
    \n )}\n\n
    \n \n fetchMore({\n variables: {\n after: data?.automations?.pageInfo.endCursor,\n },\n })\n }\n canLoadMore={!loading && hasNextPage}\n loadingText=\"Loading more automations...\"\n loading={loading && automations.length > 0 && hasNextPage}\n />\n
    \n \n )\n}\n\nconst AutomationRow = ({\n automation,\n}: {\n automation: Automation_AdminFragment\n}) => {\n const currentUser = useCurrentUser()\n const navigate = useNavigate()\n const contextMenuTriggerRef = useRef(null)\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n const [runJob] = useSafeMutation(RUN_JOB_MUTATION)\n const sendTestMessage = async () => {\n const { data, errors } = await runJob({\n variables: {\n input: {\n jobClass: JobClassEnum.RunAutomationJob,\n kwargs: {\n automation_id: automation.id,\n user_id: currentUser.id,\n force: true,\n },\n },\n },\n })\n\n if (errors) {\n return toast.error(\"Failed to run automation\")\n }\n\n toast.success(`Automation ${data?.jobRun.job.jobId} started`)\n }\n\n const fromUserId = useMemo(() => {\n return automation.effects.find(\n (effect: any) =>\n effect.type === RulesEngineEffectTypeEnum.SendDirectMessage\n )?.params.from_user_id\n }, [automation.effects])\n\n return (\n \n \n \n navigate(adminAutoMessageEditPath({ automationId: automation.id }))\n }\n >\n Edit Auto Message\n \n \n Send Test Message\n \n \n \n \n \n
    {automation.name}
    \n
    \n\n \n \n \n\n \n {automation.triggerEventName}\n \n\n \n \n {automation.active ? \"Yes\" : \"No\"}\n \n \n\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n )\n}\n\nconst AutomationRunsTable = () => {\n const {\n data: currentData,\n previousData,\n loading,\n fetchMore,\n } = useQuery(AUTOMATION_RUNS_QUERY_DOCUMENT, {\n variables: {\n categories: [AutomationCategoryEnum.AutoMessage],\n },\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-and-network\",\n })\n\n const data = currentData || previousData\n\n const automationRuns: any[] = useMemo(() => {\n return data?.automationRuns?.edges.map((e) => e.node) || []\n }, [data])\n\n const hasNextPage = !!data?.automationRuns?.pageInfo.hasNextPage\n\n return (\n <>\n {(automationRuns.length > 0 || loading) && (\n \n \n \n \n Auto Message Name\n To\n From\n Sent At\n Actions\n \n \n \n {automationRuns.length > 0 &&\n automationRuns.map((automationRun) => (\n \n ))}\n \n
    \n
    \n )}\n\n {!loading && automationRuns.length === 0 && (\n
    \n No automation runs found.\n
    \n )}\n\n
    \n \n fetchMore({\n variables: {\n after: data?.automationRuns?.pageInfo.endCursor,\n },\n })\n }\n canLoadMore={!loading && hasNextPage}\n loadingText=\"Loading more automation runs...\"\n loading={loading && automationRuns.length > 0 && hasNextPage}\n />\n
    \n \n )\n}\n\nconst AutomationRunRow = ({\n automationRun,\n}: {\n automationRun: AutomationRun_AdminFragment\n}) => {\n const navigate = useNavigate()\n const contextMenuTriggerRef = useRef(null)\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n const sendDirectMessageOutput = useMemo(() => {\n return automationRun.outputs.find(\n (o: any) => o.effect_type === RulesEngineEffectTypeEnum.SendDirectMessage\n )\n }, [automationRun.outputs])\n\n const { openUserDialog } = useUserDialogContext()\n\n const [isExpanded, setIsExpanded] = useState(false)\n\n return (\n <>\n \n \n \n navigate(\n adminAutoMessageEditPath({\n automationId: automationRun.automation.id,\n })\n )\n }\n >\n View Auto Message\n \n \n \n \n \n
    \n setIsExpanded(!isExpanded)}>\n {isExpanded ? (\n \n ) : (\n \n )}\n \n {automationRun.automation.name}\n
    \n
    \n\n \n {automationRun.user && (\n openUserDialog(automationRun.user!.id)}\n >\n \n
    \n \n
    \n \n )}\n
    \n\n \n openUserDialog(automationRun.user!.id)}\n >\n
    \n {sendDirectMessageOutput?.from_user_name}\n
    \n \n
    \n\n \n {formatDate(automationRun.createdAt, \"MMM d, yyyy @ h:mm a\")}\n \n\n \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n \n
    \n
    \n
    \n \n )\n}\n\ngql(`\n fragment RulesEngineEffect_Admin on RulesEngineEffect {\n id\n type\n priority\n params\n }\n`)\n\ngql(`\n fragment RulesEngineCondition_Leaf on RulesEngineCondition {\n fact\n operator\n valueString\n valueInteger\n valueFloat\n valueFromFact\n defaultValue\n defaultFactValue\n }\n\n fragment RulesEngineCondition_Nestable on RulesEngineCondition {\n all {\n all { ...RulesEngineCondition_Leaf }\n any { ...RulesEngineCondition_Leaf }\n ...RulesEngineCondition_Leaf\n }\n any {\n all { ...RulesEngineCondition_Leaf }\n any { ...RulesEngineCondition_Leaf }\n ...RulesEngineCondition_Leaf\n }\n ...RulesEngineCondition_Leaf\n }\n`)\n\ngql(`\n fragment Automation_Admin on Automation {\n id\n category\n name\n description\n active\n triggerEventName\n triggerDelaySeconds\n conditions\n effects {\n ...RulesEngineEffect_Admin\n }\n }\n`)\n\nconst AUTO_MESSAGES_QUERY_DOCUMENT = gql(`\n query AutoMessages(\n $categories: [AutomationCategoryEnum!],\n $first: Int,\n $after: String,\n ) {\n automations(\n categories: $categories,\n first: $first,\n after: $after\n ) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ...Automation_Admin\n }\n }\n }\n\n }\n`)\n\ngql(`\n fragment AutomationRun_Admin on AutomationRun {\n id\n createdAt\n outputs\n user {\n ...User_Avatar\n }\n automation {\n ...Automation_Admin\n }\n }\n`)\n\nconst AUTOMATION_RUNS_QUERY_DOCUMENT = gql(`\n query AutomationRunsQuery(\n $categories: [AutomationCategoryEnum!],\n $first: Int,\n $after: String,\n ) {\n automationRuns(\n categories: $categories,\n first: $first,\n after: $after\n ) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ...AutomationRun_Admin\n }\n }\n }\n\n }\n`)\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useMemo, useRef, useState } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\nimport {\n AutomationCategoryEnum,\n AutomationCreateInput,\n RulesEngineEffectTypeEnum,\n RulesEngineEventTypeEnum,\n User_AvatarFragment,\n} from \"~/__generated__/graphql\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { SelectField } from \"~/components/forms/SelectField\"\nimport { TextareaField } from \"~/components/forms/TextareaField\"\nimport { TextField } from \"~/components/forms/TextField\"\nimport { ToggleField } from \"~/components/forms/ToggleField\"\nimport { UserSelectField } from \"~/components/forms/UserSelectField\"\nimport { ComposerHandle, PostComposer } from \"~/post-composer/PostComposer\"\nimport { Alert } from \"~/ui/alert\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport {\n FormField,\n FormItem,\n FormLabel,\n FormControl,\n FormMessage,\n Form,\n FormDescription,\n} from \"~/ui/form\"\nimport { useTiers } from \"~/tiers/TiersProvider\"\n\nconst automationFormSchema = z.object({\n name: z.string().min(1, {\n message: \"Name is required\",\n }),\n description: z.string(),\n active: z.boolean(),\n userId: z.string(),\n tierLevel: z.string(),\n triggerEventName: z.string(),\n delayCount: z.coerce.number(),\n delayUnit: z.string(),\n postParams: z.any(),\n})\n\nexport type AutomationFormValues = z.infer\n\nconst defaultTierSelectEntry = { label: \"All Tiers\", value: \"all\" }\n\nconst delayUnitSelectEntries = [\n { label: \"Minute(s)\", value: \"minute\" },\n { label: \"Hour(s)\", value: \"hour\" },\n { label: \"Day(s)\", value: \"day\" },\n]\n\nexport const AutoMessageForm = ({\n onSubmit: _onSubmit,\n defaultValues,\n}: {\n onSubmit: (input: AutomationCreateInput) => void\n defaultValues?: AutomationFormValues & { rulesEventEngineId?: string }\n}) => {\n const currentUser = useCurrentUser()\n const { tiers } = useTiers()\n const [loading, setLoading] = useState(false)\n\n const form = useForm({\n resolver: zodResolver(automationFormSchema),\n defaultValues: {\n name: \"\",\n description: \"\",\n active: false,\n userId: currentUser.id,\n tierLevel: defaultTierSelectEntry.value,\n triggerEventName: RulesEngineEventTypeEnum.UserFinishedOnboarding,\n delayCount: 0,\n delayUnit: \"day\",\n postParams: {},\n ...(defaultValues || {}),\n },\n })\n\n const onSubmit = async ({\n delayCount,\n delayUnit,\n tierLevel,\n userId,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n postParams,\n triggerEventName,\n ...values\n }: AutomationFormValues) => {\n setLoading(true)\n\n const conditions: any = {\n all: [{ fact: \"user_run_count\", operator: \"equal\", value: 0 }],\n }\n\n const triggerDelaySeconds = (() => {\n if (\n triggerEventName !== RulesEngineEventTypeEnum.UserFinishedOnboarding\n ) {\n return 0\n }\n\n switch (delayUnit) {\n case \"minute\":\n return delayCount * 60\n case \"hour\":\n return delayCount * 60 * 60\n case \"day\":\n return delayCount * 60 * 60 * 24\n default:\n return delayCount\n }\n })()\n\n if (tierLevel !== \"all\") {\n conditions.all.push({\n fact: \"user.tier.level\",\n operator: \"equal\",\n value: tierLevel,\n })\n }\n\n // Change camelcase keys from postComposerRef.current.getPostData() to snakecase\n const postParamsSnakecase = Object.fromEntries(\n Object.entries(postComposerRef.current?.getPostData() || {}).map(\n ([key, value]) => [key.replace(/([A-Z])/g, \"_$1\").toLowerCase(), value]\n )\n )\n\n _onSubmit({\n ...values,\n category: AutomationCategoryEnum.AutoMessage,\n triggerEventName: triggerEventName as RulesEngineEventTypeEnum,\n triggerDelaySeconds,\n conditions,\n effects: [\n {\n type: RulesEngineEffectTypeEnum.SendDirectMessage,\n params: {\n from_user_id: userId,\n post_params: postParamsSnakecase,\n },\n },\n ],\n })\n }\n\n const tierSelectEntries = useMemo(() => {\n return [\n defaultTierSelectEntry,\n ...tiers.map((tier) => ({\n label: tier.name,\n value: tier.level.toLowerCase(),\n })),\n ]\n }, [tiers])\n\n const triggerEventNameSelectEntries = useMemo(() => {\n return [\n {\n label: \"After user onboards\",\n value: RulesEngineEventTypeEnum.UserFinishedOnboarding,\n },\n {\n label: \"On the user's birthday at 10 AM ET\",\n value: RulesEngineEventTypeEnum.CelebrationBirthdayOccurred,\n },\n {\n label: \"On the user's work anniversary at 11 AM ET\",\n value: RulesEngineEventTypeEnum.CelebrationWorkAnniversaryOccurred,\n },\n {\n label: \"On the user's toxic workplace breakup anniversary at 11 AM ET\",\n value:\n RulesEngineEventTypeEnum.CelebrationToxicWorkplaceBreakupOccurred,\n },\n ]\n }, [])\n\n const postComposerRef = useRef(null)\n const [selectedUser, setSelectedUser] = useState(\n null\n )\n\n return (\n \n \n
    \n \n
    \n \n \n \n (\n \n Message Copy\n \n \n The following variables are available for use in your\n message:\n
      \n
    • \n {\"{{first_name}}\"} - User's name\n
    • \n
    • \n {\"{{last_name}}\"} - User's last name\n
    • \n
    • \n {\"{{email}}\"} - User's email\n
    • \n
    • \n {\"{{tier}}\"} - User's tier name\n
    • \n
    • \n {\"{{community_name}}\"} - Community name\n
    • \n
    • \n {\"{{community_brand}}\"} - Community\n brand\n
    • \n
    \n
    \n
    \n \n \n \n \n
    \n )}\n />\n \n
    \n {form.watch(\"triggerEventName\") ===\n RulesEngineEventTypeEnum.UserFinishedOnboarding && (\n <>\n \n \n \n )}\n \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n )\n}\n","import { MessageSquareCode } from \"lucide-react\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport {\n AutomationCategoryEnum,\n AutomationCreateInput,\n} from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { AutoMessageForm } from \"~/admin/AutoMessageForm\"\nimport { adminAutoMessagesPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\n\nexport const AdminAutoMessagesNewScreen = () => {\n const navigate = useNavigate()\n const [runCreateAutomation] = useSafeMutation(AUTOMATION_CREATE_MUTATION)\n\n const onSubmit = async (input: AutomationCreateInput) => {\n const { errors } = await runCreateAutomation({\n variables: {\n input: {\n ...input,\n category: AutomationCategoryEnum.AutoMessage,\n },\n },\n })\n\n if (errors) {\n toast.error(\"Failed to create auto message\")\n console.log(errors)\n } else {\n toast.success(\"Created auto message\")\n navigate(adminAutoMessagesPath({ \"activeTab?\": \"\" }))\n }\n }\n\n return (\n <>\n \n \n \n )\n}\n\nconst AUTOMATION_CREATE_MUTATION = gql(`\n mutation AutomationCreate($input: AutomationCreateInput!) {\n automationCreate(input: $input) {\n automation {\n ...Automation_Admin\n }\n }\n }\n`)\n","import { useQuery } from \"@apollo/client\"\nimport { MessageSquareCode } from \"lucide-react\"\nimport { useCallback, useEffect, useMemo } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate, useParams } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport {\n Automation_AdminFragment,\n AutomationCategoryEnum,\n AutomationCreateInput,\n RulesEngineEffectTypeEnum,\n} from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { AutoMessageForm } from \"~/admin/AutoMessageForm\"\nimport { adminAutoMessagesPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\n\nconst defaultTierSelectEntry = { label: \"All Tiers\", value: \"all\" }\n\nexport const AdminAutoMessagesEditScreen = () => {\n const navigate = useNavigate()\n const { automationId } = useParams()\n\n const [runUpdateAutomation] = useSafeMutation(AUTOMATION_UPDATE_MUTATION)\n const { data, loading } = useQuery(AUTOMATION_QUERY_DOCUMENT, {\n variables: { id: automationId! },\n })\n\n const delay = useMemo(() => {\n if (!data?.automation) return { count: 0, unit: \"minute\" }\n\n if (data.automation.triggerDelaySeconds % 86400 === 0) {\n return { count: data.automation.triggerDelaySeconds / 86400, unit: \"day\" }\n }\n\n if (data.automation.triggerDelaySeconds % 3600 === 0) {\n return { count: data.automation.triggerDelaySeconds / 3600, unit: \"hour\" }\n }\n\n return { count: data.automation.triggerDelaySeconds / 60, unit: \"minute\" }\n }, [data])\n\n const tierLevel = useMemo(() => {\n if (!data?.automation) return defaultTierSelectEntry.value\n\n return (\n data.automation.conditions.all.find(\n (c: any) => c.fact === \"user.tier.level\"\n )?.value || defaultTierSelectEntry.value\n )\n }, [data])\n\n const postParams = useMemo(() => {\n if (!data?.automation) return {}\n\n return (\n data.automation.effects.find(\n (e: any) => e.type === RulesEngineEffectTypeEnum.SendDirectMessage\n )?.params.post_params || {}\n )\n }, [data])\n\n const onSubmit = useCallback(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async ({ effects, category, ...input }: AutomationCreateInput) => {\n if (!data?.automation) return\n const effect = data?.automation.effects.find(\n (e: any) => e.type === RulesEngineEffectTypeEnum.SendDirectMessage\n )\n if (!effect) return\n\n const { errors } = await runUpdateAutomation({\n variables: {\n automationUpdateInput: {\n id: automationId!,\n ...input,\n },\n rulesEngineEffectInput: {\n id: effect.id,\n ...effects![0],\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n toast.success(\"Updated auto message\")\n navigate(adminAutoMessagesPath({ \"activeTab?\": \"\" }))\n }\n },\n [automationId, runUpdateAutomation, data, navigate]\n )\n\n useEffect(() => {\n if (\n data?.automation &&\n data.automation.category !== AutomationCategoryEnum.AutoMessage\n ) {\n navigate(adminAutoMessagesPath({ \"activeTab?\": \"\" }))\n }\n })\n\n if (loading || !data?.automation) return null\n\n return (\n <>\n \n \n e.type === RulesEngineEffectTypeEnum.SendDirectMessage\n )?.params.from_user_id || \"\",\n tierLevel,\n triggerEventName: data.automation.triggerEventName,\n delayCount: delay.count,\n delayUnit: delay.unit,\n postParams,\n }}\n onSubmit={onSubmit}\n />\n \n )\n}\n\nconst AUTOMATION_UPDATE_MUTATION = gql(`\n mutation AutomationUpdate($automationUpdateInput: AutomationUpdateInput!, $rulesEngineEffectInput: RulesEngineEffectUpdateInput!) {\n rulesEngineEffectUpdate(input: $rulesEngineEffectInput) {\n rulesEngineEffect {\n ...RulesEngineEffect_Admin\n }\n }\n\n automationUpdate(input: $automationUpdateInput) {\n automation {\n ...Automation_Admin\n }\n }\n }\n`)\n\nconst AUTOMATION_QUERY_DOCUMENT = gql(`\n query Automation($id: ID!) {\n automation(id: $id) {\n ...Automation_Admin\n }\n }\n`)\n","import { useQuery } from \"@apollo/client\"\nimport { DotsHorizontalIcon, OpenInNewWindowIcon } from \"@radix-ui/react-icons\"\nimport { capitalCase } from \"change-case\"\nimport { useMemo, useRef } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { gql } from \"~/__generated__\"\nimport { Offer_AdminFragment } from \"~/__generated__/graphql\"\nimport { cn } from \"~/lib/utils\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { Button } from \"~/ui/button\"\nimport { Card } from \"~/ui/card\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport {\n Table,\n TableBody,\n TableHead,\n TableHeader,\n TableRow,\n TableCell,\n} from \"~/ui/table\"\nimport { useConfirm } from \"~/ui/Confirm\"\nimport { CopyToClipboard } from \"~/ui/CopyToClipboard\"\nimport { InfiniteLoadMore } from \"~/ui/InfiniteLoadMore\"\nimport { TicketPercent } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\n\nexport const AdminOffersScreen = () => {\n return (\n <>\n \n \n \n )\n}\n\nconst OffersTable = () => {\n const {\n data: currentData,\n previousData,\n loading,\n fetchMore,\n } = useQuery(OFFERS_QUERY_DOCUMENT, {\n notifyOnNetworkStatusChange: true,\n fetchPolicy: \"cache-and-network\",\n })\n\n const data = currentData || previousData\n\n const offers: any[] = useMemo(() => {\n return data?.offers?.edges.map((e) => e.node) || []\n }, [data])\n\n const hasNextPage = !!data?.offers?.pageInfo.hasNextPage\n\n return (\n <>\n {(offers.length > 0 || loading) && (\n \n \n \n \n Name\n Category\n Stripe Coupon ID\n Tier\n Actions\n \n \n \n {offers.length > 0 &&\n offers.map((offer) => (\n \n ))}\n \n
    \n
    \n )}\n\n {!loading && offers.length === 0 && (\n
    No offers found.
    \n )}\n\n
    \n \n fetchMore({\n variables: {\n after: data?.offers?.pageInfo.endCursor,\n },\n })\n }\n canLoadMore={!loading && hasNextPage}\n loadingText=\"Loading more offers...\"\n loading={loading && offers.length > 0 && hasNextPage}\n />\n
    \n \n )\n}\n\nconst OfferRow = ({ offer }: { offer: Offer_AdminFragment }) => {\n const [runUpdateOffer] = useSafeMutation(OFFERS_UPDATE_MUTATION)\n const contextMenuTriggerRef = useRef(null)\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n const showConfirm = useConfirm()\n\n const changeStripeCoupon = () => {\n showConfirm({\n title: \"Change Stripe Coupon\",\n body: \"Are you sure you want to change the Stripe coupon for this offer? This change will take place immediately.\",\n prompt: {\n label: \"Enter the new Stripe coupon ID\",\n type: \"text\",\n placeholder: \"coupon_12345\",\n value: offer.stripeCouponId,\n required: true,\n },\n onConfirm: async (value) => {\n const { errors } = await runUpdateOffer({\n variables: {\n input: {\n id: offer.id,\n stripeCouponId: value,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n return\n }\n\n toast.success(\"Offer updated.\")\n },\n })\n }\n\n const openCouponInStripe = () => {\n window.open(\n `https://dashboard.stripe.com/${\n offer.stripeCoupon.livemode ? \"\" : \"test/\"\n }coupons/${offer.stripeCouponId}`,\n \"_blank\"\n )\n }\n\n return (\n \n \n \n Change Stripe Coupon\n \n \n View Coupon on Stripe \n \n \n \n \n \n
    {offer.name}
    \n
    \n\n \n
    \n {capitalCase(offer.category)}\n
    \n
    \n\n \n \n {offer.stripeCouponId}\n \n \n\n \n {capitalCase(offer.tier?.level)}\n \n\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n )\n}\n\ngql(`\n fragment Offer_Admin on Offer {\n id\n category\n name\n stripeCouponId\n stripeCoupon {\n id\n livemode\n amountOff\n percentOff\n }\n tier {\n id\n level\n }\n effects {\n ...RulesEngineEffect_Admin\n }\n }\n`)\n\nconst OFFERS_QUERY_DOCUMENT = gql(`\n query Offers(\n $categories: [OfferCategoryEnum!],\n $first: Int,\n $after: String,\n ) {\n offers(\n categories: $categories,\n first: $first,\n after: $after\n ) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ...Offer_Admin\n }\n }\n }\n\n }\n`)\n\nconst OFFERS_UPDATE_MUTATION = gql(`\n mutation OfferUpdate($input: OfferUpdateInput!) {\n offerUpdate(input: $input) {\n offer {\n ...Offer_Admin\n }\n }\n }\n`)\n","import { DotsHorizontalIcon, EyeNoneIcon } from \"@radix-ui/react-icons\"\nimport { formatDate, parseISO } from \"date-fns\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport {\n User_AdminFragment,\n UserSortEnum,\n UserRoleEnum,\n UserUpdateInput,\n} from \"~/__generated__/graphql\"\nimport { UserDialog } from \"~/directory/UserDialog\"\nimport { Button } from \"~/ui/button\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { TableCell, TableRow } from \"~/ui/table\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { ChangeEmailModal } from \"~/admin/ChangeEmailModal\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { USER_ADMIN_UPDATE_MUTATION } from \"~/screens/admin/AdminMembersScreen\"\nimport { displayErrors } from \"~/common/validations\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"~/ui/tooltip\"\nimport {\n AdminTableHeader,\n UsersTable,\n UsersTableHandle,\n} from \"~/admin/users/UsersTable\"\nimport { UserName } from \"~/directory/UserName\"\nimport { CopyToClipboard } from \"~/ui/CopyToClipboard\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { Eye, EyeOff, UserCircle } from \"lucide-react\"\nimport { Switch } from \"~/ui/switch\"\nimport { SimpleTooltip } from \"~/ui/SimpleTooltip\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"~/ui/dialog\"\nimport { DialogProps } from \"@radix-ui/react-dialog\"\nimport { z } from \"zod\"\nimport { useForm } from \"react-hook-form\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { Form } from \"~/ui/form\"\nimport { TextField } from \"~/components/forms/TextField\"\nimport { ToggleField } from \"~/components/forms/ToggleField\"\nimport { gql } from \"~/__generated__\"\nimport toast from \"react-hot-toast\"\nimport { useConfirm } from \"~/ui/Confirm\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useTiers } from \"~/tiers/TiersProvider\"\n\nconst HEADERS: AdminTableHeader[] = [\n { label: \"Name\", isPinned: true },\n { label: \"Invite Status\" },\n { label: \"Invited On\" },\n { label: \"Onboarded On\" },\n { label: \"Visibility\" },\n { label: \"Actions\" },\n]\n\nconst pinnedColumnStyles =\n \"sticky left-0 bg-gradient-to-r from-white from-80% to-transparent group-hover:from-muted group-hover:from-80% group-hover:to-transparent\"\n\nexport const AdminAdministratorsScreen = () => {\n const currentUser = useCurrentUser()\n const [isAddAdminDialogOpen, setIsAddAdminDialogOpen] = useState(false)\n const usersTableRef = useRef(null)\n\n const onAdminCreated = useCallback(() => {\n usersTableRef.current?.refetch()\n }, [usersTableRef])\n\n return (\n <>\n \n {currentUser.currentUserCanCreateAdmin.value && (\n <>\n \n \n \n )}\n \n \n {(user) => (\n \n )}\n \n \n )\n}\n\nconst UserRow = ({\n user,\n refetch,\n}: {\n user: User_AdminFragment\n refetch?: UsersTableHandle[\"refetch\"]\n}) => {\n const { proTier } = useTiers()\n const [changeEmailModalOpen, setChangeEmailModalOpen] = useState(false)\n const [userDialogOpen, setUserDialogOpen] = useState(false)\n const [runUserUpdate] = useSafeMutation(USER_ADMIN_UPDATE_MUTATION)\n\n const contextMenuTriggerRef = useRef(null)\n\n const toggleHidden = async () => {\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n userId: user.id,\n hidden: !user.hidden,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n toast.success(user.hidden ? \"Unhidden\" : \"Hidden\")\n }\n }\n\n const toggleCoach = async () => {\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n userId: user.id,\n coach: !user.coach,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n toast.success(user.coach ? \"Unmarked as Coach\" : \"Marked as Coach\")\n }\n }\n\n const showConfirm = useConfirm()\n\n const changeRole = async (role: UserRoleEnum) => {\n const input: UserUpdateInput = {\n userId: user.id,\n role,\n }\n\n if (role === UserRoleEnum.Member) {\n input.tierId = proTier?.id\n }\n\n const { errors } = await runUserUpdate({ variables: { input } })\n\n if (errors) {\n displayErrors(errors)\n } else {\n if (role === UserRoleEnum.Member && refetch) refetch()\n toast.success(\"Role updated\")\n }\n }\n\n const setAsMember = async () => {\n await showConfirm({\n title: \"Remove Admin Status?\",\n body: `Taking this action will remove admin status from this user. The user will still retain their Pro-Annual Subscription and access to the platform.`,\n confirmText: \"Remove Admin Status\",\n onConfirm: () => changeRole(UserRoleEnum.Member),\n })\n }\n\n const setAsAdmin = async () => {\n await showConfirm({\n title: \"Change Role to Admin?\",\n body: `Are you sure you want to change ${user.name}'s role to Admin?`,\n onConfirm: () => changeRole(UserRoleEnum.Admin),\n })\n }\n\n const setAsSuperadmin = async () => {\n await showConfirm({\n title: \"Change Role to Super Admin?\",\n body: `Are you sure you want to change ${user.name}'s role to Super Admin?`,\n onConfirm: () => changeRole(UserRoleEnum.Superadmin),\n })\n }\n\n const deactivate = async () => {\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n userId: user.id,\n role: UserRoleEnum.Member,\n active: false,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n refetch?.()\n toast.success(\"User deactivated\")\n }\n }\n\n const deactivateUser = async () => {\n await showConfirm({\n title: \"Deactivate Member's account?\",\n body: (\n <>\n

    \n This action will remove this user as an admin and cancel this user's\n subscription to the membership. They will lose all admin controls\n and will no longer be able to access the app.\n

    \n

    This action is non reversible.

    \n \n ),\n confirmText: \"Deactive User\",\n onConfirm: () => deactivate(),\n })\n }\n\n const [runResendInvite] = useSafeMutation(USER_RESEND_INVITE_MUTATION)\n const resendInvite = async () => {\n const { errors } = await runResendInvite({\n variables: {\n input: {\n userId: user.id,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n toast.success(\"Invitation resent\")\n }\n }\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n const currentUser = useCurrentUser()\n\n return (\n <>\n {changeEmailModalOpen && (\n \n )}\n\n {userDialogOpen && (\n setUserDialogOpen(false)}\n user={user}\n />\n )}\n\n \n \n {!user.onboarded && (\n \n Resend Invite\n \n )}\n \n {user.coach ? \"Unmark as Coach\" : \"Mark as Coach\"}\n \n setChangeEmailModalOpen(true)}\n className=\"cursor-pointer\"\n >\n Change Email\n \n {currentUser.role === UserRoleEnum.Superadmin && (\n <>\n {user.role === UserRoleEnum.Superadmin && (\n \n Demote to Admin\n \n )}\n {user.role === UserRoleEnum.Admin && (\n \n Promote to Super Admin\n \n )}\n \n Revoke Admin Access\n \n \n Deactivate User\n \n \n )}\n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n setUserDialogOpen(true)}\n >\n \n \n {user.hidden && (\n \n \n \n \n \n \n User is hidden from the directory\n \n \n \n )}\n
    \n {user.email && (\n \n
    {user.email}
    \n \n )}\n
    \n
    \n
    \n\n {user.onboarded ? \"Onboarded\" : \"Invited\"}\n\n \n {user.createdAt &&\n formatDate(parseISO(user.createdAt), \"MMM d, yyyy\")}\n \n\n \n {user.onboardedAt &&\n formatDate(parseISO(user.onboardedAt), \"MMM d, yyyy\")}\n \n\n \n \n
    \n ,\n ,\n ]}\n />\n
    \n \n
    \n\n \n \n \n
    \n
    \n
    \n \n )\n}\n\nconst addAdminFormSchema = z.object({\n firstName: z.string().min(1),\n lastName: z.string().min(1),\n email: z.string().email().min(1),\n superadmin: z.boolean(),\n})\ntype AddAdminFormValues = z.infer\n\ninterface AddAdminDialogProps extends DialogProps {\n onAdminCreated?: () => void\n}\nconst AddAdminDialog = (props: AddAdminDialogProps) => {\n const form = useForm({\n resolver: zodResolver(addAdminFormSchema),\n defaultValues: {\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n superadmin: false,\n },\n })\n\n useEffect(() => {\n if (!props.open) {\n form.reset()\n }\n }, [props.open, form])\n\n const [runCreateUser] = useSafeMutation(CREATE_USER_MUTATION)\n\n const onSubmit = form.handleSubmit(async (values) => {\n const { errors } = await runCreateUser({\n variables: {\n input: {\n firstName: values.firstName,\n lastName: values.lastName,\n email: values.email,\n role: values.superadmin\n ? UserRoleEnum.Superadmin\n : UserRoleEnum.Admin,\n fit: true,\n hidden: true,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n props.onAdminCreated?.()\n props.onOpenChange?.(false)\n toast.success(`Invitation sent to ${values.email}`)\n }\n })\n\n return (\n \n \n \n Invite Admin\n \n Invite an admin to the platform.\n \n \n\n
    \n \n
    \n \n \n \n \n
    \n\n \n props.onOpenChange?.(false)}\n >\n Cancel\n \n \n \n
    \n \n
    \n
    \n )\n}\n\nexport const CREATE_USER_MUTATION = gql(`\n mutation UserCreate($input: UserCreateInput!) {\n userCreate(input: $input) {\n user {\n id\n firstName\n lastName\n email\n superadmin\n }\n }\n }\n`)\n\nexport const USER_RESEND_INVITE_MUTATION = gql(`\n mutation UserResendInvite($input: UserResendInviteInput!) {\n userResendInvite(input: $input) {\n user {\n id\n firstName\n lastName\n email\n superadmin\n }\n }\n }\n`)\n","import React from \"react\"\nimport { cn } from \"~/lib/utils\"\n\ntype TexasToastProps = {\n open: boolean\n children: React.ReactNode\n}\n\nexport const TexasToast = ({ open, children }: TexasToastProps) => {\n return (\n \n {children}\n \n )\n}\n","import { camelCase, capitalCase } from \"change-case\"\nimport { useCallback } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport {\n ApplicationFieldEnum,\n FitProfile,\n User_AdminFragment,\n} from \"~/__generated__/graphql\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { getURL, isLink } from \"~/components/FormattedContent\"\n\nexport const FitProfileDisplay = ({ user }: { user: User_AdminFragment }) => {\n const community = useCommunity()\n const fitProfile: Pick<\n FitProfile,\n \"industry\" | \"jobFunction\" | \"vertical\" | \"linkedinProfileUrl\"\n > | null = user.fitProfile || null\n\n const { t: translateIndustry } = useTranslation(\"industries\")\n const { t: translateJobFunction } = useTranslation(\"job_functions\")\n const { t: translateVertical } = useTranslation(\"verticals\")\n\n const display = useCallback(\n (field: ApplicationFieldEnum, value?: string | null) => {\n if (!value) return \"N/A\"\n switch (field) {\n case ApplicationFieldEnum.Industry:\n return translateIndustry(value)\n case ApplicationFieldEnum.JobFunction:\n return translateJobFunction(value)\n case ApplicationFieldEnum.Vertical:\n return translateVertical(value)\n default:\n return value\n }\n },\n [translateIndustry, translateJobFunction, translateVertical]\n )\n\n return (\n
    \n {community.applicationFields.map((field) => {\n const key = camelCase(field) as keyof typeof fitProfile\n const value = fitProfile ? fitProfile[key] : null\n return (\n
    \n {capitalCase(field)}:{\" \"}\n {field === ApplicationFieldEnum.LinkedinProfileUrl &&\n value &&\n isLink(value) ? (\n \n {display(field, value)}\n \n ) : (\n {display(field, value)}\n )}\n
    \n )\n })}\n
    \n )\n}\n","import { DotsHorizontalIcon, EyeNoneIcon } from \"@radix-ui/react-icons\"\nimport { parseISO } from \"date-fns\"\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from \"react\"\nimport { gql } from \"~/__generated__\"\nimport {\n ApplicationFieldEnum,\n OnboardingStateEnum,\n User_AdminFragment,\n UserSortEnum,\n} from \"~/__generated__/graphql\"\nimport { useConfig } from \"~/common/ConfigProvider\"\nimport { formatTime } from \"~/common/formatDate\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { UserDialog } from \"~/directory/UserDialog\"\nimport { UserName } from \"~/directory/UserName\"\nimport { USER_ADMIN_UPDATE_MUTATION } from \"~/screens/admin/AdminMembersScreen\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { Checkbox } from \"~/ui/checkbox\"\nimport { useConfirm } from \"~/ui/Confirm\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { CopyToClipboard } from \"~/ui/CopyToClipboard\"\nimport { Skeleton } from \"~/ui/skeleton\"\nimport { TexasToast } from \"~/ui/TexasToast\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"~/ui/tooltip\"\nimport { ChangeEmailModal } from \"../ChangeEmailModal\"\nimport { FitProfileDisplay } from \"./FitProfileDisplay\"\nimport { UsersTable, UserTableFilter } from \"./UsersTable\"\n\nconst ApplicationsTableSkeleton = () => (\n
    \n {Array.from({ length: PAGE_SIZE }).map((_, index) => (\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\ntype UserRowProps = {\n user: User_AdminFragment\n}\n\nconst UserRow = ({ user }: UserRowProps) => {\n const { approve, reject, select, deselect, selectedUsers } =\n useContext(ApplicationsContext)\n const [userDialogOpen, setUserDialogOpen] = useState(false)\n const isSelected = useMemo(\n () => selectedUsers.some((u) => u.id === user.id),\n [selectedUsers, user]\n )\n const [changeEmailModalOpen, setChangeEmailModalOpen] = useState(false)\n const contextMenuTriggerRef = useRef(null)\n\n const onCheckedChange = useCallback(\n (checked: boolean) => {\n if (checked) {\n select(user)\n } else {\n deselect(user)\n }\n },\n [select, deselect, user]\n )\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n return (\n <>\n {changeEmailModalOpen && (\n \n )}\n {userDialogOpen && (\n setUserDialogOpen(false)}\n user={user}\n />\n )}\n\n
    \n
    \n \n
    \n \n \n approve(user)}\n className=\"cursor-pointer\"\n >\n Approve\n \n reject(user)}\n className=\"cursor-pointer\"\n >\n Mark as Unfit\n \n setChangeEmailModalOpen(true)}\n className=\"cursor-pointer\"\n >\n Change Email\n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n setUserDialogOpen(true)}\n >\n \n \n {user.hidden && (\n \n \n \n \n \n \n User is hidden from the directory\n \n \n \n )}\n
    \n\n
    \n \n {user.email}\n \n
    \n Tier: {user.tier?.name}\n
    \n
    \n Application completed at:{\" \"}\n \n {user.fitApplicationSubmittedAt\n ? formatTime(\n parseISO(user.fitApplicationSubmittedAt)\n )\n : \"n/a\"}\n \n
    \n
    \n {user.jobTitle} -{\" \"}\n {user.companyName || \"Unknown Company\"} -{\" \"}\n {user.place?.full || \"Unknown Location\"}\n
    \n \n
    \n
    \n
    \n\n
    \n approve(user)}\n >\n Approve\n \n
    \n
    \n reject(user)}\n >\n Unfit\n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n )\n}\n\nconst ApplicationsContext = createContext<{\n approve: (user: User_AdminFragment) => void\n reject: (user: User_AdminFragment) => void\n select: (user: User_AdminFragment) => void\n deselect: (user: User_AdminFragment) => void\n selectedUsers: User_AdminFragment[]\n}>({\n approve: () => {},\n reject: () => {},\n select: () => {},\n deselect: () => {},\n selectedUsers: [],\n})\n\nconst PAGE_SIZE = 10\nconst DEFAULT_SORT = UserSortEnum.ApplicationPriority\n\ninterface ApplicationsTableProps {\n onboardingState?: OnboardingStateEnum | OnboardingStateEnum[]\n}\n\nexport const ApplicationsTable = ({\n onboardingState,\n}: ApplicationsTableProps) => {\n const { unfitRefundWindowInDays } = useConfig()\n const UNFIT_REFUND_WINDOW_IN_DAYS = unfitRefundWindowInDays || 30\n const [refresh, setRefresh] = useState(0)\n const [selectedUsers, setSelectedUsers] = useState([])\n const [runUserUpdate] = useSafeMutation(USER_ADMIN_UPDATE_MUTATION)\n const [runUsersBulkReview] = useSafeMutation(USERS_BULK_REVIEW_MUTATION)\n const community = useCommunity()\n\n const showConfirm = useConfirm()\n\n const approve = useCallback(\n async (user: User_AdminFragment) => {\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n userId: user.id,\n fit: true,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n }\n },\n [runUserUpdate]\n )\n\n const doReject = useCallback(\n async (user: User_AdminFragment) => {\n const { errors } = await runUsersBulkReview({\n variables: {\n input: {\n userIds: [user.id],\n fit: false,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n setRefresh(refresh + 1)\n }\n },\n [runUsersBulkReview, refresh]\n )\n\n const reject = useCallback(\n async (user: User_AdminFragment) => {\n await showConfirm({\n title: \"Are you sure? This action cannot be undone.\",\n body: `Marking ${user.name} as unfit will cancel their subscription and refund any pending or completed charges from within the last ${UNFIT_REFUND_WINDOW_IN_DAYS} days.`,\n confirmText: \"Mark as Unfit\",\n onConfirm: () => doReject(user),\n })\n },\n [showConfirm, doReject, UNFIT_REFUND_WINDOW_IN_DAYS]\n )\n\n const approveSelected = useCallback(async () => {\n const { errors } = await runUsersBulkReview({\n variables: {\n input: {\n userIds: selectedUsers.map((u) => u.id),\n fit: true,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n setRefresh(refresh + 1)\n setSelectedUsers([])\n }\n }, [runUsersBulkReview, refresh, selectedUsers])\n\n const select = useCallback(\n (user: User_AdminFragment) => {\n setSelectedUsers([...selectedUsers, user])\n },\n [selectedUsers, setSelectedUsers]\n )\n\n const deselect = useCallback(\n (user: User_AdminFragment) => {\n setSelectedUsers(selectedUsers.filter((u) => u.id !== user.id))\n },\n [selectedUsers, setSelectedUsers]\n )\n\n const enabledFilters = useMemo(() => {\n const filters: UserTableFilter[] = [\"tierId\"]\n community.applicationFields.forEach((field) => {\n switch (field) {\n case ApplicationFieldEnum.CompanySize:\n filters.push(\"companySize\")\n break\n case ApplicationFieldEnum.Industry:\n filters.push(\"industry\")\n break\n case ApplicationFieldEnum.JobFunction:\n filters.push(\"jobFunction\")\n break\n case ApplicationFieldEnum.Vertical:\n filters.push(\"vertical\")\n break\n case ApplicationFieldEnum.YearsOfExperience:\n filters.push(\"yearsOfExperience\")\n break\n default:\n break\n }\n })\n return filters\n }, [community.applicationFields])\n\n return (\n <>\n 0}>\n
    \n
    \n
    {selectedUsers.length} selected
    \n
    \n \n
    \n
    \n
    \n
    \n \n Approve\n \n
    \n
    \n
    \n
    \n\n \n setSelectedUsers(users)}\n variant=\"card\"\n skeleton={}\n defaultSort={DEFAULT_SORT}\n queryOptions={{\n unreviewedOnly: true,\n onboardingStates: onboardingState,\n }}\n >\n {(user) => }\n \n \n \n )\n}\n\nconst USERS_BULK_REVIEW_MUTATION = gql(`\n mutation UsersBulkReview($input: UsersBulkReviewInput!) {\n usersBulkReview(input: $input) {\n users {\n ...User_Admin\n }\n }\n }\n`)\n","import { EyeNoneIcon } from \"@radix-ui/react-icons\"\nimport { useState } from \"react\"\nimport { UserSortEnum, User_AdminFragment } from \"~/__generated__/graphql\"\nimport { UserDialog } from \"~/directory/UserDialog\"\nimport { Button } from \"~/ui/button\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"~/ui/tooltip\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { Skeleton } from \"~/ui/skeleton\"\nimport { UsersTable } from \"./UsersTable\"\nimport { UserName } from \"~/directory/UserName\"\nimport { FitProfileDisplay } from \"./FitProfileDisplay\"\nimport { formatTime } from \"~/common/formatDate\"\nimport { parseISO } from \"date-fns\"\nimport { CopyToClipboard } from \"~/ui/CopyToClipboard\"\nimport { useConfirm } from \"~/ui/Confirm\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { USER_ADMIN_UPDATE_MUTATION } from \"~/screens/admin/AdminMembersScreen\"\n\nconst UnfitApplicationsTableSkeleton = () => (\n
    \n {Array.from({ length: PAGE_SIZE }).map((_, index) => (\n
    \n \n \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n)\n\ntype UserRowProps = {\n user: User_AdminFragment\n}\n\nconst UserRow = ({ user }: UserRowProps) => {\n const [userDialogOpen, setUserDialogOpen] = useState(false)\n const [runUserUpdate] = useSafeMutation(USER_ADMIN_UPDATE_MUTATION)\n const showConfirm = useConfirm()\n\n const changeToFit = async () => {\n await showConfirm({\n title: `Reverse decision?`,\n body: (\n
    \n
    \n The user will be marked as fit and upon returning to the community,\n will be placed within the standard application flow. Are you sure\n you want to proceed?\n
    \n
    \n ),\n confirmText: \"CONFIRM CHANGE\",\n cancelText: \"Cancel\",\n onConfirm: async () => {\n const { errors } = await runUserUpdate({\n variables: {\n input: {\n userId: user.id,\n fit: true,\n fitnessDecisionCommunicatedAt: new Date().toISOString(),\n },\n },\n })\n if (errors) {\n displayErrors(errors)\n }\n },\n })\n }\n\n return (\n <>\n {userDialogOpen && (\n setUserDialogOpen(false)}\n user={user}\n />\n )}\n\n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n setUserDialogOpen(true)}\n >\n \n \n {user.hidden && (\n \n \n \n \n \n \n User is hidden from the directory\n \n \n \n )}\n
    \n\n
    \n \n {user.email}\n \n
    \n Tier:{\" \"}\n \n {user.tier?.name || user.previousTier?.name || \"N/A\"}\n \n
    \n
    \n Application completed at:{\" \"}\n \n {user.fitApplicationSubmittedAt\n ? formatTime(parseISO(user.fitApplicationSubmittedAt))\n : \"N/A\"}\n \n
    \n
    \n {user.jobTitle} - {user.companyName || \"Unknown Company\"} -{\" \"}\n {user.place?.full || \"Unknown Location\"}\n
    \n \n
    \n
    \n
    \n\n
    \n \n Change to Fit\n \n
    \n
    \n
    \n
    \n \n )\n}\n\nconst PAGE_SIZE = 10\nconst DEFAULT_SORT = UserSortEnum.ApplicationPriority\n\nexport const UnfitApplicationsTable = () => (\n }\n defaultSort={DEFAULT_SORT}\n queryOptions={{ unfitOnly: true }}\n >\n {(user) => }\n \n)\n","import { Tabs, TabsContent, TabsList, TabsTrigger } from \"~/ui/tabs\"\nimport { ApplicationsTable } from \"~/admin/users/ApplicationsTable\"\nimport { useNavigate, useParams, useSearchParams } from \"react-router-dom\"\nimport { useEffect, useMemo, useState } from \"react\"\nimport { adminApplicationsPath } from \"~/common/paths\"\nimport { UnfitApplicationsTable } from \"~/admin/users/UnfitApplicationsTable\"\nimport { Users } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { OnboardingStateEnum } from \"~/__generated__/graphql\"\n\nexport const AdminApplicationsScreen = () => {\n const { activeTab: activeTabFromParams } = useParams()\n const [activeTab, setActiveTab] = useState(activeTabFromParams || \"completed\")\n const navigate = useNavigate()\n const [, setSearchParams] = useSearchParams()\n\n useEffect(() => {\n if (activeTab !== activeTabFromParams) {\n setActiveTab(activeTabFromParams || \"completed\")\n }\n }, [activeTab, activeTabFromParams, navigate])\n\n const onTabChange = (tab: string) => {\n setSearchParams({})\n setActiveTab(tab)\n navigate(adminApplicationsPath({ \"activeTab?\": tab }))\n }\n\n const title = useMemo(() => {\n switch (activeTab) {\n case \"unfit\":\n return \"Unfit Applications\"\n case \"applying\":\n return \"In Progress Applications\"\n default:\n return \"Completed Applications\"\n }\n }, [activeTab])\n\n return (\n <>\n \n \n \n Completed\n In Progress\n Unfit\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { Construction, Layout } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { Card, CardContent } from \"~/ui/card\"\n\nexport const AdminDashboardScreen = () => {\n return (\n <>\n \n \n \n
    \n \n
    Coming soon!
    \n
    \n
    \n
    \n \n )\n}\n","import toast from \"react-hot-toast\"\nimport { displayErrors } from \"~/common/validations\"\nimport { useQuery } from \"@apollo/client\"\nimport { gql } from \"~/__generated__\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\nimport { Error } from \"~/ui/Error\"\nimport { format } from \"date-fns\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { Scalars } from \"~/__generated__/graphql\"\nimport { UserName } from \"~/directory/UserName\"\nimport { Card } from \"~/ui/card\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"~/ui/table\"\nimport { Button } from \"~/ui/button\"\n\nconst formatDate = (date: Scalars[\"ISO8601DateTime\"][\"input\"]) => {\n return format(date, \"MMM do, yyyy\")\n}\n\nexport const ActivitiesTable = () => {\n const { data, loading, error, refetch } = useQuery(USERS_QUERY_DOCUMENT)\n\n const [runManualHrisDataDestroy] = useSafeMutation(\n MANUAL_HRIS_DATA_DESTROY_MUTATION\n )\n\n const [runMergeLinkDestroy] = useSafeMutation(MERGE_LINK_DESTROY_MUTATION)\n\n if (loading) return \n if (error || !data) return \n\n const usersWithHrisData = data.users.nodes.filter(\n (user) => user.hrisIntegration || user.manualHrisData\n )\n\n return (\n <>\n \n \n \n \n Name\n Source\n Backend\n Last updated\n Actions\n \n \n \n {usersWithHrisData.map((user) => (\n \n \n \n \n \n
    \n {user.email}\n
    \n {user.hrisIntegration && (\n <>\n \n Merge\n \n \n \n {user.hrisIntegration.name}\n \n \n \n \n {user.hrisIntegration.lastSync\n ? formatDate(user.hrisIntegration.lastSync)\n : \"NA\"}\n \n \n \n {\n if (!user.hrisIntegration) {\n return\n }\n\n runMergeLinkDestroy({\n variables: {\n input: {\n id: user.hrisIntegration.id,\n },\n },\n }).then(\n (data) => {\n if (data.errors) {\n displayErrors(data.errors)\n console.log(data.errors)\n } else {\n toast.success(\"Merge Link Deleted\")\n refetch()\n }\n },\n (errors) => {\n displayErrors(errors)\n console.log(errors)\n }\n )\n }}\n >\n Delete\n \n \n \n )}\n {user.manualHrisData && (\n <>\n \n Manual\n \n \n \n {user.manualHrisData.hrisBackend}\n \n \n \n \n {formatDate(user.manualHrisData.updatedAt)}\n \n \n \n {\n if (!user.manualHrisData) {\n return\n }\n\n runManualHrisDataDestroy({\n variables: {\n input: {\n id: user.manualHrisData.id,\n },\n },\n }).then(\n (data) => {\n if (data.errors) {\n displayErrors(data.errors)\n console.log(data.errors)\n } else {\n toast.success(\"Manual Hris Data Deleted\")\n refetch()\n }\n },\n (errors) => {\n displayErrors(errors)\n console.log(errors)\n }\n )\n }}\n >\n Delete\n \n \n \n )}\n
    \n ))}\n
    \n
    \n
    \n \n )\n}\n\nconst USERS_QUERY_DOCUMENT = gql(`\n query AdminBenchmarkData {\n users {\n nodes {\n id\n name\n email\n admin\n hrisIntegration {\n id\n name\n slug\n category\n identifier\n industry\n companySize\n lastSync\n nextSync\n initialSyncComplete\n }\n manualHrisData {\n id\n hrisBackend\n industry\n companySize\n avgCostPerEmployeeDollars\n avgTenureMonths\n avgRetentionPercent\n avgTurnoverPercent\n updatedAt\n }\n }\n }\n }\n`)\n\nconst MANUAL_HRIS_DATA_DESTROY_MUTATION = gql(`\n mutation ManualHrisDataDestroy($input: ManualHrisDataDestroyInput!) {\n manualHrisDataDestroy(input: $input) {\n manualHrisData {\n id\n hrisBackend\n }\n }\n }\n`)\n\nconst MERGE_LINK_DESTROY_MUTATION = gql(`\n mutation MergeLinkDestroy($input: MergeLinkDestroyInput!) {\n mergeLinkDestroy(input: $input) {\n mergeLink {\n id\n name\n }\n }\n }\n`)\n","import { ActivitiesTable } from \"~/admin/users/ActivitiesTable\"\nimport { BarChart } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\n\nexport const AdminHrisScreen = () => {\n return (\n <>\n \n \n \n )\n}\n","import { BookMarked } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { useTags } from \"~/common/queries\"\nimport { useTranslation } from \"~/common/Translation\"\nimport { useCommunity } from \"~/community/useCommunity\"\nimport { cn } from \"~/lib/utils\"\nimport { Card } from \"~/ui/card\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"~/ui/table\"\n\nexport const AdminLibraryScreen = () => {\n const community = useCommunity()\n const tags = useTags()\n const { t: translateContentType } = useTranslation(\"contentTypes\")\n\n return (\n <>\n \n
    \n
    \n \n \n \n \n Content Types\n \n \n \n {community.contentTypes.map((contentType) => (\n \n {translateContentType(contentType)}\n \n ))}\n \n
    \n
    \n
    \n
    \n \n \n \n \n Topics\n \n \n \n {tags?.map((tag) => (\n \n {tag.name}\n \n ))}\n \n
    \n
    \n
    \n
    \n \n )\n}\n","import { Check, ChevronsUpDown, Plus, Trash } from \"lucide-react\"\nimport { Dispatch, useCallback, useEffect, useMemo, useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport {\n Place_FilterFragment,\n RulesEngineCondition_NestableFragment,\n RulesEngineConditionOperatorEnum,\n} from \"~/__generated__/graphql\"\nimport { useTags } from \"~/common/queries\"\nimport { cn } from \"~/lib/utils\"\nimport { useTiers } from \"~/tiers/TiersProvider\"\nimport { Button } from \"~/ui/button\"\nimport { Command, CommandGroup, CommandInput, CommandItem } from \"~/ui/command\"\nimport { IconButton } from \"~/ui/IconButton\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"~/ui/popover\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"~/ui/select\"\nimport { PlaceFilter } from \"./users/UsersFilters\"\nimport { gql, useQuery } from \"@apollo/client\"\nimport { useCommunity } from \"~/community/useCommunity\"\n\ninterface RulesEngineConditionsBuilderProps {\n initialConditions?: RulesEngineCondition_NestableFragment\n onChange: (conditions: RulesEngineCondition_NestableFragment | null) => void\n excludeFacts?: Fact[]\n}\n\nexport const RulesEngineConditionsBuilder = ({\n initialConditions,\n onChange,\n excludeFacts = [],\n}: RulesEngineConditionsBuilderProps) => {\n const community = useCommunity()\n const defaultEnabledFacts = community.groupFacts.map((fact) => {\n return fact.replace(/0/g, \".\") as Fact\n })\n\n const [conditions, setConditions] =\n useState(\n initialConditions || {\n all: [],\n }\n )\n const deleteCondition = useCallback(() => {}, [])\n const enabledFacts = useMemo(\n () => defaultEnabledFacts.filter((fact) => !excludeFacts.includes(fact)),\n [excludeFacts, defaultEnabledFacts]\n ) as Fact[]\n\n useEffect(() => {\n onChange(conditions)\n }, [conditions, onChange])\n\n return (\n \n )\n}\n\nconst AnyAllSelect = ({\n value,\n onValueChange,\n}: {\n value: \"any\" | \"all\"\n onValueChange: (value: \"any\" | \"all\") => void\n}) => {\n return (\n onValueChange(value as \"any\" | \"all\")}\n >\n \n \n \n \n Any\n All\n \n \n )\n}\n\ntype Fact =\n | \"user.tier.level\"\n | \"user.expertise_tags\"\n | \"user.interest_tags\"\n | \"user.fit_profile.industry\"\n | \"user.fit_profile.job_function\"\n | \"user.fit_profile.vertical\"\n | \"user.place\"\n | \"user.revenue\"\n | \"user.ecom_industry\"\n | \"user.organization_type\"\n | \"user.job_function\"\n\nconst factOperators: Record = {\n \"user.tier.level\": [\n RulesEngineConditionOperatorEnum.Equal,\n RulesEngineConditionOperatorEnum.NotEqual,\n ],\n \"user.expertise_tags\": [\n RulesEngineConditionOperatorEnum.Includes,\n RulesEngineConditionOperatorEnum.Excludes,\n ],\n \"user.interest_tags\": [\n RulesEngineConditionOperatorEnum.Includes,\n RulesEngineConditionOperatorEnum.Excludes,\n ],\n \"user.fit_profile.industry\": [\n RulesEngineConditionOperatorEnum.Equal,\n RulesEngineConditionOperatorEnum.NotEqual,\n ],\n \"user.fit_profile.job_function\": [\n RulesEngineConditionOperatorEnum.Equal,\n RulesEngineConditionOperatorEnum.NotEqual,\n ],\n \"user.fit_profile.vertical\": [\n RulesEngineConditionOperatorEnum.Equal,\n RulesEngineConditionOperatorEnum.NotEqual,\n ],\n \"user.place\": [\n RulesEngineConditionOperatorEnum.LocatedWithin,\n RulesEngineConditionOperatorEnum.NotLocatedWithin,\n ],\n \"user.revenue\": [\n RulesEngineConditionOperatorEnum.Equal,\n RulesEngineConditionOperatorEnum.NotEqual,\n ],\n \"user.ecom_industry\": [\n RulesEngineConditionOperatorEnum.Equal,\n RulesEngineConditionOperatorEnum.NotEqual,\n ],\n \"user.organization_type\": [\n RulesEngineConditionOperatorEnum.Equal,\n RulesEngineConditionOperatorEnum.NotEqual,\n ],\n \"user.job_function\": [\n RulesEngineConditionOperatorEnum.Equal,\n RulesEngineConditionOperatorEnum.NotEqual,\n ],\n}\n\ntype Option = {\n value: string\n label: string\n}\n\nconst useFactOptions = () => {\n const tags = useTags()\n const { tiers } = useTiers()\n\n const { data, loading } = useQuery(FACT_OPTIONS_QUERY_DOCUMENT)\n\n if (loading) return {} as Record\n\n return {\n \"user.tier.level\":\n tiers?.map((tier) => ({\n value: tier.level.toLowerCase(),\n label: tier.name,\n })) || [],\n \"user.expertise_tags\":\n tags?.map((tag) => ({ value: tag.id, label: tag.name })) || [],\n \"user.interest_tags\":\n tags?.map((tag) => ({ value: tag.id, label: tag.name })) || [],\n \"user.fit_profile.industry\": data.industries,\n \"user.fit_profile.job_function\": data.jobFunctions,\n \"user.fit_profile.vertical\": data.verticals,\n \"user.revenue\": data.revenues,\n \"user.ecom_industry\": data.ecomIndustries,\n \"user.organization_type\": data.organizationTypes,\n \"user.job_function\": data.marketingJobFunctions,\n } as Record\n}\n\nconst FACT_OPTIONS_QUERY_DOCUMENT = gql(`\n query FactOptions {\n industries { value label }\n jobFunctions { value label }\n verticals { value label }\n revenues { value label }\n ecomIndustries { value label }\n organizationTypes { value label }\n marketingJobFunctions { value label }\n }\n`)\n\nconst RulesEngineConditionBuilderRow = ({\n index = 0,\n isAll: isParentAll,\n isRoot,\n condition,\n setCondition,\n deleteCondition,\n enabledFacts,\n}: {\n index?: number\n isAny?: boolean\n isAll?: boolean\n isRoot?: boolean\n condition: RulesEngineCondition_NestableFragment\n setCondition: Dispatch\n deleteCondition: (index: number) => void\n enabledFacts: Fact[]\n}) => {\n const { t } = useTranslation(\"rulesEngine\")\n const isAny = Object.keys(condition).includes(\"any\")\n const isAll = Object.keys(condition).includes(\"all\")\n const items = isAny ? condition.any! : isAll ? condition.all! : []\n const factOptions = useFactOptions()\n const [open, setOpen] = useState(false)\n const [query, setQuery] = useState(\"\")\n\n const placeFilter = useMemo(() => {\n if (condition.fact !== \"user.place\") return undefined\n return condition.valueString ? { id: condition.valueString } : undefined\n }, [condition.fact, condition.valueString])\n\n const setPlaceFilter = useCallback(\n (place?: Partial) => {\n setCondition({ ...condition, valueString: place?.id || \"\" })\n },\n [condition, setCondition]\n )\n\n const formattedValue = useMemo(() => {\n const options = factOptions[condition.fact as Fact]\n if (!options) return null\n return options.find((option) => {\n return option.value === condition.valueString\n })?.label\n }, [condition.fact, condition.valueString, factOptions])\n\n if (isAny || isAll) {\n return (\n
    \n
    \n
    \n {index === 0 ? \"Where\" : isParentAll ? \"and where\" : \"or where\"}{\" \"}\n {\n if (value === \"any\") {\n setCondition({ any: items })\n } else {\n setCondition({ all: items })\n }\n }}\n />{\" \"}\n of the following are true:\n
    \n {!isRoot && (\n deleteCondition(index)}>\n \n \n )}\n
    \n\n
    \n {items.map((item, index) => (\n {\n setCondition(\n isAny\n ? {\n any: items.filter((_, i) => i !== index),\n }\n : {\n all: items.filter((_, i) => i !== index),\n }\n )\n }}\n setCondition={(\n newCondition: RulesEngineCondition_NestableFragment\n ) => {\n setCondition(\n isAny\n ? {\n any: items.map((i, iIndex) =>\n iIndex === index ? newCondition : i\n ),\n }\n : {\n all: items.map((i, iIndex) =>\n iIndex === index ? newCondition : i\n ),\n }\n )\n }}\n />\n ))}\n\n
    \n {\n setCondition(\n isAny\n ? {\n any: [\n ...items,\n {\n fact: enabledFacts[0],\n operator: RulesEngineConditionOperatorEnum.Equal,\n valueString: \"\",\n },\n ],\n }\n : {\n all: [\n ...items,\n {\n fact: enabledFacts[0],\n operator: RulesEngineConditionOperatorEnum.Equal,\n valueString: \"\",\n },\n ],\n }\n )\n }}\n >\n \n Add Condition\n \n\n {\n setCondition(\n isAny\n ? { any: [...items, { all: [] }] }\n : { all: [...items, { any: [] }] }\n )\n }}\n >\n \n Add Condition Group\n \n
    \n
    \n
    \n )\n }\n\n if (!condition.fact) return null\n\n return (\n
    \n {index === 0 ? \"If\" : isParentAll ? \"and\" : \"or\"}\n {\n const operators = factOperators[value as Fact]\n setCondition({\n ...condition,\n fact: value as string,\n operator: operators.includes(condition.operator!)\n ? condition.operator\n : null,\n valueString: \"\",\n })\n }}\n >\n \n \n \n \n {enabledFacts.includes(\"user.tier.level\") && (\n Tier\n )}\n {enabledFacts.includes(\"user.expertise_tags\") && (\n Expertise\n )}\n {enabledFacts.includes(\"user.interest_tags\") && (\n Interests\n )}\n {enabledFacts.includes(\"user.fit_profile.industry\") && (\n Industry\n )}\n {enabledFacts.includes(\"user.fit_profile.job_function\") && (\n \n Job Function\n \n )}\n {enabledFacts.includes(\"user.fit_profile.vertical\") && (\n Vertical\n )}\n {enabledFacts.includes(\"user.place\") && (\n Location\n )}\n {enabledFacts.includes(\"user.revenue\") && (\n Revenue\n )}\n {enabledFacts.includes(\"user.ecom_industry\") && (\n Industry\n )}\n {enabledFacts.includes(\"user.job_function\") && (\n Job Function\n )}\n {enabledFacts.includes(\"user.organization_type\") && (\n Org Type\n )}\n \n \n {\n console.log({ value })\n setCondition({\n ...condition,\n operator:\n (value as RulesEngineConditionOperatorEnum) ||\n factOperators[condition.fact as Fact][0],\n })\n }}\n >\n \n \n \n \n {factOperators[condition.fact as Fact]?.map((operator) => (\n \n {t(`operators.${operator}`)}\n \n ))}\n \n \n {condition.fact === \"user.place\" ? (\n \n ) : (\n \n \n \n \n {formattedValue || (\n Select a value\n )}\n \n\n
    \n \n
    \n \n
    \n \n \n \n \n {factOptions[condition.fact as Fact]?.map((option) => (\n {\n setCondition({ ...condition, valueString: option.value })\n setOpen(false)\n }}\n >\n
    \n \n
    {option.label}
    \n
    \n \n ))}\n
    \n
    \n
    \n
    \n )}\n deleteCondition(index)}>\n \n \n
    \n )\n}\n","import { ApolloError, FetchResult } from \"@apollo/client\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { EyeNoneIcon, DotsHorizontalIcon } from \"@radix-ui/react-icons\"\nimport copy from \"copy-to-clipboard\"\nimport { AtSign } from \"lucide-react\"\nimport React, { useMemo, useRef, useState } from \"react\"\nimport { useForm, useWatch } from \"react-hook-form\"\nimport toast from \"react-hot-toast\"\nimport { z } from \"zod\"\nimport {\n GroupCreateInput,\n GroupCreateMutation,\n GroupTypeEnum,\n GroupUpdateMutation,\n TierLevelEnum,\n User_AdminFragment,\n UserSortEnum,\n} from \"~/__generated__/graphql\"\nimport { AdminActionToolbar } from \"~/admin/AdminActionToolbar\"\nimport { RulesEngineConditionsBuilder } from \"~/admin/RulesEngineConditionBuilder\"\nimport { AdminTableHeader, UsersTable } from \"~/admin/users/UsersTable\"\nimport { SelectField } from \"~/components/forms/SelectField\"\nimport { TextField } from \"~/components/forms/TextField\"\nimport { UserDialog } from \"~/directory/UserDialog\"\nimport { UserName } from \"~/directory/UserName\"\nimport { useTiers } from \"~/tiers/TiersProvider\"\nimport { AvatarWithFallback } from \"~/ui/AvatarWithFallback\"\nimport { Badge } from \"~/ui/badge\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { CopyToClipboard } from \"~/ui/CopyToClipboard\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n} from \"~/ui/form\"\nimport { IconInputAdornment } from \"~/ui/input\"\nimport { Switch } from \"~/ui/switch\"\nimport { TableCell, TableRow } from \"~/ui/table\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"~/ui/tooltip\"\n\nconst formSchema = z.object({\n slug: z.string().min(1, { message: \"Required\" }),\n description: z.string(),\n active: z.boolean(),\n conditions: z.any(),\n matchEveryone: z.boolean(),\n minimumTierLevel: z.string().min(1, { message: \"Required\" }),\n maximumTierLevel: z.string().min(1, { message: \"Required\" }),\n})\n\nexport type GroupFormValues = z.infer\n\ninterface GroupFormProps {\n initialValues?: GroupFormValues\n onSubmit: (\n data: GroupCreateInput\n ) => Promise<\n FetchResult | FetchResult\n >\n}\n\nexport const GroupForm = ({ initialValues, onSubmit }: GroupFormProps) => {\n const { tiers } = useTiers()\n const form = useForm({\n resolver: zodResolver(formSchema),\n defaultValues: initialValues || {\n slug: \"\",\n description: \"\",\n active: true,\n conditions: null,\n matchEveryone: false,\n minimumTierLevel: TierLevelEnum.Free,\n maximumTierLevel: tiers.some((t) => t.level === TierLevelEnum.Pro)\n ? TierLevelEnum.Pro\n : TierLevelEnum.Plus,\n },\n })\n const [isSaving, setIsSaving] = useState(false)\n const values = useWatch({ control: form.control })\n\n const handleSubmit = async ({\n conditions,\n matchEveryone,\n minimumTierLevel,\n maximumTierLevel,\n ...data\n }: GroupFormValues) => {\n setIsSaving(true)\n try {\n const { errors } = await onSubmit({\n ...data,\n groupType: matchEveryone\n ? GroupTypeEnum.Everyone\n : GroupTypeEnum.Dynamic,\n rulesEngineConditions: matchEveryone ? null : conditions,\n minimumTierLevel: minimumTierLevel as TierLevelEnum,\n maximumTierLevel: maximumTierLevel as TierLevelEnum,\n })\n\n if (\n errors &&\n (errors as unknown as ApolloError).graphQLErrors.find(\n (e) => e.extensions.code === \"NOT_UNIQUE_ERROR\"\n )\n ) {\n form.setError(\"slug\", {\n type: \"manual\",\n message: (errors as unknown as ApolloError).graphQLErrors[0].message,\n })\n }\n } catch (e) {\n console.error(e)\n toast.error(\"Failed to save group\")\n }\n setIsSaving(false)\n }\n\n const usersTableQueryOptions = useMemo(() => {\n const options: Record = {\n activeOnly: true,\n fitOnly: true,\n minimumTierLevel: values.minimumTierLevel,\n maximumTierLevel: values.maximumTierLevel,\n }\n\n if (!values.matchEveryone) {\n options.rulesEngineConditions = values.conditions\n }\n return options\n }, [\n values.conditions,\n values.matchEveryone,\n values.minimumTierLevel,\n values.maximumTierLevel,\n ])\n\n const tierSelectEntries = useMemo(() => {\n return tiers.map((tier) => ({\n label: tier.name,\n value: tier.level,\n }))\n }, [tiers])\n\n return (\n <>\n
    \n \n
    \n
    \n \n \n \n }\n />\n \n
    \n \n \n (\n \n
    \n \n Match Everyone?\n \n \n If enabled, every community member that match the\n selected tiers will automatically be included in the\n group.\n \n
    \n \n \n \n
    \n )}\n />\n {!form.watch(\"matchEveryone\") && (\n \n \n \n form.setValue(\"conditions\", conditions, {\n shouldDirty: true,\n })\n }\n initialConditions={form.watch(\"conditions\")}\n excludeFacts={[\"user.tier.level\"]}\n />\n \n \n )}\n
    \n \n \n
    \n \n Users must be at least the minimum tier level to be\n included in this group. Users with a lower tier who would\n otherwise meet the criteria to join the group will be\n prompted to upgrade when they attempt to perform an action\n that would require them to be in the group.\n \n
    \n
    \n
    \n
    \n
    \n \n {(user) => }\n \n
    \n
    \n\n \n \n form.setValue(\"active\", !!value, { shouldDirty: true })\n }\n />\n \n Save Group\n \n \n
    \n \n \n )\n}\n\nconst HEADERS: AdminTableHeader[] = [\n { label: \"Name\", isPinned: true },\n { label: \"Homebase\" },\n { label: \"Subscription\" },\n { label: \"Tier\" },\n { label: \"Expertise\" },\n { label: \"Interests\" },\n { label: \"Type\" },\n { label: \"Hidden\" },\n { label: \"Actions\" },\n]\n\nconst pinnedColumnStyles =\n \"sticky left-0 bg-gradient-to-r from-white from-80% to-transparent group-hover:from-muted group-hover:from-80% group-hover:to-transparent\"\n\nconst UserRow = ({ user }: { user: User_AdminFragment }) => {\n const [userDialogOpen, setUserDialogOpen] = useState(false)\n const contextMenuTriggerRef = useRef(null)\n\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n\n return (\n <>\n {userDialogOpen && (\n setUserDialogOpen(false)}\n user={user}\n />\n )}\n\n \n \n \n user.email && copy(user.email) && toast.success(\"Email copied\")\n }\n className=\"cursor-pointer\"\n disabled={!user.email}\n >\n Copy Email Address\n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n setUserDialogOpen(true)}\n >\n \n \n {user.hidden && (\n \n \n \n \n \n \n User is hidden from the directory\n \n \n \n )}\n
    \n {user.email && (\n \n
    {user.email}
    \n \n )}\n
    \n
    \n
    \n \n
    \n {user.place?.full || \"N/A\"}\n
    \n
    \n \n \n {user.activeStripeSubscription?.status || \"N/A\"}\n \n \n \n \n {user.tier ? (\n <>\n {user.tier.name}\n {user.tier.level !== TierLevelEnum.Free &&\n user.activeStripeSubscription?.plan &&\n `-${\n user.activeStripeSubscription.plan.interval === \"year\"\n ? \"Yearly\"\n : \"Quarterly\"\n }`}\n \n ) : (\n \"N/A\"\n )}\n \n \n \n
    \n {user.expertise.map((tag) => (\n \n {tag.name}\n \n ))}\n
    \n
    \n \n
    \n {user.interests.map((tag) => (\n \n {tag.name}\n \n ))}\n
    \n
    \n \n {user.admin ? (\n Admin\n ) : user.coach ? (\n Coach\n ) : (\n User\n )}\n \n \n \n {user.hidden ? \"Hidden\" : \"Visible\"}\n \n \n \n \n \n
    \n
    \n
    \n \n )\n}\n","import { Users } from \"lucide-react\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport { GroupCreateInput } from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { GroupForm } from \"~/admin/GroupForm\"\nimport { adminGroupsPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\n\nexport const AdminGroupNewScreen = () => {\n const [runCreateGroup] = useSafeMutation(GROUP_CREATE_MUTATION)\n const navigate = useNavigate()\n\n const handleSubmit = async (data: GroupCreateInput) => {\n const response = await runCreateGroup({\n variables: {\n input: data,\n },\n })\n\n const { data: responseData, errors } = response\n\n if (errors) {\n displayErrors(errors)\n } else if (responseData?.groupCreate?.group) {\n toast.success(\n \"Group created. Please allow a few minutes for the group to populate.\"\n )\n navigate(adminGroupsPath.pattern)\n }\n\n return response\n }\n\n return (\n <>\n \n\n \n \n )\n}\n\nconst GROUP_CREATE_MUTATION = gql(`\n mutation GroupCreate($input: GroupCreateInput!) {\n groupCreate(input: $input) {\n group {\n id\n }\n }\n }\n`)\n","import { useQuery } from \"@apollo/client\"\nimport { Users } from \"lucide-react\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate, useParams } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport { GroupCreateInput, GroupTypeEnum } from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { GroupForm } from \"~/admin/GroupForm\"\nimport { adminChannelNewPath, adminGroupsPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\nimport { Button } from \"~/ui/button\"\n\nexport const AdminGroupEditScreen = () => {\n const [runUpdateGroup] = useSafeMutation(GROUP_UPDATE_MUTATION)\n const navigate = useNavigate()\n const { id } = useParams()\n const { data, loading } = useQuery(GROUP_QUERY_DOCUMENT, {\n variables: { id: id! },\n })\n const group = data?.group\n\n const handleSubmit = async (data: GroupCreateInput) => {\n const response = await runUpdateGroup({\n variables: {\n input: {\n ...data,\n groupId: id!,\n },\n },\n })\n\n const { data: responseData, errors } = response\n\n if (errors) {\n displayErrors(errors)\n } else if (responseData?.groupUpdate?.group) {\n toast.success(\n \"Group updated. Please allow a few minutes for the group to populate.\"\n )\n navigate(adminGroupsPath.pattern)\n }\n\n return response\n }\n\n if (loading || !group) return null\n\n return (\n <>\n \n \n navigate(\n adminChannelNewPath({ visibility: \"private\" }) +\n \"?groupId=\" +\n group.id\n )\n }\n >\n Create Private Channel\n \n
    \n\n \n \n )\n}\n\nconst GROUP_QUERY_DOCUMENT = gql(`\n query Group($id: ID!) {\n group(id: $id) {\n id\n slug\n description\n groupType\n active\n minimumTierLevel\n maximumTierLevel\n\n automations {\n id\n name\n category\n invertConditions\n conditions\n }\n }\n }\n`)\n\nconst GROUP_UPDATE_MUTATION = gql(`\n mutation GroupUpdate($input: GroupUpdateInput!) {\n groupUpdate(input: $input) {\n group {\n id\n }\n }\n }\n`)\n","import { useQuery } from \"@apollo/client\"\nimport { ChevronDown, ChevronRight, Copy } from \"lucide-react\"\nimport { useMemo, useState } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { useCopyToClipboard } from \"usehooks-ts\"\nimport { gql } from \"~/__generated__\"\nimport { SailthruSync_AdminFragment } from \"~/__generated__/graphql\"\nimport { formatDate } from \"~/common/formatDate\"\nimport { UserName } from \"~/directory/UserName\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"~/ui/collapsible\"\nimport { LoadingIndicatorCentered } from \"~/ui/LoadingIndicator\"\n\nexport const SailthruSyncs = () => {\n const { data, loading } = useQuery(SAILTHRU_SYNC_QUERY_DOCUMENT)\n const sailthruSyncs = data?.sailthruSyncs\n\n return (\n <>\n {loading ? (\n \n ) : (\n
    \n {sailthruSyncs?.map((sailthruSync) => (\n \n ))}\n
    \n )}\n \n )\n}\n\ntype SailthruSyncCardProps = {\n sailthruSync: SailthruSync_AdminFragment\n}\n\nconst SailthruSyncCard = ({ sailthruSync }: SailthruSyncCardProps) => {\n const [open, setOpen] = useState(false)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [_, copy] = useCopyToClipboard()\n\n const properties = useMemo(\n () => JSON.stringify(sailthruSync.data, null, 2),\n [sailthruSync.data]\n )\n\n const copyToClipboard = () => {\n copy(properties)\n toast.success(\"Copied to clipboard\")\n }\n\n return (\n \n \n \n
    \n
    \n \n setOpen(!open)}\n >\n <>\n {open ? (\n \n ) : (\n \n )}\n \n Toggle\n \n \n
    \n
    \n {formatDate(sailthruSync.time, \"M/d/yyyy HH:mm:ss\")}\n
    \n
    User Synced to Sailthru
    \n
    \n {sailthruSync.user && }\n
    \n
    {sailthruSync.user?.email}
    \n
    \n \n
    \n
    {properties}
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n )\n}\n\ngql(`\n fragment SailthruSync_Admin on SailthruSync {\n id\n sailthruIdentifier\n user {\n ...User_Avatar\n email\n }\n time\n data\n }\n`)\n\nconst SAILTHRU_SYNC_QUERY_DOCUMENT = gql(`\n query SailthruSyncs {\n sailthruSyncs {\n ...SailthruSync_Admin\n }\n }\n`)\n","import { Sailboat } from \"lucide-react\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { SailthruSyncs } from \"~/admin/SailthruSyncs\"\n\nexport const AdminSailthruSyncsScreen = () => {\n return (\n <>\n \n \n \n )\n}\n","import { CommunityLogo } from \"~/community/CommunityLogo\"\nimport { Outlet } from \"react-router-dom\"\nimport React, { createContext, useContext } from \"react\"\nimport invariant from \"tiny-invariant\"\nimport { Link } from \"~/ui/Link\"\nimport { buttonVariants } from \"~/ui/button\"\nimport { cn } from \"~/lib/utils\"\nimport { CTAWrapper } from \"~/layouts/CTALayout\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nconst ApplicationContext = createContext<\n | {\n setAction: (action?: React.ReactNode) => void\n setBanner: (banner?: React.ReactNode) => void\n }\n | undefined\n>(undefined)\n\nexport const useApplicationLayout = () => {\n const context = useContext(ApplicationContext)\n invariant(\n context,\n \"useApplicationLayout must be used within a ApplicationLayout\"\n )\n return context\n}\n\nexport const ApplicationLayout = () => {\n const ccls = useCommunityClassname()\n const [action, setAction] = React.useState<\n React.ReactNode | null | undefined\n >(\n *]:text-black\",\n [CommunitySlug.Boardroom]: \"[&>*]:text-white\",\n default: \"bg-highlight\",\n })\n )}\n >\n Contact Us\n \n )\n const [banner, setBanner] = React.useState<\n React.ReactNode | null | undefined\n >(undefined)\n\n return (\n \n
    \n \n
    \n \n
    \n
    \n {action}\n
    \n
    \n\n
    \n {banner && (\n \n
    \n {banner}\n
    \n
    \n )}\n
    \n\n
    \n \n
    \n \n \n )\n}\n","import { UserResponsibilityQuestionsEnum } from \"~/__generated__/graphql\"\nimport { Control, useFormContext } from \"react-hook-form\"\nimport { CheckboxField } from \"~/components/forms/CheckboxField\"\nimport { FormValues } from \"../ApplicationLandingScreen\"\nimport { Translation } from \"~/common/Translation\"\nimport { camelCase } from \"change-case\"\nimport { useEffect } from \"react\"\n\ninterface ResponsibilityQuestionsProps {\n control: Control\n userResponsibilityQuestions: UserResponsibilityQuestionsEnum[]\n}\n\n// Create a type that extracts just the responsibilityQuestions keys\ntype ResponsibilityQuestionsKeys = keyof FormValues[\"responsibilityQuestions\"]\n\nexport const ResponsibilityQuestions = ({\n control,\n userResponsibilityQuestions,\n}: ResponsibilityQuestionsProps) => {\n const { watch, setValue, formState } = useFormContext()\n const noneOfTheAbove = watch(\"responsibilityQuestions.noneOfTheAbove\")\n const hasAnsweredResponsibilityQuestions = userResponsibilityQuestions.some(\n (field) =>\n field !== UserResponsibilityQuestionsEnum.NoneOfTheAbove &&\n watch(`responsibilityQuestions.${camelCase(field)}`)\n )\n\n useEffect(() => {\n if (noneOfTheAbove) {\n userResponsibilityQuestions.forEach((field) => {\n if (field !== UserResponsibilityQuestionsEnum.NoneOfTheAbove) {\n const fieldName = camelCase(field) as ResponsibilityQuestionsKeys\n setValue(`responsibilityQuestions.${fieldName}`, false)\n }\n })\n }\n }, [noneOfTheAbove, userResponsibilityQuestions, setValue])\n\n useEffect(() => {\n if (hasAnsweredResponsibilityQuestions) {\n setValue(\"responsibilityQuestions.noneOfTheAbove\", false)\n }\n }, [hasAnsweredResponsibilityQuestions, setValue])\n\n return (\n <>\n {formState.errors.responsibilityQuestions && (\n

    \n Please answer at least one responsibility question.\n

    \n )}\n {userResponsibilityQuestions.map((field) => {\n const fieldName = camelCase(field) as ResponsibilityQuestionsKeys\n\n return (\n \n \n \n }\n labelClassName=\"text-dark-gray leading-6\"\n />\n )\n })}\n \n )\n}\n","import { Control, useFormContext } from \"react-hook-form\"\nimport { SelectField } from \"~/components/forms/SelectField\"\nimport { TextField } from \"~/components/forms/TextField\"\nimport { FormValues } from \"../ApplicationLandingScreen\"\nimport { cn } from \"~/lib/utils\"\nimport { Translation } from \"~/common/Translation\"\nimport { camelCase } from \"change-case\"\nimport { CommunitySlug, ScreenEnum } from \"~/__generated__/graphql\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { Coffee } from \"lucide-react\"\n\ninterface MadlibsQuestionsProps {\n control: Control\n}\n\nconst QUESTIONS: Record<\n CommunitySlug,\n {\n yearsOfExperience: { label: string; value: string }[]\n cupsOfCoffee?: { label: string; value: string }[]\n jobFunction?: { label: string; value: string }[]\n madlibsRole?: { label: string; value: string }[]\n teamSize?: { label: string; value: string }[]\n organizationType?: { label: string; value: string }[]\n business?: { label: string; value: string }[]\n ecomIndustry?: { label: string; value: string }[]\n revenue?: { label: string; value: string }[]\n }\n> = {\n [CommunitySlug.Safespace]: {\n yearsOfExperience: [\n { label: \"0 - 5\", value: \"0-5\" },\n { label: \"6 - 10\", value: \"6-10\" },\n { label: \"10+\", value: \"10+\" },\n ],\n jobFunction: [\n {\n label: \"Compensation & Benefits\",\n value: \"Compensation & Benefits\",\n },\n { label: \"Compliance & Legal\", value: \"Compliance & Legal\" },\n { label: \"Employee Engagement\", value: \"Employee Engagement\" },\n {\n label: \"Employee Training & Development\",\n value: \"Employee Training & Development\",\n },\n { label: \"Finance & Analytics\", value: \"Finance & Analytics\" },\n {\n label: \"HR Strategy & Organization Development\",\n value: \"HR Strategy & Organization Development\",\n },\n { label: \"Payroll Admin\", value: \"Payroll Admin\" },\n {\n label: \"Recruitment & Talent Acquisition\",\n value: \"Recruitment & Talent Acquisition\",\n },\n { label: \"Other\", value: \"Other\" },\n ],\n madlibsRole: [\n { label: \"am an IC\", value: \"am an IC\" },\n { label: \"manage a team(s)\", value: \"manage a team(s)\" },\n { label: \"direct a department\", value: \"direct a department\" },\n { label: \"am the executive\", value: \"am the executive\" },\n ],\n teamSize: [\n { label: \"1\", value: \"1\" },\n { label: \"2-5\", value: \"2-5\" },\n { label: \"6-20\", value: \"6-20\" },\n { label: \"20+\", value: \"20+\" },\n ],\n },\n [CommunitySlug.Boardroom]: {\n yearsOfExperience: [\n { label: \"0 - 3\", value: \"0-3\" },\n { label: \"4 - 10\", value: \"4-10\" },\n { label: \"10+\", value: \"10+\" },\n ],\n jobFunction: [\n { label: \"Consulting\", value: \"Consulting\" },\n { label: \"Corporate Development\", value: \"Corporate Development\" },\n { label: \"Data & Analytics\", value: \"Data & Analytics\" },\n { label: \"Direct Patient Care\", value: \"Direct Patient Care\" },\n { label: \"Engineering\", value: \"Engineering\" },\n { label: \"Finance\", value: \"Finance\" },\n { label: \"Higher Education\", value: \"Higher Education\" },\n { label: \"Human Resources\", value: \"Human Resources\" },\n { label: \"Information Technology\", value: \"Information Technology\" },\n { label: \"Legal\", value: \"Legal\" },\n { label: \"Marketing\", value: \"Marketing\" },\n { label: \"Media\", value: \"Media\" },\n { label: \"Operations\", value: \"Operations\" },\n { label: \"Public Relations\", value: \"Public Relations\" },\n { label: \"Regulartory Affairs\", value: \"Regulartory Affairs\" },\n { label: \"Research & Development\", value: \"Research & Development\" },\n {\n label: \"Sales & Business Development\",\n value: \"Sales & Business Development\",\n },\n { label: \"Strategy\", value: \"Strategy\" },\n { label: \"Supply Chain Management\", value: \"Supply Chain Management\" },\n ],\n organizationType: [\n { label: \"Consulting Firm\", value: \"Consulting Firm\" },\n {\n label: \"Durable Medical Equipment\",\n value: \"Durable Medical Equipment\",\n },\n { label: \"Government Health Agency\", value: \"Government Health Agency\" },\n { label: \"Health Tech Startup\", value: \"Health Tech Startup\" },\n {\n label: \"Hospital or Health System\",\n value: \"Hospital or Health System\",\n },\n { label: \"Life Science Company\", value: \"Life Science Company\" },\n { label: \"Medical Device Company\", value: \"Medical Device Company\" },\n { label: \"Payor Org\", value: \"Payor Org\" },\n { label: \"Pharmacy & Retailer\", value: \"Pharmacy & Retailer\" },\n { label: \"Provider Org\", value: \"Provider Org\" },\n { label: \"Telehealth Provider\", value: \"Telehealth Provider\" },\n { label: \"Venture Capital Firm\", value: \"Venture Capital Firm\" },\n { label: \"Other\", value: \"Other\" },\n ],\n },\n [CommunitySlug.Marketingland]: {\n yearsOfExperience: [\n { label: \"0 - 5\", value: \"0-5\" },\n { label: \"6 - 10\", value: \"6-10\" },\n { label: \"10+\", value: \"10+\" },\n ],\n organizationType: [\n { label: \"at a brand\", value: \"at a brand\" },\n { label: \"at an agency\", value: \"at an agency\" },\n {\n label: \"as Freelancer or Consultant\",\n value: \"as Freelancer or Consultant\",\n },\n ],\n business: [\n { label: \"B2B\", value: \"B2B\" },\n { label: \"B2C\", value: \"B2C\" },\n ],\n teamSize: [\n { label: \"just me!\", value: \"just me!\" },\n { label: \"2 - 5\", value: \"2-5\" },\n { label: \"6 - 20\", value: \"6-20\" },\n { label: \"21+\", value: \"21+\" },\n ],\n cupsOfCoffee: [\n { label: \"0 cups\", value: \"0 cups\" },\n { label: \"1 cup\", value: \"1 cup\" },\n { label: \"2 cups\", value: \"2 cups\" },\n { label: \"3 cups\", value: \"3 cups\" },\n { label: \"4 cups\", value: \"4 cups\" },\n { label: \"5+ cups\", value: \"5+ cups\" },\n ],\n },\n [CommunitySlug.Gotomillions]: {\n yearsOfExperience: [\n { label: \"0 - 4\", value: \"0-4\" },\n { label: \"5 - 10\", value: \"5-10\" },\n { label: \"10+\", value: \"10+\" },\n ],\n jobFunction: [\n { label: \"account based marketing\", value: \"account based marketing\" },\n { label: \"amazon\", value: \"amazon\" },\n { label: \"b2b demand gen\", value: \"b2b demand gen\" },\n { label: \"brand marketing\", value: \"brand marketing\" },\n { label: \"content marketing\", value: \"content marketing\" },\n { label: \"copywriting\", value: \"copywriting\" },\n { label: \"data analytics\", value: \"data analytics\" },\n { label: \"design\", value: \"design\" },\n { label: \"digital marketing\", value: \"digital marketing\" },\n { label: \"ecom management\", value: \"ecom management\" },\n { label: \"event / field marketing\", value: \"event / field marketing\" },\n { label: \"go-to-market\", value: \"go-to-market\" },\n { label: \"growth marketing\", value: \"growth marketing\" },\n { label: \"influencer marketing\", value: \"influencer marketing\" },\n { label: \"other\", value: \"other\" },\n { label: \"partner marketing\", value: \"partner marketing\" },\n { label: \"PR\", value: \"PR\" },\n { label: \"product marketing\", value: \"product marketing\" },\n { label: \"retention marketing\", value: \"retention marketing\" },\n { label: \"revenue ops\", value: \"revenue ops\" },\n { label: \"social media marketing\", value: \"social media marketing\" },\n ],\n teamSize: [],\n organizationType: [\n { label: \"ecom brand\", value: \"ecom brand\" },\n { label: \"retail brand\", value: \"retail brand\" },\n { label: \"onmichannel brand\", value: \"onmichannel brand\" },\n { label: \"agency\", value: \"agency\" },\n {\n label: \"software or service provider\",\n value: \"software or service provider\",\n },\n { label: \"marketplace\", value: \"marketplace\" },\n ],\n ecomIndustry: [\n { label: \"Apparel & Fashion\", value: \"Apparel & Fashion\" },\n { label: \"Beauty & Cosmetics\", value: \"Beauty & Cosmetics\" },\n { label: \"Books & Stationary\", value: \"Books & Stationary\" },\n { label: \"Construction Goods\", value: \"Construction Goods\" },\n { label: \"Consumer Packaged Goods\", value: \"Consumer Packaged Goods\" },\n { label: \"Electronics\", value: \"Electronics\" },\n { label: \"Fitness\", value: \"Fitness\" },\n { label: \"Food & Beverage\", value: \"Food & Beverage\" },\n { label: \"Health\", value: \"Health\" },\n { label: \"Home Improvement\", value: \"Home Improvement\" },\n { label: \"Kids & Toys\", value: \"Kids & Toys\" },\n { label: \"Luxury Goods\", value: \"Luxury Goods\" },\n { label: \"Pet Suplies\", value: \"Pet Suplies\" },\n { label: \"Shoes\", value: \"Shoes\" },\n { label: \"Sporting Goods\", value: \"Sporting Goods\" },\n { label: \"Travel Goods\", value: \"Travel Goods\" },\n { label: \"Wellness\", value: \"Wellness\" },\n { label: \"Other\", value: \"Other\" },\n ],\n revenue: [\n { label: \"$0-$100k\", value: \"$0-$100k\" },\n { label: \"$101k-$999k\", value: \"$101k-$999k\" },\n { label: \"$1M-$10M\", value: \"$1M-$10M\" },\n { label: \"$11M-$50M\", value: \"$11M-$50M\" },\n { label: \"$51M-$100M\", value: \"$51M-$100M\" },\n { label: \"$100M+\", value: \"$100M+\" },\n ],\n },\n [CommunitySlug.Fintechtakes]: {\n yearsOfExperience: [\n { label: \"0 - 5\", value: \"0-5\" },\n { label: \"6 - 12\", value: \"6-12\" },\n { label: \"12+\", value: \"12+\" },\n ],\n jobFunction: [\n {\n label: \"Compliance, Legal, & Regulatory Affairs\",\n value: \"Compliance, Legal, & Regulatory Affairs\",\n },\n { label: \"Corp Dev & Investing\", value: \"Corp Dev & Investing\" },\n {\n label: \"Customer Success & Client Management\",\n value: \"Customer Success & Client Management\",\n },\n { label: \"Data & Analytics\", value: \"Data & Analytics\" },\n { label: \"Engineering\", value: \"Engineering\" },\n { label: \"Executive Leadership\", value: \"Executive Leadership\" },\n { label: \"Finance & Accounting\", value: \"Finance & Accounting\" },\n { label: \"Founding a Startup\", value: \"Founding a Startup\" },\n { label: \"Human Resources\", value: \"Human Resources\" },\n { label: \"Marketing\", value: \"Marketing\" },\n { label: \"Media & PR\", value: \"Media & PR\" },\n { label: \"Partnerships\", value: \"Partnerships\" },\n { label: \"Product Management\", value: \"Product Management\" },\n { label: \"Risk Management\", value: \"Risk Management\" },\n { label: \"Sales\", value: \"Sales\" },\n { label: \"Strategy & Operations\", value: \"Strategy & Operations\" },\n { label: \"Other\", value: \"Other\" },\n ],\n organizationType: [\n { label: \"BaaS platform\", value: \"BaaS platform\" },\n { label: \"BNPL Provider\", value: \"BNPL Provider\" },\n { label: \"Commercial bank\", value: \"Commercial bank\" },\n { label: \"Credit union\", value: \"Credit union\" },\n { label: \"Crypto or Blockchain\", value: \"Crypto or Blockchain\" },\n { label: \"Embedded Finance Org\", value: \"Embedded Finance Org\" },\n {\n label: \"Government Agency / Regulator\",\n value: \"Government Agency / Regulator\",\n },\n { label: \"Insurtech\", value: \"Insurtech\" },\n { label: \"Investment Bank\", value: \"Investment Bank\" },\n { label: \"Media\", value: \"Media\" },\n { label: \"Neobank\", value: \"Neobank\" },\n { label: \"Nonbank Lender\", value: \"Nonbank Lender\" },\n { label: \"Payroll System Provider\", value: \"Payroll System Provider\" },\n { label: \"RegTech Provider\", value: \"RegTech Provider\" },\n { label: \"Venture Capital Firm\", value: \"Venture Capital Firm\" },\n {\n label: \"Wealth or Investment Platform\",\n value: \"Wealth or Investment Platform\",\n },\n { label: \"Other\", value: \"Other\" },\n ],\n },\n}\n\nconst YearsOfExperienceInput = ({\n value,\n onClick,\n}: {\n value: string\n onClick: (value: string) => void\n}) => {\n const community = useCommunity()\n const { formState } = useFormContext()\n const ccls = useCommunityClassname()\n\n return (\n
    \n \n {QUESTIONS[community.slug].yearsOfExperience.map((option) => (\n onClick(option.value)}\n className={cn(\n \"bg-white border border-slate-200 cursor-pointer rounded-full py-[6px] px-4 text-xs text-center\",\n value === option.value &&\n ccls({\n [CommunitySlug.Gotomillions]:\n \"bg-primary text-white border-primary\",\n [CommunitySlug.Fintechtakes]:\n \"bg-primary text-white border-primary\",\n default: \"bg-highlight text-white border-highlight\",\n }),\n ccls({\n [CommunitySlug.Gotomillions]: \"border-primary\",\n default: \"hover:border-highlight\",\n })\n )}\n >\n {option.label}\n \n ))}\n
    \n \n )\n}\n\nconst CupsOfCoffeeInput = ({\n value,\n onClick,\n}: {\n value: string\n onClick: (value: string) => void\n}) => {\n const community = useCommunity()\n const { formState } = useFormContext()\n\n return (\n \n
    \n {QUESTIONS[community.slug].cupsOfCoffee?.map((option, index) => {\n const selectedIndex = QUESTIONS[\n community.slug\n ].cupsOfCoffee?.findIndex((opt) => opt.value === value)\n const isHighlighted =\n selectedIndex !== undefined && selectedIndex >= index\n\n return (\n onClick(option.value)}\n className={cn(\n \"cursor-pointer\",\n isHighlighted && \"text-highlight\"\n )}\n >\n \n \n )\n })}\n
    \n \n )\n}\n\nexport const MadlibsQuestions = ({ control }: MadlibsQuestionsProps) => {\n const community = useCommunity()\n const { setValue, watch, formState } = useFormContext()\n\n const yearsOfExperience = watch(\"yearsOfExperience\")\n const setYearsOfExperience = (value: string) => {\n setValue(\"yearsOfExperience\", value)\n }\n\n const cupsOfCoffee = watch(\"cupsOfCoffee\")\n const setCupsOfCoffee = (value: string) => {\n setValue(\"cupsOfCoffee\", value)\n }\n\n return (\n
    \n {formState.errors.madlibsQuestions && (\n

    \n Please answer all questions.\n

    \n )}\n \n ),\n CupsOfCoffeeInput: (\n \n ),\n JobFunctionSelect: (\n \n ),\n JobFunctionInput: (\n \n ),\n JobTitleInput: (\n \n ),\n RoleInput: (\n \n ),\n TeamSizeInput: (\n \n ),\n OrganizationTypeInput: (\n \n ),\n BusinessSelect: (\n \n ),\n EcomIndustrySelect: (\n \n ),\n RevenueSelect: (\n \n ),\n }}\n />\n
    \n )\n}\n","import { Translation } from \"~/common/Translation\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { H3, P } from \"~/ui/typography\"\nimport { useEffect, useRef, useCallback, useMemo } from \"react\"\nimport debounce from \"lodash/debounce\"\nimport { Button } from \"~/ui/button\"\nimport { useScreenVariant } from \"~/screens/ScreenVariantsProvider\"\nimport { useLead } from \"~/common/LeadContext\"\nimport { Form } from \"~/ui/form\"\nimport {\n AhoyEventTypeEnum,\n CommunitySlug,\n ReferralSourceEnum,\n ScreenEnum,\n UserResponsibilitiesInput,\n UserResponsibilityQuestionsEnum,\n UserSignupInput,\n} from \"~/__generated__/graphql\"\nimport { gql } from \"~/__generated__\"\nimport { LEAD_UPDATE_MUTATION } from \"~/common/useLead\"\nimport { useForm } from \"react-hook-form\"\nimport { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { z } from \"zod\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { TextField } from \"~/components/forms/TextField\"\nimport { ResponsibilityQuestions } from \"./ApplicationLandingScreen/ResponsibilityQuestions\"\nimport { MadlibsQuestions } from \"./ApplicationLandingScreen/MadlibsQuestions\"\nimport { displayErrors } from \"~/common/validations\"\nimport { useTranslation } from \"react-i18next\"\nimport { camelCase } from \"change-case\"\nimport {\n applicationFitWaitingScreenPath,\n applicationMostExcitedAboutPath,\n} from \"~/common/paths\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useInternalSearchParams } from \"~/common/useInternalSearchParams\"\nimport { useApplicationLayout } from \"../layouts/ApplicationLayout\"\nimport { cn } from \"~/lib/utils\"\nimport { useConfig } from \"~/common/ConfigProvider\"\n\nconst responsibilityQuestionsSchema = z.object({\n // Safespace\n definingGuidingAndImplementingThePeopleStrategy: z.boolean(),\n actingAsAKeyDecisionMaker: z.boolean(),\n recruitingAmazingTalent: z.boolean(),\n onboardingCompensationPerformanceManagement: z.boolean(),\n managingHrBudgetAndAllocatingResources: z.boolean(),\n designingAndImplementingTrainingPrograms: z.boolean(),\n allOperationsWithinMyCompany: z.boolean(),\n noneOfTheAbove: z.boolean(),\n\n // BoardRoom\n leadingOrAdvisingOnLongTermStrategy: z.boolean(),\n leadingOrContributingToCorporateDevelopmentEfforts: z.boolean(),\n managingMyPatientsAndTheirHealthJourney: z.boolean(),\n overseeingDailyOperationsThatHelpMyOrgGrowAndOperate: z.boolean(),\n ensuringOrganizationalComplianceWithHealthcareLaws: z.boolean(),\n contributingToHealthcareInvestmentResearchAndOrAnalysis: z.boolean(),\n workingWithInfluentialStakeholdersToDriveHealthSystem: z.boolean(),\n facilitatingDevelopmentAndOrBrokerageOfRealEstate: z.boolean(),\n expandingBusinessDevelopmentEffortsSalesMarketing: z.boolean(),\n\n // Marketingland\n managementOfAMarketingTeam: z.boolean(),\n developmentAndExecutionOfStrategicMarketingPlans: z.boolean(),\n marketResearchAndConsumerInsights: z.boolean(),\n contentAndBrandStrategy: z.boolean(),\n drivingRevenueThroughLeadGenerationEfforts: z.boolean(),\n salesBusinessDevelopmentTeam: z.boolean(),\n aStrategyAndBudgetForAtLeastOneMarketingChannel: z.boolean(),\n assessmentAndSelectionOfOutsideVendorsToolsAndAgencies: z.boolean(),\n\n // Go to Millions\n makingProductAndBrandLaunchesSuccessful: z.boolean(),\n theMarginLtvAndOverallGrowthOfOurEcomBusiness: z.boolean(),\n supplyChainAndOperations: z.boolean(),\n ourCompanySMarketingBudgetInPartOrFull: z.boolean(),\n theDevelopmentAndExecutionOfStrategicMarketingPlans: z.boolean(),\n theDesignEditingOrCreativeDirectionOfOurMarketing: z.boolean(),\n managementAndSelectionOfVendorsTechnologyAndAgencies: z.boolean(),\n developingPartnershipsWithEcomBrandsAsAVendorOrAgency: z.boolean(),\n\n // Fintech Takes\n drivingTheDevelopmentOfInnovativeFinancialProducts: z.boolean(),\n analyzingMarketTrendsAndLeveragingDataInsights: z.boolean(),\n enhancingRiskAndComplianceFrameworks: z.boolean(),\n managingLargeScaleInitiatives: z.boolean(),\n focusingOnB2cMarketingEfforts: z.boolean(),\n buildingStrategicPartnerships: z.boolean(),\n applyingAdvancedAnalyticsOrMachineLearning: z.boolean(),\n leadingOperationalScalingEffortsThroughProcess: z.boolean(),\n handlingHrAdministrationCompanyPolicies: z.boolean(),\n // FTT - New\n buildingProductsAndServicesThatCustomersWillLove: z.boolean(),\n figuringOutWhatsHappeningInTheIndustry: z.boolean(),\n managingCreditFraudAndComplianceRisk: z.boolean(),\n developingOrMaintainingMyCompanysTechStack: z.boolean(),\n runningB2cMarketingCampaigns: z.boolean(),\n buildingPartnershipsWithThirdParties: z.boolean(),\n developingAnalyticModels: z.boolean(),\n solvingOperationalProblemsAndHelpingMyCompany: z.boolean(),\n managingHumanResourcesHr: z.boolean(),\n})\n\nconst formSchema = z.object({\n email: z.string().email({ message: \"Invalid email address\" }),\n yearsOfExperience: z.string(),\n jobFunction: z.string(),\n jobTitle: z.string(),\n teamSize: z.string(),\n madlibsRole: z.string(),\n organizationType: z.string(),\n business: z.string(),\n cupsOfCoffee: z.string(),\n ecomIndustry: z.string(),\n revenue: z.string(),\n responsibilityQuestions: responsibilityQuestionsSchema,\n})\n\nconst REQUIRED_FIELDS_FOR_COMMUNITY: Record = {\n [CommunitySlug.Safespace]: [\n \"yearsOfExperience\",\n \"jobFunction\",\n \"jobTitle\",\n \"teamSize\",\n \"madlibsRole\",\n ],\n [CommunitySlug.Boardroom]: [\n \"yearsOfExperience\",\n \"jobFunction\",\n \"jobTitle\",\n \"organizationType\",\n ],\n [CommunitySlug.Marketingland]: [\n \"yearsOfExperience\",\n \"business\",\n \"jobFunction\",\n \"organizationType\",\n \"teamSize\",\n \"cupsOfCoffee\",\n ],\n [CommunitySlug.Gotomillions]: [\n \"yearsOfExperience\",\n \"jobFunction\",\n \"jobTitle\",\n \"organizationType\",\n \"ecomIndustry\",\n \"revenue\",\n ],\n [CommunitySlug.Fintechtakes]: [\n \"yearsOfExperience\",\n \"jobFunction\",\n \"jobTitle\",\n \"organizationType\",\n ],\n}\n\nconst getFormSchemaWithRequiredFields = (communitySlug: CommunitySlug) => {\n return formSchema.superRefine((data, ctx) => {\n if (!data.email) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Email is required\",\n path: [\"email\"],\n })\n }\n\n REQUIRED_FIELDS_FOR_COMMUNITY[communitySlug].forEach((field) => {\n if (!data[field as keyof typeof data]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `${field} is required`,\n path: [field],\n })\n }\n })\n\n if (data.responsibilityQuestions) {\n const hasSelectedResponsibility = Object.values(\n data.responsibilityQuestions\n ).some((value) => value === true)\n\n if (!hasSelectedResponsibility) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Please select at least one responsibility\",\n path: [\"responsibilityQuestions\"],\n })\n }\n }\n })\n}\n\nexport type FormValues = z.infer\ntype ResponsibilityQuestionValues = z.infer<\n typeof responsibilityQuestionsSchema\n>\n\nexport const ApplicationLandingScreen = () => {\n const ccls = useCommunityClassname()\n const hasLoggedEmailEvent = useRef(false)\n const preventDuplicateRef = useRef(false)\n const { logEvent } = useLogEvent()\n const internalSearchParams = useInternalSearchParams()\n const screenVariant = useScreenVariant(\n ScreenEnum.ApplicationLandingScreen,\n internalSearchParams.get(\"v\")\n )\n const community = useCommunity()\n const { setBanner } = useApplicationLayout()\n\n const { userResponsibilityQuestions } = useCommunity()\n const { qaToolsEnabled } = useConfig()\n const {\n lead,\n loading: leadLoading,\n clearLead,\n } = useLead({ preventDuplicateRef })\n const [runUserCreate, { loading }] = useSafeMutation(USER_SIGNUP_MUTATION)\n const [runLeadUpdate] = useSafeMutation(LEAD_UPDATE_MUTATION)\n\n const form = useForm({\n resolver: zodResolver(getFormSchemaWithRequiredFields(community.slug)),\n defaultValues: {\n email: \"\",\n yearsOfExperience: \"\",\n jobFunction: \"\",\n jobTitle: \"\",\n madlibsRole: \"\",\n organizationType: \"\",\n teamSize: \"\",\n business: \"\",\n cupsOfCoffee: \"\",\n ecomIndustry: \"\",\n revenue: \"\",\n responsibilityQuestions: {\n // Safespace\n definingGuidingAndImplementingThePeopleStrategy: false,\n actingAsAKeyDecisionMaker: false,\n recruitingAmazingTalent: false,\n onboardingCompensationPerformanceManagement: false,\n managingHrBudgetAndAllocatingResources: false,\n designingAndImplementingTrainingPrograms: false,\n allOperationsWithinMyCompany: false,\n noneOfTheAbove: false,\n\n // BoardRoom\n leadingOrAdvisingOnLongTermStrategy: false,\n leadingOrContributingToCorporateDevelopmentEfforts: false,\n managingMyPatientsAndTheirHealthJourney: false,\n overseeingDailyOperationsThatHelpMyOrgGrowAndOperate: false,\n ensuringOrganizationalComplianceWithHealthcareLaws: false,\n contributingToHealthcareInvestmentResearchAndOrAnalysis: false,\n workingWithInfluentialStakeholdersToDriveHealthSystem: false,\n facilitatingDevelopmentAndOrBrokerageOfRealEstate: false,\n expandingBusinessDevelopmentEffortsSalesMarketing: false,\n\n // Marketingland\n managementOfAMarketingTeam: false,\n developmentAndExecutionOfStrategicMarketingPlans: false,\n marketResearchAndConsumerInsights: false,\n contentAndBrandStrategy: false,\n drivingRevenueThroughLeadGenerationEfforts: false,\n salesBusinessDevelopmentTeam: false,\n aStrategyAndBudgetForAtLeastOneMarketingChannel: false,\n assessmentAndSelectionOfOutsideVendorsToolsAndAgencies: false,\n\n // Go to Millions\n makingProductAndBrandLaunchesSuccessful: false,\n theMarginLtvAndOverallGrowthOfOurEcomBusiness: false,\n supplyChainAndOperations: false,\n ourCompanySMarketingBudgetInPartOrFull: false,\n theDevelopmentAndExecutionOfStrategicMarketingPlans: false,\n theDesignEditingOrCreativeDirectionOfOurMarketing: false,\n managementAndSelectionOfVendorsTechnologyAndAgencies: false,\n developingPartnershipsWithEcomBrandsAsAVendorOrAgency: false,\n\n // Fintech Takes\n drivingTheDevelopmentOfInnovativeFinancialProducts: false,\n analyzingMarketTrendsAndLeveragingDataInsights: false,\n enhancingRiskAndComplianceFrameworks: false,\n managingLargeScaleInitiatives: false,\n focusingOnB2cMarketingEfforts: false,\n buildingStrategicPartnerships: false,\n applyingAdvancedAnalyticsOrMachineLearning: false,\n leadingOperationalScalingEffortsThroughProcess: false,\n handlingHrAdministrationCompanyPolicies: false,\n\n // FTT - New\n buildingProductsAndServicesThatCustomersWillLove: false,\n figuringOutWhatsHappeningInTheIndustry: false,\n managingCreditFraudAndComplianceRisk: false,\n developingOrMaintainingMyCompanysTechStack: false,\n runningB2cMarketingCampaigns: false,\n buildingPartnershipsWithThirdParties: false,\n developingAnalyticModels: false,\n solvingOperationalProblemsAndHelpingMyCompany: false,\n managingHumanResourcesHr: false,\n },\n },\n })\n const { t } = useTranslation(\"responsibilityQuestions\")\n const { setValue, watch } = form\n const hasLoggedFirstChange = useRef(false)\n\n // Watch all relevant form fields\n const formValues = watch([\n \"yearsOfExperience\",\n \"cupsOfCoffee\",\n \"jobFunction\",\n \"jobTitle\",\n \"madlibsRole\",\n \"teamSize\",\n \"organizationType\",\n \"business\",\n ])\n\n const formResponsibilityQuestions = watch(\"responsibilityQuestions\")\n\n useEffect(() => {\n if (\n !hasLoggedFirstChange.current &&\n (formValues.some((value) => value) ||\n Object.values(formResponsibilityQuestions).some((value) => value))\n ) {\n logEvent(AhoyEventTypeEnum.ApplicationStarted)\n if (lead) {\n runLeadUpdate({\n variables: {\n input: {\n id: lead.id,\n applicationStartedAt: new Date(),\n },\n },\n })\n }\n hasLoggedFirstChange.current = true\n }\n }, [\n formValues,\n community.slug,\n logEvent,\n formResponsibilityQuestions,\n lead,\n runLeadUpdate,\n ])\n\n useEffect(() => {\n if (!leadLoading && lead && lead.email) {\n form.setValue(\"email\", lead.email)\n }\n }, [lead, form, leadLoading])\n\n const onSubmit = async (formData: FormValues) => {\n const userResponsibilitiesInput: UserResponsibilitiesInput = {}\n\n Object.values(UserResponsibilityQuestionsEnum).forEach((question) => {\n if (!userResponsibilityQuestions.includes(question)) {\n return\n }\n\n userResponsibilitiesInput[\n camelCase(question) as keyof UserResponsibilitiesInput\n ] = {\n question: t(question),\n answer:\n formData.responsibilityQuestions[\n camelCase(question) as keyof FormValues[\"responsibilityQuestions\"]\n ],\n }\n })\n\n const userInput: UserSignupInput = {\n email: formData.email,\n userSignupMadlibsInput: {\n yearsOfExperience: formData.yearsOfExperience,\n jobFunction: formData.jobFunction,\n jobTitle: formData.jobTitle,\n teamSize: formData.teamSize,\n madlibsRole: formData.madlibsRole,\n cupsOfCoffee: formData.cupsOfCoffee,\n business: formData.business,\n organizationType: formData.organizationType,\n ecomIndustry: formData.ecomIndustry,\n revenue: formData.revenue,\n },\n userResponsibilities: userResponsibilitiesInput,\n }\n\n const { errors } = await runUserCreate({\n variables: {\n input: {\n leadId: lead?.id,\n ...userInput,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors, form.setError)\n return false\n } else {\n logEvent(AhoyEventTypeEnum.ApplicationSubmitted)\n if (lead?.source === ReferralSourceEnum.AdminInvited) {\n clearLead()\n window.location.href = applicationMostExcitedAboutPath.pattern\n } else {\n clearLead()\n window.location.href = applicationFitWaitingScreenPath.pattern\n }\n }\n }\n\n type KeyValue = {\n key: keyof FormValues\n value: string\n }\n const FIT_QUESTIONS: Record<\n CommunitySlug,\n {\n madlibs: KeyValue[]\n responsibilityQuestions: Partial | []\n }\n > = {\n [CommunitySlug.Safespace]: {\n madlibs: [\n {\n key: \"yearsOfExperience\",\n value: \"10+\",\n },\n {\n key: \"jobFunction\",\n value: \"Compensation & Benefits\",\n },\n {\n key: \"madlibsRole\",\n value: \"am an IC\",\n },\n {\n key: \"teamSize\",\n value: \"1\",\n },\n {\n key: \"jobTitle\",\n value: \"Manager\",\n },\n ],\n responsibilityQuestions: {\n definingGuidingAndImplementingThePeopleStrategy: true,\n },\n },\n [CommunitySlug.Boardroom]: {\n madlibs: [\n { key: \"yearsOfExperience\", value: \"4-10\" },\n { key: \"jobFunction\", value: \"Consulting\" },\n { key: \"jobTitle\", value: \"Consultant\" },\n { key: \"organizationType\", value: \"Consulting Firm\" },\n ],\n responsibilityQuestions: {\n leadingOrAdvisingOnLongTermStrategy: true,\n },\n },\n [CommunitySlug.Marketingland]: {\n madlibs: [\n { key: \"yearsOfExperience\", value: \"6-10\" },\n { key: \"business\", value: \"B2C\" },\n { key: \"organizationType\", value: \"at a brand\" },\n { key: \"teamSize\", value: \"2-5\" },\n { key: \"cupsOfCoffee\", value: \"4 cups\" },\n { key: \"jobFunction\", value: \"Influencer\" },\n { key: \"jobTitle\", value: \"Marketing Manager\" },\n ],\n responsibilityQuestions: {\n managementOfAMarketingTeam: true,\n },\n },\n [CommunitySlug.Gotomillions]: {\n madlibs: [\n { key: \"yearsOfExperience\", value: \"5-10\" },\n { key: \"jobFunction\", value: \"amazon\" },\n { key: \"organizationType\", value: \"ecom brand\" },\n { key: \"jobTitle\", value: \"Brand Manager\" },\n { key: \"revenue\", value: \"$1M-$10M\" },\n { key: \"ecomIndustry\", value: \"Fitness\" },\n ],\n responsibilityQuestions: {\n makingProductAndBrandLaunchesSuccessful: true,\n },\n },\n [CommunitySlug.Fintechtakes]: {\n madlibs: [\n { key: \"yearsOfExperience\", value: \"6-12\" },\n {\n key: \"jobFunction\",\n value: \"Compliance, Legal, & Regulatory Affairs\",\n },\n { key: \"jobTitle\", value: \"Compliance Officer\" },\n { key: \"organizationType\", value: \"BaaS platform\" },\n ],\n responsibilityQuestions: {\n buildingProductsAndServicesThatCustomersWillLove: true,\n },\n },\n }\n\n const UNFIT_QUESTIONS: Record<\n CommunitySlug,\n {\n madlibs: KeyValue[]\n responsibilityQuestions: Partial | []\n }\n > = {\n [CommunitySlug.Safespace]: {\n madlibs: [\n {\n key: \"yearsOfExperience\",\n value: \"10+\",\n },\n {\n key: \"jobFunction\",\n value: \"Compensation & Benefits\",\n },\n {\n key: \"madlibsRole\",\n value: \"manage a team(s)\",\n },\n {\n key: \"teamSize\",\n value: \"1\",\n },\n {\n key: \"jobTitle\",\n value: \"Manager\",\n },\n ],\n responsibilityQuestions: {\n noneOfTheAbove: true,\n },\n },\n [CommunitySlug.Boardroom]: {\n madlibs: [\n { key: \"yearsOfExperience\", value: \"4-10\" },\n { key: \"jobFunction\", value: \"Consulting\" },\n { key: \"jobTitle\", value: \"Consultant\" },\n { key: \"organizationType\", value: \"Consulting Firm\" },\n ],\n responsibilityQuestions: {\n facilitatingDevelopmentAndOrBrokerageOfRealEstate: true,\n },\n },\n [CommunitySlug.Marketingland]: {\n madlibs: [\n { key: \"yearsOfExperience\", value: \"0-5\" },\n { key: \"business\", value: \"B2C\" },\n { key: \"organizationType\", value: \"at an agency\" },\n { key: \"teamSize\", value: \"just me!\" },\n { key: \"cupsOfCoffee\", value: \"1 cup\" },\n { key: \"jobFunction\", value: \"Influencer\" },\n { key: \"jobTitle\", value: \"Marketing Manager\" },\n ],\n responsibilityQuestions: {\n noneOfTheAbove: true,\n },\n },\n [CommunitySlug.Gotomillions]: {\n madlibs: [\n { key: \"yearsOfExperience\", value: \"0-4\" },\n { key: \"jobFunction\", value: \"account based marketing\" },\n { key: \"jobTitle\", value: \"Brand Manager\" },\n { key: \"organizationType\", value: \"agency\" },\n { key: \"revenue\", value: \"$0-$100k\" },\n { key: \"ecomIndustry\", value: \"Fitness\" },\n ],\n responsibilityQuestions: {\n noneOfTheAbove: true,\n },\n },\n [CommunitySlug.Fintechtakes]: {\n madlibs: [\n { key: \"yearsOfExperience\", value: \"0-5\" },\n { key: \"jobFunction\", value: \"Sales\" },\n { key: \"jobTitle\", value: \"Sales Manager\" },\n { key: \"organizationType\", value: \"Other\" },\n ],\n responsibilityQuestions: {\n runningB2cMarketingCampaigns: true,\n },\n },\n }\n\n const selectQuestions = (questionType: \"fit\" | \"unfit\") => {\n const questions =\n questionType === \"fit\"\n ? FIT_QUESTIONS[community.slug]\n : UNFIT_QUESTIONS[community.slug]\n\n questions.madlibs.forEach((question) => {\n setValue(question.key, question.value)\n })\n\n Object.entries(questions.responsibilityQuestions).forEach(\n ([key, value]) => {\n setValue(\n `responsibilityQuestions.${key}` as `responsibilityQuestions.${keyof ResponsibilityQuestionValues}`,\n value\n )\n }\n )\n }\n\n const debouncedHandleValidEmail = useMemo(\n () =>\n debounce((email: string) => {\n if (!hasLoggedEmailEvent.current || (lead && lead.email !== email)) {\n logEvent(AhoyEventTypeEnum.ApplicationEmailEntered)\n if (lead?.id) {\n runLeadUpdate({\n variables: {\n input: {\n id: lead.id,\n email,\n applicationStartedAt: new Date(),\n },\n },\n })\n }\n hasLoggedEmailEvent.current = true\n }\n }, 3000),\n [lead, logEvent, runLeadUpdate]\n )\n\n const handleValidEmail = useCallback(\n (email: string) => debouncedHandleValidEmail(email),\n [debouncedHandleValidEmail]\n )\n\n const onEmailChange = (e: React.ChangeEvent) => {\n const email = e.target.value\n form.setValue(\"email\", email)\n\n const isValidEmail = formSchema.shape.email.safeParse(email).success\n if (isValidEmail) {\n handleValidEmail(email)\n }\n }\n\n useEffect(() => {\n if (screenVariant?.overrides?.options?.showBanner) {\n setBanner(\n \n )\n }\n\n return () => {\n setBanner()\n }\n }, [screenVariant, setBanner])\n\n return (\n
    \n {qaToolsEnabled && (\n
    \n
    \n

    QA Tools

    \n
    \n selectQuestions(\"fit\")}\n className=\"px-4 py-2 bg-green-500 text-white rounded hover:bg-green-600 text-sm\"\n >\n Select Fit\n \n selectQuestions(\"unfit\")}\n className=\"px-4 py-2 bg-red-500 text-white rounded hover:bg-red-600 text-sm\"\n >\n Select Unfit\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\nconst USER_SIGNUP_MUTATION = gql(`\n mutation LandingUserSignup($input: UserSignupInput!) {\n userSignup(input: $input) {\n user {\n id\n }\n sessionId\n }\n }\n`)\n","import { useMutation } from \"@apollo/client\"\nimport { useCallback } from \"react\"\nimport { gql } from \"~/__generated__\"\nimport {\n UserExperimentAssignVariantMutation,\n UserExperimentAssignVariantMutationVariables,\n AhoyEventTypeEnum,\n} from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { useConfig } from \"./ConfigProvider\"\n\nexport function useExperiment(experimentName: string) {\n const { qaToolsEnabled } = useConfig()\n const [assignVariant] = useMutation<\n UserExperimentAssignVariantMutation,\n UserExperimentAssignVariantMutationVariables\n >(ASSIGN_EXPERIMENT)\n\n const { logEvent } = useLogEvent()\n\n const getOrAssignVariant = useCallback(async () => {\n const { data } = await assignVariant({\n variables: {\n input: { experiment: experimentName },\n },\n })\n\n const experimentResult = data?.userExperimentAssignVariant\n const variant = experimentResult?.experiment?.variant\n const wasCreated = experimentResult?.wasCreated\n\n if (qaToolsEnabled) {\n console.log(\n `[analytics] - Experiment ${experimentName} variant ${\n wasCreated ? \"created\" : \"used\"\n }:`,\n variant\n )\n }\n\n if (wasCreated) {\n logEvent(AhoyEventTypeEnum.TestVariantAssigned, {\n test_name: experimentName,\n variant: variant,\n })\n }\n\n return { variant, wasCreated }\n }, [assignVariant, experimentName, logEvent, qaToolsEnabled])\n\n return { getOrAssignVariant }\n}\n\nconst ASSIGN_EXPERIMENT = gql(`\n mutation UserExperimentAssignVariant(\n $input: UserExperimentAssignVariantInput!\n ) {\n userExperimentAssignVariant(input: $input) {\n experiment {\n name\n variant\n }\n wasCreated\n }\n }\n`)\n","import { useQuery } from \"@apollo/client\"\nimport { Check } from \"lucide-react\"\nimport { gql } from \"~/__generated__\"\nimport { useForm } from \"react-hook-form\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { WaitingRoomHeader } from \"../ABFitWaitingScreen\"\nimport { displayErrors } from \"~/common/validations\"\nimport toast from \"react-hot-toast\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { Button } from \"~/ui/button\"\nimport { z } from \"zod\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { Form, FormControl, FormField, FormItem, FormLabel } from \"~/ui/form\"\nimport { AhoyEventTypeEnum, CommunitySlug } from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { cn } from \"~/lib/utils\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { Translation } from \"~/common/Translation\"\n\nconst invitationFormSchema = z.object({\n firstName: z.string().min(1, \"First name is required\"),\n email: z.string().email(\"Invalid email address\"),\n})\n\ntype InvitationFormValues = z.infer\n\nexport const Referral = () => {\n const ccls = useCommunityClassname()\n const { logEvent } = useLogEvent()\n const { data: invitationsData } = useQuery(INVITATIONS_QUERY)\n const invitations = invitationsData?.invitations?.nodes || []\n const form = useForm({\n resolver: zodResolver(invitationFormSchema),\n defaultValues: {\n firstName: \"\",\n email: \"\",\n },\n })\n\n const [createInvitation, { loading }] = useSafeMutation(\n INVITATION_CREATE_MUTATION,\n {\n refetchQueries: [{ query: INVITATIONS_QUERY }],\n }\n )\n\n const onSubmit = async (values: InvitationFormValues) => {\n const { errors, data } = await createInvitation({\n variables: {\n input: {\n firstName: values.firstName,\n email: values.email,\n },\n },\n })\n\n if (errors) {\n displayErrors(errors)\n } else {\n logEvent(AhoyEventTypeEnum.InvitationSubmitted, {\n invitation_email: values.email,\n invitation_id: data?.invitationCreate?.invitation?.id,\n })\n toast.success(\"Invitation sent!\")\n form.reset()\n }\n }\n\n return (\n <>\n
    \n \n
    \n Skip ahead in line by inviting a friend. Plus, you'll make their day.\n
    \n\n \n \n
    \n \n
    \n
    \n (\n \n \n First Name\n \n \n \n \n \n )}\n />\n
    \n
    \n (\n \n \n Email Address\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 {invitations.length > 0 && (\n \n \n

    Sent Invitations

    \n
    \n {invitations.map((invitation) => (\n \n
    \n \n \n
    \n {invitation.firstName}\n
    \n \n {invitation.email}\n \n
    \n ))}\n \n \n \n )}\n \n \n )\n}\n\nconst INVITATIONS_QUERY = gql(`\n query Invitations {\n invitations {\n nodes {\n id\n firstName\n email\n createdAt\n }\n }\n }\n`)\n\nconst INVITATION_CREATE_MUTATION = gql(`\n mutation InvitationCreate($input: InvitationCreateInput!) {\n invitationCreate(input: $input) {\n invitation {\n id\n email\n firstName\n }\n }\n }\n`)\n","import { useCallback, useState } from \"react\"\nimport { useQuery } from \"@apollo/client\"\nimport { gql } from \"~/__generated__\"\nimport { useDropzone } from \"react-dropzone\"\nimport { Button } from \"~/ui/button\"\nimport { Upload } from \"lucide-react\"\nimport { useFileUpload } from \"~/editor/useFileUpload\"\nimport toast from \"react-hot-toast\"\nimport { AhoyEventTypeEnum, CommunitySlug } from \"~/__generated__/graphql\"\nimport { useLogEvent } from \"~/analytics/EventsContext\"\nimport { cn } from \"~/lib/utils\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { Translation } from \"~/common/Translation\"\nexport const ONBOARDING_CONTENT_UPLOAD_QUERY = gql(`\n query OnboardingContentUploads {\n onboardingContentUploads {\n nodes {\n id\n attachment {\n filename\n }\n }\n }\n }\n`)\n\nexport const FileUploader = () => {\n const { logEvent } = useLogEvent()\n const [currentFile, setCurrentFile] = useState<{\n name: string\n progress?: number\n } | null>(null)\n const { refetch } = useQuery(ONBOARDING_CONTENT_UPLOAD_QUERY)\n const { uploadAndAttachFile, uploadAndAttachImage } = useFileUpload()\n\n const onDrop = useCallback(\n async (files: File[]) => {\n if (files.length === 0) return\n\n const file = files[0] // Only take the first file\n setCurrentFile({ name: file.name })\n\n const isImage = file.type.startsWith(\"image/\")\n\n const data = isImage\n ? await uploadAndAttachImage(file, true)\n : await uploadAndAttachFile(file, true)\n\n if (data) {\n logEvent(AhoyEventTypeEnum.ApplicationContentUploaded, {\n file_type: file.type,\n })\n toast.success(\"File uploaded successfully!\")\n await refetch()\n setCurrentFile(null)\n } else {\n setCurrentFile(null)\n }\n },\n [uploadAndAttachImage, uploadAndAttachFile, refetch, logEvent]\n )\n\n const ccls = useCommunityClassname()\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop,\n maxFiles: 1,\n multiple: false,\n maxSize: 52428800, // 50MB\n onDropRejected: () => {\n toast.error(\"File is too large. Maximum size is 50MB.\")\n },\n })\n\n return (\n \n
    \n \n {isDragActive ? (\n

    Drop file here...

    \n ) : (\n <>\n
    \n e.preventDefault()}\n >\n \n \n
    \n
    \n

    \n \n

    \n

    \n \n

    \n
    \n \n )}\n {currentFile && (\n
    \n
    \n {currentFile.name}\n {currentFile.progress !== undefined && (\n {Math.round(currentFile.progress)}%\n )}\n
    \n
    \n )}\n
    \n \n )\n}\n","import { useQuery } from \"@apollo/client\"\nimport { Check } from \"lucide-react\"\nimport { WaitingRoomHeader } from \"../ABFitWaitingScreen\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { FileUploader, ONBOARDING_CONTENT_UPLOAD_QUERY } from \"./FileUploader\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\nimport { useCommunityClassname } from \"~/community/useCommunity\"\nimport { cn } from \"~/lib/utils\"\nimport { Translation } from \"~/common/Translation\"\n\nexport const Upload = () => {\n const ccls = useCommunityClassname()\n const { data } = useQuery(ONBOARDING_CONTENT_UPLOAD_QUERY)\n const existingUploads = data?.onboardingContentUploads?.nodes || []\n return (\n <>\n
    \n \n
    \n \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n\n {existingUploads?.length > 0 && (\n \n \n

    Uploaded Content

    \n
    \n {existingUploads.map((upload) => (\n \n
    \n \n \n
    \n {upload.attachment.filename}\n
    \n
    \n ))}\n
    \n \n \n )}\n \n \n \n )\n}\n","import { useCommunity, useCommunityClassname } from \"~/community/useCommunity\"\nimport { Button } from \"~/ui/button\"\nimport { Link } from \"~/ui/Link\"\nimport { Scroll, CalendarPlus, Mic } from \"lucide-react\"\nimport { Card, CardContent } from \"~/ui/card\"\nimport { cn } from \"~/lib/utils\"\nimport { CommunitySlug } from \"~/__generated__/graphql\"\n\nconst CTACard = ({\n type,\n ctaData,\n}: {\n type: string\n ctaData: { url: string; copy: string }\n}) => {\n const ccls = useCommunityClassname()\n const Icon = () => {\n switch (type) {\n case \"newsletter\":\n return \n case \"events\":\n return \n case \"podcast\":\n return \n default:\n return null\n }\n }\n\n const getButtonText = () => {\n switch (type) {\n case \"newsletter\":\n return \"Read\"\n case \"events\":\n return \"RSVP\"\n case \"podcast\":\n return \"Listen\"\n default:\n return \"View\"\n }\n }\n\n return (\n \n \n
    \n \n \n
    \n

    {type}

    \n \n

    {ctaData.copy}

    \n \n \n {getButtonText()}\n \n \n
    \n
    \n )\n}\n\nexport const ProcessingCTAs = () => {\n const community = useCommunity()\n const ctas = community.applicationProcessingCtas || {}\n\n type CTAData = {\n url: string\n copy: string\n }\n\n const ctaCount = Object.keys(ctas).length\n\n return (\n \n {Object.entries(ctas as Record).map(\n ([type, ctaData]) => {\n if (!ctaData?.url) return null\n return \n }\n )}\n \n )\n}\n","import { useCommunity } from \"~/community/useCommunity\"\nimport { ProcessingCTAs } from \"./ProcessingCTAs\"\n\nexport const Rejected = () => {\n const community = useCommunity()\n const copy = community.applicationProcessingCopy || {}\n\n return (\n
    \n

    \n {copy.sorryHeading}\n

    \n
    \n

    {copy.sorrySubtext1}

    \n

    {copy.sorrySubtext2}

    \n {copy.sorryStrongSubtext && (\n

    \n {copy.sorryStrongSubtext}\n

    \n )}\n
    \n \n
    \n )\n}\n","import { WaitingRoomHeader } from \"../ABFitWaitingScreen\"\nimport { ProcessingCTAs } from \"./ProcessingCTAs\"\n\nexport const Processing = () => {\n return (\n
    \n \n \n
    \n )\n}\n","import { useEffect, useState } from \"react\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport { useNavigate } from \"react-router-dom\"\nimport { useExperiment } from \"~/common/useExperiment\"\nimport { Referral } from \"./ABFitWaitingScreen/Referral\"\nimport { Upload } from \"./ABFitWaitingScreen/Upload\"\nimport { Rejected } from \"./ABFitWaitingScreen/Rejected\"\nimport { Processing } from \"./ABFitWaitingScreen/Processing\"\nimport { applicationMostExcitedAboutPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { USER_UPDATE_MUTATION } from \"~/common/userUpdateMutation\"\nimport { Translation } from \"~/common/Translation\"\nimport { useConfig } from \"~/common/ConfigProvider\"\n\nexport const WaitingRoomHeader = () => {\n return (\n <>\n

    \n \n

    \n

    \n \n

    \n
    \n \n
    \n \n )\n}\n\nexport const ABFitWaitingScreen = () => {\n const { qaToolsEnabled } = useConfig()\n const [variant, setVariant] = useState(null)\n const { getOrAssignVariant } = useExperiment(\"waiting_room\")\n const navigate = useNavigate()\n\n const currentUser = useCurrentUser()\n const [timeRemaining, setTimeRemaining] = useState(5 * 60) // 5 minutes in seconds\n const [processingState, setProcessingState] = useState<\n \"processing\" | \"rejected\"\n >(\"processing\")\n const isFit = currentUser.fit\n const fitApplicationSubmittedAt = currentUser.fitApplicationSubmittedAt\n const fitnessDecisionCommunicatedAt =\n currentUser.fitnessDecisionCommunicatedAt\n\n const [runUserUpdate] = useSafeMutation(USER_UPDATE_MUTATION)\n\n if (isFit && fitnessDecisionCommunicatedAt) {\n navigate(applicationMostExcitedAboutPath.pattern)\n }\n\n useEffect(() => {\n if (isFit) {\n getOrAssignVariant().then(({ variant }) => {\n if (variant) {\n setVariant(variant)\n }\n })\n }\n }, [getOrAssignVariant, isFit])\n\n useEffect(() => {\n if (!isFit && processingState === \"processing\") {\n if (fitnessDecisionCommunicatedAt) {\n const decisionDate = new Date(fitnessDecisionCommunicatedAt)\n const thirtyMinutesAgo = new Date(Date.now() - 30 * 60 * 1000)\n\n if (decisionDate < thirtyMinutesAgo) {\n if (qaToolsEnabled) {\n console.log(\n \"Fitness decision was communicated more than 30 minutes ago, showing rejected state\"\n )\n }\n setProcessingState(\"rejected\")\n return\n }\n }\n\n if (fitApplicationSubmittedAt) {\n const submittedDate = new Date(fitApplicationSubmittedAt)\n const thirtyMinutesAgo = new Date(Date.now() - 30 * 60 * 1000)\n\n if (submittedDate < thirtyMinutesAgo) {\n if (qaToolsEnabled) {\n console.log(\n \"Application submitted more than 30 minutes ago, showing rejected state\"\n )\n }\n setProcessingState(\"rejected\")\n return\n }\n\n const remainingMs =\n submittedDate.getTime() + 30 * 60 * 1000 - Date.now()\n const remainingSecs = Math.max(0, Math.floor(remainingMs / 1000))\n setTimeRemaining(remainingSecs)\n\n const timer = setInterval(() => {\n setTimeRemaining((prev) => {\n if (prev <= 1) {\n setProcessingState(\"rejected\")\n return 0\n }\n return prev - 1\n })\n }, 1000)\n\n return () => clearInterval(timer)\n }\n }\n }, [\n isFit,\n processingState,\n fitApplicationSubmittedAt,\n fitnessDecisionCommunicatedAt,\n qaToolsEnabled,\n ])\n\n if (isFit && !variant) return
    Loading...
    \n\n return (\n
    \n
    \n {!isFit ? (\n processingState === \"processing\" ? (\n \n ) : (\n \n )\n ) : variant === \"refer_a_friend\" ? (\n \n ) : (\n \n )}\n
    \n\n {qaToolsEnabled && (\n
    \n
    \n

    QA Tools

    \n
    \n {!isFit && (\n <>\n \n setProcessingState(\n processingState === \"processing\"\n ? \"rejected\"\n : \"processing\"\n )\n }\n className=\"px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 text-sm\"\n >\n Switch to{\" \"}\n {processingState === \"processing\"\n ? \"Rejected\"\n : \"Processing\"}\n \n {processingState === \"processing\" && (\n
    \n Time until auto-reject: {timeRemaining}s\n
    \n )}\n \n )}\n {\n runUserUpdate({\n variables: {\n input: { fitnessDecisionCommunicatedAt: new Date() },\n },\n })\n }}\n className=\"px-4 py-2 bg-green-500 text-white rounded hover:bg-gray-600 text-sm disabled:opacity-50 disabled:cursor-not-allowed\"\n disabled={!isFit}\n >\n {isFit\n ? \"Simulate email was sent and proceed (will not send email)\"\n : \"User is not fit: So can't proceed\"}\n \n
    \n
    \n
    \n )}\n
    \n )\n}\n","import { useEffect } from \"react\"\nimport { Outlet, useNavigate } from \"react-router-dom\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\nimport {\n applicationLandingPath,\n applicationFitWaitingScreenPath,\n} from \"~/common/paths\"\nimport { UserDialogContextProvider } from \"~/directory/UserDialogContext\"\n\nexport const RequireUserOnboarding = () => {\n const navigate = useNavigate()\n const currentUser = useCurrentUser(false)\n\n useEffect(() => {\n if (currentUser) {\n navigate(applicationFitWaitingScreenPath.pattern)\n } else {\n navigate(applicationLandingPath.pattern)\n }\n }, [currentUser, navigate])\n\n if (!currentUser || currentUser.onboarded) {\n return null\n }\n\n return (\n \n \n \n )\n}\n","import { useEffect, useRef } from \"react\"\nimport { useSubscription } from \"~/subscriptions/SubscriptionProvider\"\nimport { useAuthenticatedLayout } from \"~/layouts/AuthenticatedLayout\"\nimport { useCurrentUser } from \"~/common/GlobalsProvider\"\n\nexport const ApplicationMostExcitedAboutScreen = () => {\n const currentUser = useCurrentUser()\n const { setIsBlurred } = useAuthenticatedLayout()\n const { openSubscriptionWizard } = useSubscription()\n const hasOpenedSubscriptionWizardRef = useRef(false)\n\n useEffect(() => {\n setIsBlurred(true)\n return () => setIsBlurred(false)\n }, [setIsBlurred])\n\n useEffect(() => {\n if (hasOpenedSubscriptionWizardRef.current) return\n hasOpenedSubscriptionWizardRef.current = true\n\n if (currentUser.mostExcitedAbout) {\n if (currentUser.activeStripeSubscription || currentUser.admin) {\n openSubscriptionWizard(\n \"SocialContractStep\",\n { disableSelectCurrentTier: false },\n (handle) => {\n handle.setDisableClose(true)\n }\n )\n } else {\n openSubscriptionWizard(\n \"PricingTableStep\",\n { disableSelectCurrentTier: false },\n (handle) => {\n handle.setDisableClose(true)\n }\n )\n }\n } else {\n openSubscriptionWizard(\n \"IntentStep\",\n { disableSelectCurrentTier: false },\n (handle) => {\n handle.setDisableClose(true)\n }\n )\n }\n }, [\n currentUser.admin,\n currentUser.mostExcitedAbout,\n openSubscriptionWizard,\n currentUser.activeStripeSubscription,\n ])\n\n return <>\n}\n","import { Route } from \"react-router-dom\"\nimport {\n applicationLandingPath,\n applicationFitWaitingScreenPath,\n applicationMostExcitedAboutPath,\n} from \"~/common/paths\"\nimport { ApplicationLayout } from \"./layouts/ApplicationLayout\"\nimport { ApplicationLandingScreen } from \"./screens/ApplicationLandingScreen\"\nimport { ABFitWaitingScreen } from \"./screens/ABFitWaitingScreen\"\nimport { RequireUserSignedOut } from \"~/layouts/RequireUserSignedOut\"\nimport { RequireUserOnboarding } from \"~/layouts/RequireUserOnboarding\"\nimport { ApplicationMostExcitedAboutScreen } from \"./screens/MostExcitedAboutScreen\"\nimport { RequireUserSignedIn } from \"~/layouts/RequireUserSignedIn\"\nimport { FeedSkeletonLayout } from \"~/layouts/FeedSkeletonLayout\"\nimport { AuthenticatedLayout } from \"~/layouts/AuthenticatedLayout\"\n\nexport const useApplicationRoutes = () => {\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}\n","import { useQuery } from \"@apollo/client\"\nimport { DotsHorizontalIcon } from \"@radix-ui/react-icons\"\nimport copy from \"copy-to-clipboard\"\nimport { Plus, Variable } from \"lucide-react\"\nimport { useMemo, useRef } from \"react\"\nimport toast from \"react-hot-toast\"\nimport { useTranslation } from \"react-i18next\"\nimport { useNavigate } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport {\n ScreenEnum,\n ScreenVariant_AdminFragment,\n} from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { AdminTable } from \"~/admin/users/UsersTable\"\nimport { formatDate } from \"~/common/formatDate\"\nimport {\n adminScreenVariantEditPath,\n adminScreenVariantNewPath,\n applicationLandingPath,\n} from \"~/common/paths\"\nimport { cn } from \"~/lib/utils\"\nimport { Badge } from \"~/ui/badge\"\nimport { Button } from \"~/ui/button\"\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"~/ui/context-menu\"\nimport { CopyToClipboard } from \"~/ui/CopyToClipboard\"\nimport { TableRow, TableCell } from \"~/ui/table\"\nimport { Muted, typographyVariants } from \"~/ui/typography\"\n\nconst HEADERS = [\n { label: \"Screen\" },\n { label: \"Variant Identifier\" },\n { label: \"Active\" },\n { label: \"Created At\" },\n { label: \"Last Edited\" },\n { label: \"\" },\n]\n\nexport const AdminScreenVariantsScreen = () => {\n const { data, loading } = useQuery(SCREEN_VARIANTS_QUERY_DOCUMENT)\n const navigate = useNavigate()\n\n const screenVariants = data?.screenVariants.nodes\n\n return (\n <>\n \n \n \n\n \n {(screenVariant) => (\n \n )}\n \n \n )\n}\n\nconst ScreenVariantRow = ({\n screenVariant,\n}: {\n screenVariant: ScreenVariant_AdminFragment\n}) => {\n const contextMenuTriggerRef = useRef(null)\n const triggerContextMenu = (e: React.MouseEvent) => {\n if (!contextMenuTriggerRef.current) return\n const event = new MouseEvent(\"contextmenu\", {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: e.clientX,\n clientY: e.clientY,\n })\n contextMenuTriggerRef.current?.dispatchEvent(event)\n }\n const navigate = useNavigate()\n const { t: screens } = useTranslation(\"screens\")\n\n const briefUrl = useMemo(() => {\n const screen = screenVariant.screen\n const variantIdentifier = screenVariant.variantIdentifier\n\n let url = \"\"\n if (screen === ScreenEnum.ApplicationLandingScreen) {\n url = applicationLandingPath.pattern\n }\n\n if (!variantIdentifier) {\n return url\n }\n\n return `${url}?v=${variantIdentifier}`\n }, [screenVariant])\n\n const url = useMemo(() => {\n const baseUrl = window.location.origin\n return [baseUrl, briefUrl].join(\"\")\n }, [briefUrl])\n\n const copyToClipboard = () => {\n copy(url)\n toast.success(\"Copied to clipboard\")\n }\n\n return (\n \n \n \n navigate(\n adminScreenVariantEditPath({ screenVariantId: screenVariant.id! })\n )\n }\n className=\"cursor-pointer\"\n >\n Edit Screen Variant\n \n \n Copy URL\n \n \n \n \n \n
    \n
    {screens(screenVariant.screen)}
    \n
    \n \n {briefUrl}\n \n
    \n
    \n
    \n \n {screenVariant.variantIdentifier || (default)}\n \n \n \n {screenVariant.active ? \"Yes\" : \"No\"}\n \n \n {formatDate(screenVariant.createdAt)}\n {formatDate(screenVariant.updatedAt)}\n \n \n \n
    \n
    \n
    \n )\n}\n\ngql(`\n fragment ScreenVariant_Admin on ScreenVariant {\n id\n screen\n variantIdentifier\n overrides\n active\n createdAt\n updatedAt\n }\n`)\n\nexport const SCREEN_VARIANTS_QUERY_DOCUMENT = gql(`\n query ScreenVariants($first: Int, $after: String) {\n screenVariants(first: $first, after: $after) {\n nodes {\n ...ScreenVariant_Admin\n }\n }\n }\n`)\n","import { ApolloError, FetchResult } from \"@apollo/client\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { camelCase, capitalCase } from \"change-case\"\nimport { Fragment, useEffect, useMemo, useState } from \"react\"\nimport { useForm, useWatch } from \"react-hook-form\"\nimport toast from \"react-hot-toast\"\nimport { useTranslation } from \"react-i18next\"\nimport { z } from \"zod\"\nimport {\n ScreenEnum,\n ScreenVariantCreateInput,\n ScreenVariantCreateMutation,\n ScreenVariantUpdateMutation,\n} from \"~/__generated__/graphql\"\nimport { AdminActionToolbar } from \"~/admin/AdminActionToolbar\"\nimport { applicationLandingPath } from \"~/common/paths\"\nimport { displayErrors } from \"~/common/validations\"\nimport { SelectField } from \"~/components/forms/SelectField\"\nimport { TextareaField } from \"~/components/forms/TextareaField\"\nimport { TextField } from \"~/components/forms/TextField\"\nimport { Button } from \"~/ui/button\"\nimport { Card, CardContent, CardHeader, CardTitle } from \"~/ui/card\"\nimport { CopyToClipboard } from \"~/ui/CopyToClipboard\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n} from \"~/ui/form\"\nimport { Input } from \"~/ui/input\"\nimport { Label } from \"~/ui/label\"\nimport { Switch } from \"~/ui/switch\"\n\nconst formSchema = z.object({\n screen: z.string().transform((v) => v as ScreenEnum),\n variantIdentifier: z\n .string()\n .refine((v) => v.length <= 50, \"Must be 50 characters or less\")\n .refine(\n (v) => /^[a-zA-Z0-9_-]*$/.test(v),\n \"Must only contain letters, numbers, underscores, and hyphens\"\n ),\n active: z.boolean(),\n overrides: z.object({\n translations: z.record(z.string(), z.string().optional()),\n options: z.record(z.string(), z.any()),\n }),\n})\n\nexport type ScreenVariantFormValues = z.infer\n\ninterface ScreenVariantFormProps {\n initialValues?: ScreenVariantFormValues\n onSubmit: (\n data: ScreenVariantCreateInput\n ) => Promise<\n | FetchResult\n | FetchResult\n >\n}\n\nexport const ScreenVariantForm = ({\n initialValues,\n onSubmit,\n}: ScreenVariantFormProps) => {\n const form = useForm({\n resolver: zodResolver(formSchema),\n defaultValues: initialValues || {\n screen: ScreenEnum.ApplicationLandingScreen,\n variantIdentifier: \"\",\n active: true,\n overrides: {\n translations: {},\n options: {},\n },\n },\n })\n const [isSaving, setIsSaving] = useState(false)\n const { t: screens } = useTranslation(\"screens\")\n\n const handleSubmit = async (data: ScreenVariantFormValues) => {\n setIsSaving(true)\n try {\n const { errors } = await onSubmit({\n ...data,\n })\n\n if (errors && (errors as unknown as ApolloError).graphQLErrors) {\n displayErrors(errors, form.setError)\n }\n } catch (e) {\n console.error(e)\n toast.error(\"Failed to save screenVariant\")\n }\n setIsSaving(false)\n }\n\n // Get the translation namespace for the screen using the screen as the namespace\n const { i18n } = useTranslation()\n const [defaultTranslationsForScreen, setDefaultTranslationsForScreen] =\n useState>({})\n\n const values = useWatch({ control: form.control })\n\n useEffect(() => {\n if (!values.screen) return\n if (i18n.store.data[\"en-US\"][camelCase(values.screen)]) {\n setDefaultTranslationsForScreen(\n i18n.store.data[\"en-US\"][camelCase(values.screen)] as Record<\n string,\n string\n >\n )\n }\n }, [i18n, values.screen])\n\n const url = useMemo(() => {\n const screen = values.screen\n const variantIdentifier = values.variantIdentifier\n\n const baseUrl = window.location.origin\n let url = \"\"\n if (screen === ScreenEnum.ApplicationLandingScreen) {\n url = applicationLandingPath.pattern\n }\n\n if (!url) return \"\"\n\n if (!variantIdentifier) {\n return `${baseUrl}${url}`\n }\n\n return `${baseUrl}${url}?v=${variantIdentifier}`\n }, [values])\n\n return (\n <>\n
    \n \n
    \n
    \n ({\n label: screens(option),\n value: option,\n }))}\n />\n\n \n\n {url && (\n
    \n \n \n \n \n }\n />\n
    \n )}\n
    \n \n \n Copy Overrides\n \n \n
    \n {defaultTranslationsForScreen &&\n Object.keys(defaultTranslationsForScreen).map((key) => (\n \n {defaultTranslationsForScreen[key].length > 100 ? (\n \n ) : (\n \n )}\n \n ))}\n
    \n
    \n
    \n\n \n \n Page Options\n \n \n
    \n {form.watch(\"screen\") ===\n ScreenEnum.ApplicationLandingScreen && (\n (\n \n
    \n \n Display Banner?\n \n \n If enabled, display the call to action banner on\n the screen.\n \n
    \n \n \n \n
    \n )}\n />\n )}\n\n {form.watch(\"screen\") === ScreenEnum.AddToHomescreenModal && (\n <>\n \n\n \n \n )}\n
    \n
    \n
    \n
    \n\n \n \n form.setValue(\"active\", !!value, { shouldDirty: true })\n }\n />\n \n Save Screen Variant\n \n \n
    \n \n \n )\n}\n","import { Hammer } from \"lucide-react\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport { ScreenVariantCreateInput } from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { ScreenVariantForm } from \"~/admin/ScreenVariantForm\"\nimport { adminScreenVariantsPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\n\nexport const AdminScreenVariantNewScreen = () => {\n const [runCreateScreenVariant] = useSafeMutation(\n SCREEN_VARIANT_CREATE_MUTATION\n )\n const navigate = useNavigate()\n\n const handleSubmit = async (data: ScreenVariantCreateInput) => {\n const response = await runCreateScreenVariant({\n variables: {\n input: data,\n },\n })\n\n const { data: responseData, errors } = response\n\n if (!errors && responseData?.screenVariantCreate?.screenVariant) {\n toast.success(\"Screen variant created.\")\n navigate(adminScreenVariantsPath.pattern)\n }\n\n return response\n }\n\n return (\n
    \n \n\n \n
    \n )\n}\n\nconst SCREEN_VARIANT_CREATE_MUTATION = gql(`\n mutation ScreenVariantCreate($input: ScreenVariantCreateInput!) {\n screenVariantCreate(input: $input) {\n screenVariant {\n ...ScreenVariant_Admin\n }\n }\n }\n`)\n","import { useQuery } from \"@apollo/client\"\nimport { Hammer } from \"lucide-react\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate, useParams } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport { ScreenVariantCreateInput } from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { ScreenVariantForm } from \"~/admin/ScreenVariantForm\"\nimport { adminScreenVariantsPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\n\nexport const AdminScreenVariantEditScreen = () => {\n const [runUpdateScreenVariant] = useSafeMutation(\n SCREEN_VARIANT_UPDATE_MUTATION\n )\n const navigate = useNavigate()\n const { screenVariantId } = useParams()\n const { data } = useQuery(SCREEN_VARIANT_QUERY_DOCUMENT, {\n variables: { id: screenVariantId! },\n skip: !screenVariantId,\n })\n\n const handleSubmit = async (data: ScreenVariantCreateInput) => {\n const response = await runUpdateScreenVariant({\n variables: {\n input: {\n id: screenVariantId!,\n ...data,\n },\n },\n })\n\n const { data: responseData, errors } = response\n\n if (!errors && responseData?.screenVariantUpdate?.screenVariant) {\n toast.success(\"Screen variant updated.\")\n navigate(adminScreenVariantsPath.pattern)\n }\n\n return response\n }\n\n const screenVariant = data?.screenVariant\n\n return (\n
    \n \n\n {screenVariant && (\n \n )}\n
    \n )\n}\n\nconst SCREEN_VARIANT_QUERY_DOCUMENT = gql(`\n query ScreenVariant($id: ID!) {\n screenVariant(id: $id) {\n ...ScreenVariant_Admin\n }\n }\n`)\n\nconst SCREEN_VARIANT_UPDATE_MUTATION = gql(`\n mutation ScreenVariantUpdate($input: ScreenVariantUpdateInput!) {\n screenVariantUpdate(input: $input) {\n screenVariant {\n ...ScreenVariant_Admin\n }\n }\n }\n`)\n","import { Hash, Lock } from \"lucide-react\"\nimport toast from \"react-hot-toast\"\nimport { useNavigate, useParams, useSearchParams } from \"react-router-dom\"\nimport { gql } from \"~/__generated__\"\nimport {\n ChannelCreateInput,\n ChannelVisibilityEnum,\n} from \"~/__generated__/graphql\"\nimport { AdminHeader } from \"~/admin/AdminHeader\"\nimport { ChannelForm } from \"~/admin/ChannelForm\"\nimport { useChannels } from \"~/common/ChannelsProvider\"\nimport { adminChannelsPath } from \"~/common/paths\"\nimport { useSafeMutation } from \"~/common/useSafeMutation\"\nimport { displayErrors } from \"~/common/validations\"\n\nexport const AdminChannelNewScreen = () => {\n const { visibility } = useParams()\n const [urlSearchParams] = useSearchParams()\n const [runCreateChannel] = useSafeMutation(CHANNEL_CREATE_MUTATION)\n const navigate = useNavigate()\n const { refetch } = useChannels()\n\n const handleSubmit = async (data: ChannelCreateInput) => {\n console.log(\"AdminChannelNewScreen\", { data, visibility })\n const response = await runCreateChannel({\n variables: {\n input: {\n ...data,\n visibility:\n visibility === \"public\"\n ? ChannelVisibilityEnum.Public\n : ChannelVisibilityEnum.Private,\n },\n },\n })\n\n const { data: responseData, errors } = response\n\n if (errors) {\n displayErrors(errors)\n } else if (responseData?.channelCreate?.channel) {\n await refetch()\n toast.success(\"Channel created.\")\n navigate(adminChannelsPath.pattern)\n }\n\n return response\n }\n\n return (\n <>\n \n\n \n \n )\n}\n\nconst CHANNEL_CREATE_MUTATION = gql(`\n mutation ChannelCreate($input: ChannelCreateInput!) {\n channelCreate(input: $input) {\n channel {\n ...Channel_Display\n }\n }\n }\n`)\n","import { useEffect } from \"react\"\nimport { Outlet } from \"react-router-dom\"\nimport { useCommunity } from \"~/community/useCommunity\"\n\nexport const CommunityLayout = () => {\n const { id } = useCommunity()\n\n useEffect(() => {\n document.body.dataset.community = id\n }, [id])\n\n return \n}\n","import {\n Navigate,\n Route,\n createBrowserRouter,\n createRoutesFromElements,\n} from \"react-router-dom\"\nimport * as paths from \"~/common/paths\"\nimport { ErrorBoundary } from \"./ui/ErrorBoundary\"\nimport { LoadingScreen } from \"./screens/LoadingScreen\"\nimport { SignInScreen } from \"./screens/SignInScreen\"\nimport { SignInTokenScreen } from \"./screens/SignInTokenScreen\"\nimport { RequireUserSignedOut } from \"./layouts/RequireUserSignedOut\"\nimport { RequireUserSignedIn } from \"./layouts/RequireUserSignedIn\"\nimport { FeedScreen } from \"./screens/FeedScreen\"\nimport { AuthenticatedLayout } from \"./layouts/AuthenticatedLayout\"\nimport { ArticleEditorScreen } from \"./screens/ArticleEditorScreen\"\nimport { EventsScreen } from \"./screens/EventsScreen\"\nimport { AskTheBotScreen } from \"./screens/AskTheBotScreen\"\nimport { PostScreen } from \"./screens/PostScreen\"\nimport { EditPostScreen } from \"./screens/EditPostScreen\"\nimport { BenchmarkScreen } from \"./screens/BenchmarkScreen\"\nimport { RootLayout } from \"./layouts/RootLayout\"\nimport { AdminLayout } from \"./layouts/AdminLayout\"\nimport { AdminMembersScreen } from \"./screens/admin/AdminMembersScreen\"\nimport { AdminLeadsScreen } from \"./screens/admin/AdminLeadsScreen\"\nimport { AdminIntroductionsScreen } from \"./screens/admin/introduction-cycles/AdminIntroductionsScreen\"\nimport { AdminNewIntroductionCycleScreen } from \"./screens/admin/introduction-cycles/AdminNewIntroductionCycleScreen\"\nimport { AdminIntroductionCycleScreen } from \"./screens/admin/introduction-cycles/AdminIntroductionCycleScreen\"\nimport { AdminEditIntroductionCycleScreen } from \"./screens/admin/introduction-cycles/AdminEditIntroductionCycleScreen\"\nimport { AdminChannelsScreen } from \"./screens/admin/AdminChannelsScreen\"\nimport { AdminProEventsScreen } from \"./screens/admin/pro-events/AdminProEventsScreen\"\nimport { AdminProEventNewScreen } from \"./screens/admin/pro-events/AdminProEventNewScreen\"\nimport { AdminProEventEditScreen } from \"./screens/admin/pro-events/AdminProEventEditScreen\"\nimport { AdminExperimentsScreen } from \"./screens/admin/AdminExperimentsScreen\"\nimport { AdminExperimentScreen } from \"./screens/admin/AdminExperimentScreen\"\nimport { MyContentScreen } from \"./screens/MyContentScreen\"\nimport { LibraryScreen } from \"./screens/LibraryScreen\"\nimport { EditProfileScreen } from \"./screens/EditProfileScreen\"\nimport { ArticleScreen } from \"./screens/ArticleScreen\"\nimport { MessagesScreen } from \"./screens/MessagesScreen\"\nimport { DirectoryScreen } from \"./screens/DirectoryScreen\"\nimport { BookmarksScreen } from \"./screens/BookmarksScreen\"\nimport { RequireUserActive } from \"./layouts/RequireUserActive\"\nimport { RequireUserInactive } from \"./layouts/RequireUserInactive\"\nimport { SubscribeScreen } from \"./screens/SubscribeScreen\"\nimport { FeedSkeletonLayout } from \"./layouts/FeedSkeletonLayout\"\nimport { NotFoundScreen } from \"./screens/NotFoundScreen\"\nimport { PullToRefresh } from \"./layouts/PullToRefresh\"\nimport { AdminEventsScreen } from \"./screens/admin/AdminEventsScreen\"\nimport { AccountSettingsScreen } from \"./screens/AccountSettingsScreen\"\nimport { RequireUserOnboarded } from \"./layouts/RequireUserOnboarded\"\nimport { FitWaitingScreen } from \"./screens/onboarding/FitWaitingScreen\"\nimport { UnfitScreen } from \"./screens/onboarding/UnfitScreen\"\nimport { FitRedirecting } from \"./layouts/FitRedirecting\"\nimport { LegalPolicyScreen } from \"./screens/LegalPolicyScreen\"\nimport { AuthenticatedOrExternalLayout } from \"./layouts/AuthenticatedOrExternalLayout\"\nimport { AdminAutoMessagesScreen } from \"./screens/admin/auto-messages/AdminAutoMessagesScreen\"\nimport { AdminAutoMessagesNewScreen } from \"./screens/admin/auto-messages/AdminAutoMessagesNewScreen\"\nimport { AdminAutoMessagesEditScreen } from \"./screens/admin/auto-messages/AdminAutoMessagesEditScreen\"\nimport { AdminDebugSettingsScreen } from \"./screens/admin/AdminDebugSettingsScreen\"\nimport { AdminOffersScreen } from \"./screens/admin/offers/OffersScreen\"\nimport { AdminAdministratorsScreen } from \"./screens/admin/administrators/AdminAdministratorsScreen\"\nimport { AdminApplicationsScreen } from \"./screens/admin/AdminApplicationsScreen\"\nimport { AdminDashboardScreen } from \"./screens/admin/AdminDashboardScreen\"\nimport { AdminHrisScreen } from \"./screens/admin/AdminHrisScreen\"\nimport { AdminLibraryScreen } from \"./screens/admin/AdminLibraryScreen\"\nimport { AdminGroupsScreen } from \"./screens/admin/AdminGroupsScreen\"\nimport { AdminGroupNewScreen } from \"./screens/admin/AdminGroupNewScreen\"\nimport { AdminGroupEditScreen } from \"./screens/admin/AdminGroupEditScreen\"\nimport { AdminSailthruSyncsScreen } from \"./screens/admin/AdminSailthruSyncsScreen\"\nimport { useApplicationRoutes } from \"./application/useApplicationRoutes\"\nimport { AdminScreenVariantsScreen } from \"./screens/admin/AdminScreenVariantsScreen\"\nimport { AdminScreenVariantNewScreen } from \"./screens/admin/AdminScreenVariantNewScreen\"\nimport { AdminScreenVariantEditScreen } from \"./screens/admin/AdminScreenVariantEditScreen\"\nimport { AdminChannelNewScreen } from \"./screens/admin/AdminChannelNewScreen\"\nimport { AdminChannelEditScreen } from \"./screens/admin/AdminChannelEditScreen\"\nimport { CommunityLayout } from \"./layouts/CommunityLayout\"\n\nconst Routes = () => {\n const applicationRoutes = useApplicationRoutes()\n\n return createRoutesFromElements(\n } element={}>\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 />\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 {applicationRoutes}\n \n \n\n } path=\"/admin\">\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 }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n \n \n )\n}\n\nexport const router = createBrowserRouter(Routes())\n","import * as React from \"react\"\nimport { RouterProvider } from \"react-router-dom\"\nimport { Toaster } from \"react-hot-toast\"\nimport { router } from \"./router\"\nimport colors from \"tailwindcss/colors\"\nimport { Worker } from \"@react-pdf-viewer/core\"\n\nimport \"@react-pdf-viewer/core/lib/styles/index.css\"\nimport \"@react-pdf-viewer/default-layout/lib/styles/index.css\"\nimport \"react-toggle/style.css\"\n\nimport {\n ApolloClient,\n ApolloLink,\n ApolloProvider,\n HttpLink,\n InMemoryCache,\n} from \"@apollo/client\"\nimport { loadDevMessages, loadErrorMessages } from \"@apollo/client/dev\"\nimport { createConsumer } from \"@rails/actioncable\"\nimport ActionCableLink from \"graphql-ruby-client/subscriptions/ActionCableLink\"\nimport { getMetaVar, getMetaVars } from \"./common/getMetaVar\"\nimport { FlashMessageToasts } from \"./ui/FlashMessageToasts\"\nimport { relayStylePagination } from \"@apollo/client/utilities\"\nimport { KeyArgsFunction } from \"@apollo/client/cache/inmemory/policies\"\nimport { CURRENT_USER_QUERY_DOCUMENT } from \"./auth/currentUserQuery\"\nimport { COMMUNITY_QUERY_DOCUMENT } from \"./community/communityQuery\"\nimport invariant from \"tiny-invariant\"\nimport {\n CommunityQuery,\n User_CurrentUserFragment,\n} from \"./__generated__/graphql\"\nimport { initReactI18next } from \"react-i18next\"\nimport i18n, { languageResources } from \"./common/i18n\"\nimport { Base64 } from \"js-base64\"\nimport { Config, ConfigProvider } from \"./common/ConfigProvider\"\nimport { GlobalsProvider } from \"./common/GlobalsProvider\"\n\n// @ts-expect-error this is a vite-only feature\nif (import.meta.env.DEV) {\n // Adds messages only in a dev environment\n loadDevMessages()\n loadErrorMessages()\n}\n\nconst cable = createConsumer()\n\nconst hasSubscriptionOperation = ({ query: { definitions } }: any) => {\n return definitions.some(\n ({ kind, operation }: any) =>\n kind === \"OperationDefinition\" && operation === \"subscription\"\n )\n}\n\nconst csrfToken = getMetaVar(\"csrf-token\")\ninvariant(csrfToken)\n\nconst httpLink = new HttpLink({\n credentials: \"same-origin\",\n headers: {\n \"X-CSRF-Token\": csrfToken!,\n },\n})\n\nconst link = ApolloLink.split(\n hasSubscriptionOperation,\n new ActionCableLink({ cable }),\n httpLink\n)\n\nconst excludePaginationArgs: KeyArgsFunction = (args) => {\n if (!args) return false\n return Object.keys(args).filter((k) => ![\"first\", \"after\"].includes(k))\n}\n\nconst apolloClient = new ApolloClient({\n uri: \"/graphql\",\n link,\n cache: new InMemoryCache({\n typePolicies: {\n Query: {\n fields: {\n posts: relayStylePagination(excludePaginationArgs),\n users: relayStylePagination(excludePaginationArgs),\n articles: relayStylePagination(excludePaginationArgs),\n notifications: relayStylePagination(excludePaginationArgs),\n bookmarks: relayStylePagination(excludePaginationArgs),\n introductionCycles: relayStylePagination(excludePaginationArgs),\n myRooms: relayStylePagination(excludePaginationArgs),\n events: relayStylePagination(excludePaginationArgs),\n places: relayStylePagination(excludePaginationArgs),\n proEvents: relayStylePagination(excludePaginationArgs),\n },\n },\n },\n }),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: \"cache-and-network\",\n },\n },\n})\n\nconst metaConfig = getMetaVars([\n \"community\",\n \"current-user-cache\",\n \"direct-uploads-url\",\n \"domain\",\n \"environment\",\n \"feature-flags\",\n \"flash-messages\",\n \"hris-cost-per-employee-article-id\",\n \"hris-retention-article-id\",\n \"hris-tenure-article-id\",\n \"hris-turnover-article-id\",\n \"link-metadata-path\",\n \"maps-api-key\",\n \"qa-tools-enabled\",\n \"stripe-publishable-key\",\n \"track-impressions\",\n \"unfit_refund_window_in_days\",\n \"visually-show-impressions\",\n])\n\nconst base64CurrentUserData = metaConfig[\"current-user-cache\"]\ninvariant(base64CurrentUserData)\nconst currentUserData = JSON.parse(Base64.decode(base64CurrentUserData))\ninvariant(currentUserData.data)\n\napolloClient.writeQuery({\n query: CURRENT_USER_QUERY_DOCUMENT,\n data: currentUserData.data,\n variables: { id: currentUserData.data.user?.id },\n})\n\nconst communityMetaContent = metaConfig[\"community\"]\nconst communityData = JSON.parse(communityMetaContent) as {\n data: CommunityQuery\n}\ninvariant(communityData.data.community)\napolloClient.writeQuery({\n query: COMMUNITY_QUERY_DOCUMENT,\n data: communityData.data,\n variables: { id: communityData.data.community!.id },\n})\n\nconst environment = metaConfig[\"environment\"]\n\nconsole.log({ metaConfig })\n\nconst config: Config = {\n currentUserCache: currentUserData.data.user as User_CurrentUserFragment,\n csrfToken: csrfToken,\n directUploadsUrl: metaConfig[\"direct-uploads-url\"],\n domain: metaConfig[\"domain\"],\n environment: metaConfig[\"environment\"],\n featureFlags: JSON.parse(Base64.decode(metaConfig[\"feature-flags\"])),\n flashMessages: JSON.parse(Base64.decode(metaConfig[\"flash-messages\"])),\n hrisCostPerEmployeeArticleId: metaConfig[\"hris-cost-per-employee-article-id\"],\n hrisRetentionArticleId: metaConfig[\"hris-retention-article-id\"],\n hrisTenureArticleId: metaConfig[\"hris-tenure-article-id\"],\n hrisTurnoverArticleId: metaConfig[\"hris-turnover-article-id\"],\n linkMetadataPath: metaConfig[\"link-metadata-path\"],\n mapsApiKey: metaConfig[\"maps-api-key\"],\n qaToolsEnabled: metaConfig[\"qa-tools-enabled\"] === \"true\",\n stripePublishableKey: metaConfig[\"stripe-publishable-key\"],\n trackImpressions: metaConfig[\"track-impressions\"] === \"true\",\n unfitRefundWindowInDays: parseInt(metaConfig[\"unfit_refund_window_in_days\"]),\n visuallyShowImpressions: metaConfig[\"visually-show-impressions\"] === \"true\",\n}\n\ni18n.use(initReactI18next).init({\n compatibilityJSON: \"v3\",\n debug: environment === \"development\",\n lng: \"en-US\",\n resources: {\n \"en-US\": languageResources[communityData.data.community!.slug],\n },\n interpolation: {\n escapeValue: false,\n },\n react: {\n transSupportBasicHtmlNodes: true, // allow
    and simple html elements in translations\n transKeepBasicHtmlNodesFor: [\"br\", \"strong\", \"em\", \"i\", \"p\"], // allow
    and simple html elements in translations\n },\n})\n\nexport const App = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { createRoot } from \"react-dom/client\"\nimport { App } from \"~/app\"\n\nconst rootEl = document.getElementById(\"react-root\")\nif (rootEl) {\n const root = createRoot(rootEl)\n root.render()\n} else {\n console.log(\"no react-root\")\n}\n"],"names":["OnboardingTitle","children","className","ccls","useCommunityClassname","jsx","cn","CommunitySlug","FieldPointer","show","OnboardingFieldLabel","props","OnboardingInterestToggle","checked","community","useCommunity","SignInContent","SvgCheckmark","React.createElement","OnboardingStep","title","completed","current","jsxs","CheckmarkIcon","OnboardingSteps","currentStep","OnboardingLayout","step","fullWidth","hideCommunityFooter","containerInnerClass","useEffect","containerClass","headerClass","footerClass","CommunityLogo","iHateItHereBranding","SEND_MAGIC_LINK_MUTATION","gql","SignInScreen","sendMagicLink","loading","useSafeMutation","email","setEmail","useState","linkError","setLinkError","navigate","useNavigate","t","useTranslation","onSubmit","data","signInTokenPath","Trans","Alert","CircleAlert","e","Button","Link","applicationLandingPath","RESEND_MAGIC_LINK_MUTATION","Slot","SignInTokenScreen","resendMagicLink","token","setToken","sessionId","useParams","invariant","csrfToken","useConfig","sendAgain","toast","tokenConfirmationPath","OTPInput","newValue","REGEXP_ONLY_DIGITS_AND_CHARS","slots","slot","idx","RequireUserSignedOut","currentUser","useCurrentUser","feedPath","Outlet","CardFeed","LegendIcon","color","CustomLegend","payload","entry","index","USER_DATA_KEY_FOR_DISPLAY","COMMUNITY_DATA_KEY_FOR_DISPLAY","CustomTooltip","rest","newPayload","item","BENCHMARK_DATA_KEY","BENCHMARK_DATA_KEY_FOR_DISPLAY","DefaultTooltipContent","USER_DATA_KEY","COMMUNITY_DATA_KEY","USER_COLOR","COMMUNITY_COLOR","BENCHMARK_COLOR","BenchmarkChart","axisValueFormatter","value","ChartComponent","domain","height","legend","margin","tickCount","tooltip","yAxisLine","margins","maxDomain","max","obj","maxDomainString","formattedLabelMaxChars","formattedLabelTranslation","CustomYAxisTick","x","y","mappedDataForDisplay","d","ResponsiveContainer","CartesianGrid","XAxis","YAxis","Line","Tooltip","Legend","BarChart","chart","interactive","ComposedChart","Bar","generateCostPerEmployee","generateTurnOverData","generateTenure","generateRetention","turnoverData","_","i","format","subMonths","costPerEmployeeData","tenureData","retentionData","EmptyState","Card","CardHeader","CardTitle","CardContent","BENCHMARK_QUERY_DOCUMENT","CELEBRATION_CREATE_MUTATION","useCreateCelebration","createCelebration","input","AddCelebration","date","setDate","create","celebrationType","setCelebrationType","customCelebrationType","setCustomCelebrationType","currentCelebrations","useMemo","CelebrationTypeEnum","enabledCelebrationTypes","enabled","type","celebration","onAdd","errors","displayErrors","Fragment","CelebrationForm","DeepDiveSkeleton","DeepDiveModule","creator","useQuery","DEEP_DIVE_QUERY_DOCUMENT","article","_a","articlePath","HighlightContent","_b","NewInLibraryModule","NEW_ARTICLES_QUERY","authorNames","formattedDate","c","formatDate","Translation","StackedUserAvatars","UserName","libraryPath","commaSeparatedList","list","acc","PRO_EVENT_FIXED_TIMEZONE","PRO_EVENTS_ADMIN_LIST_QUERY_DOCUMENT","PRO_EVENTS_LIST_QUERY_DOCUMENT","PRO_EVENT_ADMIN_QUERY_DOCUMENT","PRO_EVENT_ADMIN_CREATE_MUTATION","PRO_EVENT_ADMIN_UPDATE_MUTATION","parseDateField","dateString","toDate","utcDateToIntroductionsDateField","formatInTimeZone","ProEventsBanner","canViewProEvents","openSubscriptionWizard","useSubscription","logEvent","useLogEvent","error","proEvents","setIndex","onButtonClicked","useCallback","AhoyEventTypeEnum","LoadingIndicatorCentered","Error","proEvent","Lock","AvatarWithFallback","VideoAddIcon","LinkButton","EventsScreen","featureFlags","runMarkRead","MARK_READ_MUTATION","CALENDAR_EVENTS_QUERY_DOCUMENT","MarkReadEnum","CALENDAR_VARIANTS","edge","event","H4","Muted","host","guest","LIMIT_EVENTS","UpcomingEventsSkeleton","UpcomingEventsModule","totalItems","events","buttonVariants","eventsPath","DiveInModule","ArrowRight","UserOfferModule","unacknowledgedUserOffers","acknowledgedUserOffers","acceptedUserOffers","redeemedUserOffers","acknowledgeUserOffer","refetchUserOffers","useUserOffers","tiers","useTiers","unacknowledgedUserOffer","userOffer","OfferCategoryEnum","acknowledgedUserOffer","getRedeemedAt","parseISO","redeemedUserOffer","differenceInDays","claimOffer","setIsDialogOpen","openOffer","ClaimButton","isDialogOpen","selectedUserOffer","setSelectedUserOffer","discount","useDiscountedAmount","onOpenChange","open","hasLoggedUpgradeModalViewedRef","useRef","timeRemaining","setTimeRemaining","duration","intervalToDuration","countdown","openNote","isClaimingOffer","setIsClaimingOffer","source","tier","isAcknowledgedUserOfferExpired","differenceInSeconds","timeRemainingFormatted","parts","formatDistanceToNow","hasLoggedUserOfferViewedRef","Dialog","DialogContent","PageWithRightSidebar","sidebar","PostScreen","postId","searchParams","useSearchParams","autoFocusReply","composerRef","repliesResult","REPLIES_QUERY_DOCUMENT","POST_QUERY_DOCUMENT","afterCreateReply","createReply","replayIsSaving","useCreateReply","post","ComposerContextProvider","FeedSidebar","PostCard","BackHeader","_d","_c","PostComposer","RepliesFeed","parentPostId","articleId","articleTitle","channel","locationState","useLocation","postPath","channelPath","ArrowLeft","AddToHomescreenModal","dialogProps","screenVariant","useScreenVariant","ScreenEnum","runUserUpdate","USER_UPDATE_MUTATION","videoUrl","fetchPost","postData","postLoading","useLazyQuery","toggleBookmark","useBookmarks","close","DialogHeader","DialogTitle","camelCase","ReactPlayer","IconButton","Bookmark","GetStartedLink","isOpen","setIsOpen","preventDuplicateRef","onClick","Play","GetStartedModal","onComplete","DialogFooter","ChecklistItem","text","action","useComposerContext","isAddToHomescreenModalOpen","setIsAddToHomescreenModalOpen","showConfirm","useConfirm","introductionsChannel","useChannels","handleClick","OnboardingActionsEnum","editProfilePath","content","ComposerOriginEnum","accountSettingsPath","Check","itemOrder","CTAChecklist","onboardingActionTexts","userIsFreeTier","TierLevelEnum","openWasRef","isHidden","setIsHidden","startHideAnimation","setStartHideAnimation","onboardingActions","allCompleted","key","addConfetti","items","camelCaseKey","a","b","aIndex","bIndex","areAllItemsCompleted","createRulesEngineEvent","useRulesEngine","userOffers","paidMembershipUpsellOffer","unlockGift","RulesEngineEventTypeEnum","showCompletedMessage","CreatorSignature","today","chartData","setChartData","fetchBenchmarkData","formatISO","blurCharts","setBlurCharts","features","useCommunityFeatures","hrisDataAdded","benchmarkPath","clsx","MergeLinkButton","urlParams","CardFooter","Cup","ConnectWithSidebarModule","CONNECT_WITH_QUERY_DOCUMENT","openUserDialog","useUserDialogContext","users","directoryPath","user","titleAndCompany","jobTitle","companyName","tagFilterVariants","cva","placeholderVariants","controlVariants","valueContainerVariants","TagFilter","allTags","selectedTagIds","setTagIds","variant","placeholder","containerClassName","inputClassName","options","selectedOptions","option","Select","tags","tagIds","tagNames","baseStyles","useTagFilter","setSelectedTagIds","hasOverlappingId","array1","array2","p","id","NewPostsIndicator","channelId","queryVariables","newPosts","setNewPosts","postsInView","usePostInViewport","showNewPostsIndicator","setShowNewPostsIndicator","onNewFeedPost","useNewFeedPost","client","useApolloClient","handleNewFeedPost","newPost","posts","cache","existingMessages","FEED_QUERY_DOCUMENT","updatedMessages","m","self","unsubscribe","timeoutId","userAvatars","u","ArrowUp","useScrollingStopped","stoppedForMs","scrollingStopped","setScrollingStopped","scrollTimeoutRef","scrollListener","UnreadPostsIndicator","firstPostInViewCreatedAt","oldestPostTime","ArrowDown","FeedScreen","FeedScreenInner","channelSlug","channels","goToChannel","retweetPostId","setRetweetPostId","retweetArticleId","setRetweetArticleId","searchTerm","setSearchTerm","debouncedSearchTerm","useDebounce","topOfFeedRef","setIsBlurred","useAuthenticatedLayout","currentData","previousData","refetch","fetchMore","setSearchParams","advertizedChannel","runPostCreate","postCreateResult","POST_CREATE_MUTATION","createPost","mentionedUsers","mentionedGroups","postComposerPost","qaToolsEnabled","LoadingIndicator","PostInViewportProvider","ChannelVisibilityEnum","ChatLocked","H6","P","SearchInput","PostFeed","InfiniteLoadMore","WorkweekImageTool","ImageTool","IconAddBorder","IconAddBackground","tune","SelectionUtils","__publicField","sel","selection","selectedNode","editorZone","range","rect","span","spanParent","container","tagName","searchDepth","parentTag","parent","searchDepthIterable","element","ColorTool","config","api","mark","state","selectedText","_range","fullRange","unwrappedContent","colors","colorElement","_mark","WorkweekCalloutTool","Warning","IconWarning","createWorkweekLinkTool","LinkTool","IconLink","WorkweekPdfEmbedTool","AttachesTool","IconFile","file","fileInfo","make","sizePrefix","formattedSize","fileSize","embeddedPdfText","downloadIcon","IconChevronDown","classNames","attributes","el","attrName","DelimiterIcon","WorkweekDelimiterTool","Delimiter","BarChartIcon","PollTool","rootEl","PollEditor","poll","totalBlocks","block","airTableFormEmbedModalFormSchema","z","AirTableFormEmbedEditorModal","onSave","url","form","useForm","zodResolver","values","Form","FormField","field","FormItem","FormLabel","FormControl","Input","FormMessage","Info","AlertDescription","AirTableFormEmbedEditor","React.forwardRef","onAirTableFormEmbedChange","tool","ref","wasModalOpened","setWasModalOpened","isModalOpen","setIsModalOpen","airTableFormUrl","setAirTableFormUrl","React.useState","isError","onAirTableFormEmbedSave","AlertCircleIcon","Clipboard","AirTableFormEmbed","AirTableFormEmbedTool","_Strikethrough","termWrapper","termTag","IconStrikethrough","Strikethrough","localOnChange","localOnChangeCaller","Editor","forwardRef","onChange","initialData","linkMetadataPath","pollPortals","setPollPortals","React","createBlockPortal","blockId","node","portals","portal","createPortal","removeBlockPortal","editorRef","useImperativeHandle","uploadAndAttachFile","uploadAndAttachImage","useFileUpload","EditorJS","Undo","RawTool","Paragraph","Header","Underline","WorkweekListTool","Quote","Table","articleFormSchema","ArticleContentTypeEnum","ArticleDetailsModal","isLoading","initialFormValues","ARTICLE_MODAL_QUERY_DOCUMENT","isEditing","contentTypes","SelectTrigger","SelectValue","SelectContent","tag","SelectItem","Textarea","useArticleDetailsModal","onSuccess","existingArticle","runCreateArticle","createArticleResult","CREATE_ARTICLE_MUTATION","createArticle","runUpdateArticle","updateArticleResult","UPDATE_ARTICLE_METADATA_MUTATION","updateArticle","UserPill","canRemove","onRemove","pending","TooltipProvider","TooltipTrigger","X","TooltipContent","generateTempId","prefix","withoutId","object","isSavedDraftRevision","revision","revisionId","isSavedArticle","getArticleId","isSavedSection","section","sectionId","isSavedLesson","lesson","lessonId","isSavedArticleCollaborator","collaborator","articleCollaboratorId","useCreateCollaborator","runCollaboratorCreate","collaboratorCreateResult","COLLABORATOR_CREATE_MUTATION","userIds","useDestroyCollaborator","runCollaboratorDestroy","collaboratorDestroyResult","COLLABORATOR_DESTROY_MUTATION","ArticleCollaboratorsModal","collaborators","includeCollaborators","onRemoveCollaborator","getArticleCollaborators","ARTICLE_COLLABORATORS_MODAL_QUERY_DOCUMENT","setData","fetchData","currentCollaborators","setCurrentCollaborators","handleAddCollaborator","handleRemoveCollaborator","getCollaboratorSearch","MENTION_USER_QUERY_DOCUMENT","_loadOptions","query","callback","loadOptions","useDebouncedCallback","fetchUser","USER_FETCH_QUERY_DOCUMENT","userId","createCollaborator","onButtonClick","newCollaborators","result","collaboratorId","AsyncSelect","Drawer","shouldScaleBackground","DrawerPrimitive","DrawerTrigger","DrawerPortal","DrawerClose","DrawerOverlay","DrawerContent","DrawerHeader","DrawerFooter","DrawerTitle","DrawerDescription","RevisionHistoryDrawer","defaultOpen","setOpen","REVISION_LOGS_QUERY_DOCUMENT","ExternalShareSettingsModal","allowExternalShareDefault","runArticleUpdate","UPDATE_ARTICLE_MUTATION","allowExternalShare","setAllowExternalShare","saveSetting","Toggle","UploadDropzone","control","name","initialUrl","body","aspectRatio","directImageUpload","useDirectImageUpload","uploading","setUploading","setUrl","removeImage","width","Dropzone","acceptedFiles","blob","getRootProps","getInputProps","Upload","formSchema","ImageCoverModal","initialPortraitImageUrl","initialPortraitImageId","initialLandscapeImageUrl","initialLandscapeImageId","mode","setMode","portraitImageUrl","setPortraitImageUrl","landscapeImageUrl","setLandscapeImageUrl","isSubmitting","setIsSubmitting","handleSubmit","useWatch","FormDescription","Switch","ArticleCard","EditorMetadataSection","revisionHistoryDefaultOpen","collaboratorsModalOpen","setCollaboratorsModalOpen","articleDetailsModalHelpers","externalSharingModalOpen","setExternalSharingModalOpen","editImageCoverModalOpen","setEditImageCoverModalOpen","destroyCollaborator","ContentModalLink","useSubmitForReviewConfirm","confirmProps","runSubmitForReview","SUBMIT_FOR_REVIEW_MUTATION","promptValue","useRequestEditsConfirm","runRequestEdits","REQUEST_EDITS_MUTATION","SvgDollarSquare","isArticleFeatured","featuredUntil","compareAsc","useToggleFeaturedConfirm","runFeature","isFeatured","addWeeks","PREMIUM_DEFAULT","FEATURED_DEFAULT","VISIBILITY_DEFAULT","ArticleVisibilityEnum","ArticlePublishModal","initialValuesSetRef","runApproveContent","APPROVE_ARTICLE_MUTATION","ARTICLE_QUERY_DOCUMENT","premium","setPremium","featured","setFeatured","visibility","setVisibility","SettingRow","DollarSquare","Eye","icon","settingTitle","settingDescription","bottomBorder","toggleProps","ButtonGroupToggle","defaultOptions","defaultBackLink","myContentPath","shouldShowSubmitForReview","ArticleStateEnum","shouldShowRequestEdits","shouldShowApprove","ArticleTopActionToolbar","isLocked","optionProps","submitForReviewConfirmOptions","requestEditsConfirmOptions","backLink","pendingCollaborators","publishModalOpen","setPublishModalOpen","submitForReview","requestEdits","showSubmitForReview","showRequestEdits","showApprove","SimpleTooltip","ArticleLockedBanner","lockedByUser","dmPath","useArticleLocking","isDirty","isDirtyWasRef","runLockArticle","LOCK_ARTICLE_MUTATION","lockArticle","throttledLockArticle","useThrottledCallback","ArticleBottomActionToolbar","preview","edit","isPreviewing","save","isSaving","ArticleEditor","previewData","setPreviewData","previewSelected","setPreviewSelected","currentTrackedObject","setCurrentTrackedObject","getBlocks","dirtyTracking","useDirtyTracking","articleLocking","runSaveArticle","saveArticleResult","previewArticle","saveArticle","editArticlePath","RenderedArticle","ARCHIVE_ARTICLE_MUTATION","createSectionModalFormSchema","CreateSectionModal","onCreateSection","course","sections","setSections","useCourseEditorContext","courseId","newSection","cancel","directions","KeyboardCode","coordinateGetter","active","droppableRects","droppableContainers","collisionRect","filteredContainers","collisions","closestCorners","closestId","getFirstCollision","newDroppable","newNode","newRect","TAGS_QUERY_DOCUMENT","useTags","createLessonModalFormSchema","CreateLessonModal","onCreateLesson","getSectionId","newLesson","lessonHasChanges","initialLesson","Lesson","isOverlay","onUpdateLesson","contextMenuTriggerRef","s","l","getLessonId","setNodeRef","listeners","transform","transition","isDragging","useSortable","style","CSS","variants","triggerContextMenu","editLesson","toggleHidden","duplicate","duplicatedLesson","GripVertical","ContextMenu","ContextMenuContent","ContextMenuItem","ContextMenuTrigger","EyeNoneIcon","ExclamationTriangleIcon","CheckCircleIcon","DotsHorizontalIcon","sectionHasChanges","initialSection","Section","matchedSections","isExpanded","setIsExpanded","isCreateLessonModalOpen","setIsCreateLessonModalOpen","lessons","lessonIds","rename","newTitle","duplicatedSection","dndContext","useDndContext","handleCreateLesson","setCollaboratorsModalLesson","handleUpdateLesson","collaboratorsModalLesson","TriangleUpIcon","TriangleDownIcon","Plus","DotsVerticalIcon","SortableContext","SectionContainer","hasDraggableData","SectionsEditor","pickedUpLessonSectionId","sectionIds","setLessons","newLessons","activeSection","setActiveSection","activeLesson","setActiveLesson","sensors","useSensors","useSensor","MouseSensor","TouchSensor","KeyboardSensor","getDraggingLessonData","lessonsInSection","lessonPosition","announcements","startSectionIdx","startSection","over","overSectionIdx","overSectionPosition","onDragStart","onDragEnd","activeId","overId","activeData","activeSectionIndex","overSectionIndex","newSections","arrayMove","onDragOver","overData","isActiveALesson","isOverALesson","activeIndex","overIndex","overLesson","isOverASection","lessonIndex","DndContext","DragOverlay","CourseActionToolbar","CourseEditorContext","createContext","context","useContext","getTrackableSections","CourseEditor","setIsPreviewing","isCreateSectionModalOpen","setIsCreateSectionModalOpen","setCourse","savedTrackedCourse","setSavedTrackedCourse","sectionsOrCallback","savedTrackedObject","previewCourse","runSaveCourse","saveCourseResult","UPDATE_COURSE_MUTATION","saveCourse","openCreateSectionModal","CourseIndex","ArticleEditorScreen","ReplyAnimation","intentEvents","AskTheBotScreen","setMostRecentActivity","mostRecentEventFiredAt","setMostRecentEventFiredAt","isFiringRef","hasLoggedEvent","onUserActivity","mostRecentActivity","hasNoBattery","onCtaClick","Brain","H1","Battery","dialogContentVariants","H3","EditPostScreen","setPost","EDIT_POST_QUERY_DOCUMENT","runPostUpdate","postUpdateResult","POST_UPDATE_MUTATION","afterPostPath","newPath","createSearchParams","updatePost","tagId","attachmentIds","EditDialog","dialogOpen","setDialogOpen","editDialog","resetFormToUserData","useManualHrisDataContext","SelectIcon","ChevronDown","ManualIndustry","editContext","closeDialog","industries","industry","setIndustry","onSuccessCallback","Base","SelectGroup","IndustryEnum","formatCompanySize","size","formatted","COMPANY_SIZES","Status","companySizeDialogOpen","setCompanySizeDialogOpen","industryDialogOpen","setIndustryDialogOpen","EditCompanySizeDialog","ManualCompanySize","EditIndustryDialog","hrisIntegration","manualHrisData","lastUpdated","nextUpdate","startOfQuarter","addQuarters","status","companySize","FilterContext","FilterProvider","locations","setLocations","setIndustries","companySizes","setCompanySizes","filters","setFilters","filtersExpanded","setFiltersExpanded","resetFilters","updateFilters","useFilterContext","filterContext","MultiSelect","selected","disabled","handleUnselect","labelMap","React.useMemo","Popover","PopoverTrigger","Badge","ChevronsUpDown","PopoverContent","Command","CommandInput","CommandEmpty","CommandGroup","CommandItem","SvgAddCircle","SvgMinusCircle","companySizeOptions","label","Filters","industryTranslation","handleExpandClick","industryOptions","MinusCirlce","AddCircle","BenchmarkSidebar","noHrisIntegration","showConnect","showManualSetup","SmallScreenCharts","manualData","ChartFeed","SvgInfo","CardHeaderWithToolTip","turnoverDialogOpen","setTurnoverDialogOpen","retentionDialogOpen","setRetentionDialogOpen","costPerEmployttDialogOpen","setCostPerEmployeeDialogOpen","tenureDialogOpen","setTenureDialogOpen","ManualTurnover","ManualCostPerEmployee","ManualTenure","ManualRetention","Charts","Syncing","stateFromUser","getPage","BenchmarkScreen","pageState","setPageState","ManualHrisDataProvider","AdminLayout","ChannelsProvider","UserDialogContextProvider","SidebarProvider","AdminSidebar","SidebarTrigger","navigation","Layout","adminDashboardPath","Search","adminResearchToolPath","CircleCheck","adminApplicationsPath","Users","adminMembersPath","CircleHelp","adminLeadsPath","CircleUserRound","adminAdministratorsPath","MessageSquareCode","adminAutoMessagesPath","HeartHandshake","adminIntroductionsPath","CalendarDays","adminProEventsPath","MessagesSquare","adminChannelsPath","location","adminGroupsPath","BookMarked","adminLibraryPath","adminHrisPath","FeatureEnum","FlaskConical","adminExperimentsPath","Bug","adminDebugSettingsPath","Mail","adminEmailSettingsPath","Hammer","adminScreenVariantsPath","useSidebar","isActive","Sidebar","SidebarHeader","Transition","SidebarContent","group","SidebarGroup","SidebarGroupLabel","SidebarGroupContent","SidebarMenu","SidebarMenuItem","SidebarMenuButton","SidebarFooter","ChangeEmailModal","userUpdateResult","USER_ADMIN_UPDATE_MUTATION","UsersSearch","sort","setSort","sortOptions","UserSortEnum","SearchableSelectField","description","labelClassName","required","selectEntries","popoverOpen","setPopoverOpen","CommandList","ctx","k","requirementKey","associatedPath","pathData","YEARS_OF_EXPERIENCE_OPTIONS","COMPANY_SIZE_OPTIONS","PlaceFilter","placeFilter","setPlaceFilter","setQuery","debouncedQuery","PLACES_QUERY_DOCUMENT","places","hydratedPlace","place","onSelect","clear","fetchPlace","PLACE_QUERY_DOCUMENT","placeName","setPlaceName","SUBSCRIPTION_STATUSES","StripeSubscriptionStatusEnum","SubscriptionStatusFilter","subscriptionStatusFilter","setSubscriptionStatusFilter","CompanySizeFilter","companySizeFilter","setCompanySizeFilter","Icon","TierIdFilter","tierIdFilter","setTierIdFilter","ApplicationStateFilter","applicationStateFilter","setApplicationStateFilter","tagsFilter","setTagsFilter","tagType","hasTags","hasHydratedTags","hydratedTags","hydratedTag","badgeVariant","IndustryFilter","industryFilter","setIndustryFilter","translate","VerticalFilter","verticalFilter","setVerticalFilter","VerticalEnum","vertical","JobFunctionFilter","jobFunctionFilter","setJobFunctionFilter","JobFunctionEnum","jobFunction","YearsOfExperienceFilter","yearsOfExperienceFilter","setYearsOfExperienceFilter","UsersFilters","enabledFilters","expertisesFilter","interestsFilter","setExpertisesFilter","setInterestsFilter","pinnedColumnStyles","DEFAULT_SORT","PAGE_SIZE","UsersTableContext","UsersTable","defaultSort","headers","onExport","onSelectAll","pageSize","queryOptions","skeleton","withExport","withExportLoading","withFilters","withSearch","withSelectAll","withSort","expertiseIds","interestIds","applicationState","tierId","yearsOfExperience","useQueryOptions","USERS_QUERY_DOCUMENT","condition","hasNextPage","totalCount","memoizedSearchParams","params","AdminTable","UsersCardView","TableHeader","TableRow","header","TableHead","TableBody","TableCell","Skeleton","CopyToClipboard","onCopy","isCopied","setIsCopied","timeout","copyToClipboard","copy","TransitionChild","ClipboardCopy","HEADERS","UserRow","changeEmailModalOpen","setChangeEmailModalOpen","userDialogOpen","setUserDialogOpen","runUserChangeTier","USER_CHANGE_TIER_MUTATION","toggleCoach","migrateToTier","interval","translateCelebrationType","UserDialog","ContextMenuSub","ContextMenuSubTrigger","ContextMenuSubContent","TierIntervalEnum","formatCalendarDate","AllMembersTable","runUsersExport","USERS_EXPORT_MUTATION","UserRoleEnum","ExportFormatTypeEnum","LeadsSearch","generateInviteUrl","invitationCode","variationParam","baseUrl","InviteMemberModal","showSuccess","setShowSuccess","variantsData","SCREEN_VARIANTS_QUERY","activeVariants","v","runLeadCreate","leadCreateResult","LEAD_INVITE_MEMBER_MUTATION","_f","_e","InviteeRow","lead","LEADS_QUERY","InvitationsTable","refetchState","isInviteModalOpen","setIsInviteModalOpen","leads","prev","fetchMoreResult","PastMembersTable","AdminMembersScreen","activeTabFromParams","activeTab","setActiveTab","onTabChange","tab","AdminHeader","Tabs","TabsList","TabsTrigger","TabsContent","LeadsTable","AdminLeadsScreen","INTRODUCTION_CYCLES_ADMIN_LIST_QUERY_DOCUMENT","INTRODUCTION_CYCLES_ADMIN_COUNT_QUERY_DOCUMENT","INTRODUCTION_CYCLES_ADMIN_FIND_QUERY_DOCUMENT","INTRODUCTION_CYCLES_ADMIN_POSSIBLE_MATCHES_QUERY_DOCUMENT","INTRODUCTION_CYCLES_ADMIN_CREATE_MUTATION","INTRODUCTION_CYCLES_ADMIN_UPDATE_MUTATION","INTRODUCTION_CYCLES_ADMIN_TOGGLE_ACCEPTANCE_MUTATION","INTRODUCTION_CYCLES_ADMIN_TOGGLE_IGNORANCE_MUTATION","INTRODUCTION_CYCLES_ADMIN_OVERRIDE_MATCH_MUTATION","INTRODUCTION_CYCLES_ADMIN_ACCEPT_SELECTED_MUTATION","INTRODUCTIONS_FIXED_TIMEZONE","IntroductionCycleForm","defaultValues","parseIntroductionsDateField","AdminIntroductionsScreen","introductionCycles","adminNewIntroductionCyclePath","cycle","adminIntroductionCyclePath","adminEditIntroductionCyclePath","AdminNewIntroductionCycleScreen","runIntroductionCycleCreate","introductionCycleCreateResult","setSeconds","setMinutes","setHours","addDays","ClickableIconWrapper","border","blue","primary","IntroductionMatchOverrideForm","match","onOverrideMatch","possibleMatches","IntroductionMatchRow","overriding","locked","onToggleAcceptanceClick","onToggleIgnoranceClick","onToggleOverrideClick","onToggleSelectClick","canToggleAcceptance","canToggleIgnorance","canToggleOverride","canSelect","Pin","UserData","AdminIntroductionCycleScreen","introductionCycleId","overridingMatchId","setOverridingMatchId","selectedMatchIds","setSelectedMatchIds","fetchLoading","fetchError","runIntroductionMatchToggleAcceptance","introductionMatchToggleAcceptanceResult","runIntroductionMatchToggleIgnorance","introductionMatchToggleIgnoranceResult","runIntroductionMatchOverrideMatch","introductionMatchOverrideMatchResult","runIntroductionMatchAcceptSelected","introductionMatchAcceptSelectedResult","matches","selectableMatches","allSelected","onSelectAllToggle","onAcceptSelectedMatches","matchesLoading","matchesError","AdminEditIntroductionCycleScreen","runIntroductionCycleUpdate","introductionCycleUpdateResult","AdminGroupsScreen","GROUPS_QUERY_DOCUMENT","groups","adminGroupNewPath","ChannelsAndGroupsTabs","GroupRow","adminGroupEditPath","adminChannelEditPath","AdminActionToolbar","groupId","ChannelForm","initialValues","useFormState","setIsSaving","groupIdSelectEntries","TextField","AdminChannelEditScreen","runUpdateChannel","UPDATE_CHANNEL_MUTATION","usersAfter","setUsersAfter","usersBefore","setUsersBefore","CHANNEL_QUERY_DOCUMENT","hasPreviousPage","startCursor","endCursor","response","responseData","nextPage","prevPage","Hash","ChevronLeft","ChevronRight","AdminChannelsScreen","setChannelSearchTerm","adminChannelNewPath","ChannelRow","toggleActive","PublishedToggle","proEventId","published","proEventUpdate","val","AdminProEventsScreen","adminProEventNewPath","adminProEventEditPath","DateField","inputProps","ToggleField","UserSelectField","initialValue","onUserSelected","selectedUserOption","setSelectedUserOption","selectedUser","setSelectedUser","setUsers","getUser","USER_SELECT_FIELD_QUERY_DOCUMENT","newUsers","ProEventForm","AdminProEventNewScreen","proEventCreate","proEventCreateResult","setError","AdminProEventEditScreen","proEventUpdateResult","AdminExperimentsScreen","EXPERIMENTS_LIST_QUERY","experiments","BeakerIcon","experiment","adminExperimentPath","UserNameAndAvatar","userFromProps","setUser","USER_DIALOG_QUERY_DOCUMENT","AdminExperimentScreen","experimentName","USER_EXPERIMENTS_QUERY","userExperiments","userExperiment","VariantSelector","currentVariant","assignVariant","useMutation","ASSIGN_VARIANT_MUTATION","handleVariantChange","newVariant","createContentModalFormSchema","ContentForm","useContentTypeOptions","contentType","CreateContentModal","onCreateArticle","onCreateCourse","runCreateCourse","createCourseResult","CREATE_COURSE_MUTATION","onSubmitCourse","onSubmitArticle","CreateContentButton","startWritingWithCollaborators","collaboratorsModalArticle","setCollaboratorsModalArticle","initialCollaboratorsProcessed","setInitialCollaboratorsProcessed","isCreateContentModalOpen","setIsCreateContentModalOpen","ARTICLE_STATE_LABELS","SvgSend2","SvgExternalLink","CollaborationInvites","afterAccept","PENDING_COLLABORATION_INVITES_QUERY_DOCUMENT","runCollaboratorAccept","ACCEPT_COLLABORATION_INVITE_MUTATION","runCollaboratorReject","REJECT_COLLABORATION_INVITE_MUTATION","articles","accept","reject","collaboration","TagBubble","ContentTypeIconWithToolTip","formatArrayToSentence","array","conjunction","last","useTogglePremiumConfirm","runTogglePremium","isPremium","tiersThatCanViewPremiumContent","useChangeVisibilityConfirm","runChangeVisibility","ARTICLE_VISIBILITY_MUTATION","ScrollArea","orientation","viewportRef","React.useRef","canScroll","setCanScroll","isScrolled","setIsScrolled","isScrolledToEnd","setIsScrolledToEnd","React.useEffect","viewport","handleScroll","ScrollAreaPrimitive.Root","ScrollAreaPrimitive.Viewport","ScrollBar","ScrollAreaPrimitive.Corner","ScrollAreaPrimitive.ScrollAreaScrollbar","ScrollAreaPrimitive.ScrollAreaThumb","ScrollFade","direction","DropdownMenuCheckboxes","optionTitle","exclusive","trigger","isChecked","onCheckedChange","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","React.Fragment","DropdownMenuCheckboxItem","useArchiveArticleConfirm","runArticleArchive","useToggleExternalShare","runToggleExternalShare","isAllowingExternalShare","useResendPublishEventConfirm","PER_PAGE","attributeOptions","UserSquare","ArticleSortTypeEnum","resetPagination","setter","paginate","MyContentScreen","page","_setTab","publishArticleId","setPublishArticleId","_setQuery","topics","_setTopics","_setContentTypes","_setSort","_setAttributes","setTopics","setContentTypes","setAttributes","setTab","myContentResult","ARTICLES_QUERY_DOCUMENT","topicOptions","topic","pageCount","afterInviteAccept","MyContentFilters","newAttributes","MyContentTable","ReactPaginate","MoreHorizontal","contentTypeOptions","ArrowUpDown","Driver","MyContentCardView","ArticleRow","openPublish","refreshList","toggleExternalShare","toggleFeatured","togglePremium","changeVisibility","archive","resendPublishEvent","contentTypesT","MenuEntryWithIcon","Send2","Pencil","Megaphone","Trash","Cell","ContentTypeIcon","ExternalLink","SvgCloseCircle","matchCountText","SearchFeedback","onClearSearch","CloseCircle","useReadIndicators","target","markedReadRef","unviewedIds","setUnviewedIds","librarySortOptions","LibraryScreen","selectedCategory","setSelectedCategory","categoriesToContentTypes","categorizedData","categorizedLoading","LIBRARY_QUERY_DOCUMENT","LIBRARY_ARTICLES_QUERY_DOCUMENT","featuredArticles","newlyAddedArticles","trendingArticles","communityArticles","inputRef","clearSearch","searchActive","contentTypeNames","topicNames","H7","COMMUNITY_BIO_ROWS","COMMUNITY_BIO_LENGTH","OnboardingBioField","register","watch","useFormContext","bioLength","OnboardingDetailsFields","setCardLocation","clearErrors","setValue","mapsApiKey","placeValue","setPlaceValue","onChangePlace","fieldError","Controller","fieldState","GooglePlacesAutocomplete","SvgUploadPhoto","OnboardingPhotoField","removePhoto","UploadPhotoIcon","SvgSignOutLeft","ReferralCode","copied","setCopied","COMMON_PRONOUNS","Pronouns","displayPronouns","enteredPronouns","setEnteredPronouns","selectedPronouns","setSelectedPronouns","displayedPronouns","pronouns","pronounsPickerOpen","setPronounsPickerOpen","onSelectPronouns","clearPronouns","Sparkle","MAXIMUM_CELEBRATIONS","EditProfileScreen","updating","createdCompletedItemRef","editProfileRef","celebrationsRef","interestsRef","expertiseRef","selectedTags","setSelectedTags","imageURL","setImageURL","imgixResize","dirtyFieldsCount","scrollToRef","onSocialBlur","isSocialMediaType","formData","oldCompany","isProfileComplete","toggleTag","nameMap","priorTags","sortedInterestTags","sortedPriorInterestTags","interestsChanged","sortedExpertiseTags","sortedPriorExpertiseTags","expertiseChanged","TagSection","setLeftSidebar","resetLeftSidebar","EditProfileNavigation","FormProvider","LinkedinIcon","TwitterIcon","InstagramImg","ShowCelebration","signOutPath","SignOutLeft","NEXT_PROMPT_KEY","NOTIFICATIONS_DENY_COUNT_KEY","editCelebrationsPath","editInterestsPath","editExpertisePath","useCreateMessage","roomId","otherUserId","MESSAGE_CREATE_MUTATION","MessageSectionHeader","LeaveRoomModal","runMutation","mutationResult","ROOM_LEAVE_MUTATION","leaveRoom","messagesPath","MAX_GROUP_MEMBERS","MAX_INVITABLE","StartRoomModal","ROOM_CREATE_MUTATION","roomPath","AddMembersModal","currentMembers","ROOM_ADD_MEMBERS_MUTATION","cm","RenameRoomModal","existingName","ROOM_UPDATE_MUTATION","roomDisplayName","room","MessagesPaneHeader","roomResult","setMobileConversationsOpen","otherUser","isRoom","leaveRoomModalOpen","setLeaveRoomModalOpen","addMembersModalOpen","setAddMembersModalOpen","renameRoomModalOpen","setRenameRoomModalOpen","Menu","StyledDropdown","StyledDropdownItem","MessagesPane","dmOtherUserId","scrollviewRef","ROOM_QUERY_DOCUMENT","initiateDirectMessage","useMessagesContext","createMessageBag","NoMessages","MessagesSectionInner","SmsNotification","SvgMessageCompose","RoomsPane","searchQuery","setSearchQuery","roomsResult","orderedRooms","initiateNewRoom","MessageCompose","RoomEntry","latestPost","isSelected","path","postDateDisplay","StartDmModal","ROOMS_PER_PAGE","MessagesContext","MessagesScreen","startDmModalOpen","setStartDmModalOpen","startRoomModalOpen","setStartRoomModalOpen","messagesScrollViewRef","debouncedSearchQuery","MY_ROOMS_QUERY_DOCUMENT","rooms","aDate","mobileConversationsOpen","useMessagesSubscription","firstRoom","UserCard","highlight","SvgMapMarker","svgUrl","ReactDOMServer","MapMarkerIcon","staggerPlaces","zoom","fittedJiltBase","pointMap","precision","lat","lng","modifiedPlaces","randomOffset","angle","radius","indices","numGroups","groupSize","groupIndex","latOffset","lngOffset","UserLocationMap","mapCenter","aspectClass","zoomLevel","userLocations","googleMapsLoaded","setGoogleMapsLoaded","staggeredPlaces","markerRefs","createRef","closeAllInfoWindows","GroupedMarker","position","idNames","markerRef","marker","useMarkerRef","Marker","InfoWindow","GoogleMap","CITY_ZOOM_LEVEL","REGION_ZOOM_LEVEL","MapDialog","DirectoryMap","expandable","toggleExpanded","updateUserLocation","enableLocation","setEnableLocationAndDevicePreference","deviceLatLng","fetchingDeviceLatLng","fetchingPermissions","locationServicesEnabled","useCurrentLocation","currentUserPlaceLatLng","USER_LOCATIONS_QUERY_DOCUMENT","usersForMap","mapEnlarged","setMapEnlarged","MinusCircle","APIProvider","useIntroductionsSnoozedUntilMutation","newDate","previousDate","introductionsSnoozedUntilVal","startOfDay","UserIntroductionsStateEnum","useIntroductionsStateMutation","introductionsState","setIntroductionsState","newState","previousState","IntroductionsSettingsModule","updateIntroductionsState","snoozeDate","canUseIntroductions","add","AlarmClock","CalendarDateField","AvatarStack","overlap","avatarWithFallbackProps","wrapperRef","testAvatarRef","setAvatarWidth","avatarHeight","setAvatarHeight","visibleUsers","setVisibleUsers","additionalUsersCount","setAdditionalUsersCount","calculateVisibleUsers","wrapperWidth","avatarWidth","maxVisibleUsers","observer","AvatarPlaceholder","IntroductionsModule","updateIntroductionsSnoozedUntil","getIntroductionMatches","INTRODUCTION_MATCHES_QUERY_DOCUMENT","setIntroductionsSnoozedUntil","introductionsMadeCount","handleTurnOn","editIntroductionsPath","DirectoryScreen","cardFormat","setCardFormat","sortMenuOpen","setSortMenuOpen","debounced","selectedExpertises","setSelectedExpertises","userLocationMapExpanded","setUserLocationMapExpanded","selectedPlace","setSelectedPlace","DIRECTORY_QUERY_DOCUMENT","clearFilters","DirectoryFilters","MenuItem","textValue","DropdownMenuItem","pluralize","DropdownArrow","BookmarkCard","bookmark","BookmarkFilled","TAB_LIST","BookmarkTypeEnum","BookmarkTabs","currentTab","bookmarkType","Tab","to","bookmarksPath","bookmarksTypedPath","activeClasses","DropdownMenuBadges","sanitizeBookmarkType","BookmarksScreen","sanitizedBookmarkType","BOOKMARKS_QUERY_DOCUMENT","bookmarks","RequireUserInactive","SvgSadComputer","SubscribeScreen","USER_INACTIVE_STRIPE_SUBSCRIPTIONS_QUERY_DOCUMENT","mostRecentlyCanceledSubscription","canceledAt","stripeSubscriptionStatus","statusHistory","previousStripeSubscriptionStatus","isCanceled","CANCELED_STATUSES","wasPastDue","PAST_DUE_STATUSES","wasCanceledDueToNonPayment","wasCanceledByUser","cta","SadComputer","FeedSkeletonLayout","phonyPosts","MentionsInput","MENTION_STYLES","Mention","TagSelector","AddVideo","AddPhoto","Attachment","src","SvgXOctogon","NotFoundScreen","XOctogon","Collapsible","CollapsiblePrimitive.Root","CollapsibleTrigger","CollapsiblePrimitive.CollapsibleTrigger","CollapsibleContent","CollapsiblePrimitive.CollapsibleContent","DEFAULT_PAGE_SIZE","NAME_FILTERS","Events","after","setAfter","before","setBefore","first","nameFilter","setNameFilter","EVENTS_QUERY_DOCUMENT","goToNextPage","goToPreviousPage","clearNameFilter","EventCard","useCopyToClipboard","properties","Copy","AdminEventsScreen","SatelliteDish","AlertTitle","adminSailthruSyncsPath","descriptionListVariants","DescriptionList","descriptionTermVariants","DescriptionTerm","descriptionDetailsVariants","DescriptionDetails","SubscriptionManagementModule","subscription","setSubscription","FETCH_SUBSCRIPTION","formatTierName","startDate","handleManageSubscriptionClicked","handleUpgradeClicked","topTier","SubscriptionOverview","useForceUpdate","setTick","tick","AccountSettingsScreen","forceUpdate","runNotificationPreferencesUpdate","NOTIFICATION_PREFERENCES_UPDATE_MUTATION","onNotificationPreferencesSubmit","notificationPreferencesDirtyFieldsCount","introductionsRef","notificationsRef","subscriptionRef","AccountSettingsNavigation","CheckboxField","editNotificationsPath","editSubscriptionPath","TIERS","tierDisplay","MembershipCard","Medal","useQaFitHelper","fit","OnboardingCard","inlined","withFakeMessageButton","FakeButton","MailOpen","FitWaitingScreen","unfitPath","CardAndVideo","Waiting","isFlipped","setIsFlipped","onFlip","OnboardingStateEnum","bioFormSchema","debugSettings","useDebugSettings","CURRENT_USER_QUERY_DOCUMENT","qaMarkFit","setLoading","areApplicationsPaused","needsBio","setNeedsBio","bioSubmitted","setBioSubmitted","hasOpenedApplicationsPausedModalRef","getBestUserOffer","upgradeSubscription","bestOffer","DebugSettingKeyEnum","UnfitScreen","CommunityName","LegalPolicyScreen","policy","LEGAL_POLICIES_QUERY_DOCUMENT","ReactMarkdown","other","subscriberAgreementPath","FormSchema","AdminDebugSettingsScreen","upsertDebugSetting","UPSERT_DEBUG_SETTING_MUTATION","runJob","RUN_JOB_MUTATION","doRunJob","jobClass","Label","JobClassEnum","AdminAutoMessagesScreen","adminAutoMessageEditPath","AutomationsTable","AutomationRunsTable","AUTO_MESSAGES_QUERY_DOCUMENT","AutomationCategoryEnum","automations","automation","AutomationRow","sendTestMessage","fromUserId","effect","RulesEngineEffectTypeEnum","AUTOMATION_RUNS_QUERY_DOCUMENT","automationRuns","automationRun","AutomationRunRow","sendDirectMessageOutput","o","ChevronDownIcon","ChevronRightIcon","FormattedContent","automationFormSchema","defaultTierSelectEntry","delayUnitSelectEntries","AutoMessageForm","_onSubmit","delayCount","delayUnit","tierLevel","postParams","triggerEventName","conditions","triggerDelaySeconds","postParamsSnakecase","postComposerRef","tierSelectEntries","triggerEventNameSelectEntries","TextareaField","SelectField","AdminAutoMessagesNewScreen","runCreateAutomation","AUTOMATION_CREATE_MUTATION","AdminAutoMessagesEditScreen","automationId","runUpdateAutomation","AUTOMATION_UPDATE_MUTATION","AUTOMATION_QUERY_DOCUMENT","delay","effects","category","AdminOffersScreen","TicketPercent","OffersTable","OFFERS_QUERY_DOCUMENT","offers","offer","OfferRow","runUpdateOffer","OFFERS_UPDATE_MUTATION","changeStripeCoupon","openCouponInStripe","OpenInNewWindowIcon","capitalCase","AdminAdministratorsScreen","isAddAdminDialogOpen","setIsAddAdminDialogOpen","usersTableRef","onAdminCreated","UserCircle","AddAdminDialog","proTier","changeRole","role","setAsMember","setAsAdmin","setAsSuperadmin","deactivate","deactivateUser","runResendInvite","USER_RESEND_INVITE_MUTATION","resendInvite","EyeOff","addAdminFormSchema","runCreateUser","CREATE_USER_MUTATION","DialogDescription","TexasToast","FitProfileDisplay","fitProfile","translateIndustry","translateJobFunction","translateVertical","display","ApplicationFieldEnum","isLink","getURL","ApplicationsTableSkeleton","Checkbox","approve","select","deselect","selectedUsers","ApplicationsContext","formatTime","ApplicationsTable","onboardingState","unfitRefundWindowInDays","UNFIT_REFUND_WINDOW_IN_DAYS","refresh","setRefresh","setSelectedUsers","runUsersBulkReview","USERS_BULK_REVIEW_MUTATION","doReject","approveSelected","UnfitApplicationsTableSkeleton","changeToFit","UnfitApplicationsTable","AdminApplicationsScreen","AdminDashboardScreen","Construction","ActivitiesTable","runManualHrisDataDestroy","MANUAL_HRIS_DATA_DESTROY_MUTATION","runMergeLinkDestroy","MERGE_LINK_DESTROY_MUTATION","usersWithHrisData","AdminHrisScreen","AdminLibraryScreen","translateContentType","RulesEngineConditionsBuilder","initialConditions","excludeFacts","defaultEnabledFacts","fact","setConditions","deleteCondition","enabledFacts","RulesEngineConditionBuilderRow","AnyAllSelect","onValueChange","factOperators","RulesEngineConditionOperatorEnum","useFactOptions","FACT_OPTIONS_QUERY_DOCUMENT","isParentAll","isRoot","setCondition","isAny","isAll","factOptions","formattedValue","newCondition","iIndex","operators","operator","GroupForm","matchEveryone","minimumTierLevel","maximumTierLevel","GroupTypeEnum","usersTableQueryOptions","IconInputAdornment","AtSign","AdminGroupNewScreen","runCreateGroup","GROUP_CREATE_MUTATION","AdminGroupEditScreen","runUpdateGroup","GROUP_UPDATE_MUTATION","GROUP_QUERY_DOCUMENT","SailthruSyncs","SAILTHRU_SYNC_QUERY_DOCUMENT","sailthruSyncs","sailthruSync","SailthruSyncCard","AdminSailthruSyncsScreen","Sailboat","ApplicationContext","useApplicationLayout","ApplicationLayout","setAction","banner","setBanner","CTAWrapper","ResponsibilityQuestions","userResponsibilityQuestions","formState","noneOfTheAbove","hasAnsweredResponsibilityQuestions","UserResponsibilityQuestionsEnum","fieldName","QUESTIONS","YearsOfExperienceInput","CupsOfCoffeeInput","selectedIndex","opt","isHighlighted","Coffee","MadlibsQuestions","setYearsOfExperience","cupsOfCoffee","setCupsOfCoffee","responsibilityQuestionsSchema","REQUIRED_FIELDS_FOR_COMMUNITY","getFormSchemaWithRequiredFields","communitySlug","ApplicationLandingScreen","hasLoggedEmailEvent","internalSearchParams","useInternalSearchParams","leadLoading","clearLead","useLead","runUserCreate","USER_SIGNUP_MUTATION","runLeadUpdate","LEAD_UPDATE_MUTATION","hasLoggedFirstChange","formValues","formResponsibilityQuestions","userResponsibilitiesInput","question","userInput","ReferralSourceEnum","applicationMostExcitedAboutPath","applicationFitWaitingScreenPath","FIT_QUESTIONS","UNFIT_QUESTIONS","selectQuestions","questionType","questions","debouncedHandleValidEmail","debounce","handleValidEmail","onEmailChange","useExperiment","ASSIGN_EXPERIMENT","experimentResult","wasCreated","invitationFormSchema","Referral","invitationsData","INVITATIONS_QUERY","invitations","createInvitation","INVITATION_CREATE_MUTATION","WaitingRoomHeader","invitation","ONBOARDING_CONTENT_UPLOAD_QUERY","FileUploader","currentFile","setCurrentFile","onDrop","files","isDragActive","useDropzone","existingUploads","upload","CTACard","ctaData","Scroll","CalendarPlus","Mic","getButtonText","ProcessingCTAs","ctas","ctaCount","Rejected","Processing","ABFitWaitingScreen","setVariant","getOrAssignVariant","processingState","setProcessingState","isFit","fitApplicationSubmittedAt","fitnessDecisionCommunicatedAt","decisionDate","thirtyMinutesAgo","submittedDate","remainingMs","remainingSecs","timer","RequireUserOnboarding","ApplicationMostExcitedAboutScreen","hasOpenedSubscriptionWizardRef","handle","useApplicationRoutes","Route","RequireUserSignedIn","AuthenticatedLayout","AdminScreenVariantsScreen","SCREEN_VARIANTS_QUERY_DOCUMENT","screenVariants","Variable","adminScreenVariantNewPath","ScreenVariantRow","screens","briefUrl","screen","variantIdentifier","adminScreenVariantEditPath","typographyVariants","ScreenVariantForm","i18n","defaultTranslationsForScreen","setDefaultTranslationsForScreen","AdminScreenVariantNewScreen","runCreateScreenVariant","SCREEN_VARIANT_CREATE_MUTATION","AdminScreenVariantEditScreen","runUpdateScreenVariant","SCREEN_VARIANT_UPDATE_MUTATION","screenVariantId","SCREEN_VARIANT_QUERY_DOCUMENT","AdminChannelNewScreen","urlSearchParams","runCreateChannel","CHANNEL_CREATE_MUTATION","CommunityLayout","Routes","applicationRoutes","createRoutesFromElements","ErrorBoundary","RootLayout","paths.loadingPath","LoadingScreen","PullToRefresh","paths.privacyPolicyPath","paths.subscriberAgreementPath","FitRedirecting","RequireUserOnboarded","RequireUserActive","AuthenticatedOrExternalLayout","paths.articlePath","ArticleScreen","paths.onboardingFitWaitingPath","paths.unfitPath","paths.subscribePath","paths.benchmarkPath","paths.feedPath","paths.channelPath","paths.postPath","paths.editPostPath","paths.directoryPath","paths.myContentPath","paths.libraryPath","paths.editArticlePath","paths.messagesPath","paths.dmPath","paths.roomPath","paths.eventsPath","paths.bookmarksPath","paths.bookmarksTypedPath","paths.askTheBotPath","paths.editProfilePath","paths.accountSettingsPath","Navigate","paths.signInPath","paths.signInTokenPath","paths.adminDashboardPath","paths.adminApplicationsPath","paths.adminMembersPath","paths.adminLeadsPath","paths.adminAdministratorsPath","paths.adminAutoMessagesPath","paths.adminAutoMessageNewPath","paths.adminAutoMessageEditPath","paths.adminIntroductionsPath","paths.adminNewIntroductionCyclePath","paths.adminIntroductionCyclePath","paths.adminEditIntroductionCyclePath","paths.adminProEventsPath","paths.adminProEventNewPath","paths.adminProEventEditPath","paths.adminChannelsPath","paths.adminChannelNewPath","paths.adminChannelEditPath","paths.adminGroupsPath","paths.adminGroupNewPath","paths.adminGroupEditPath","paths.adminLibraryPath","paths.adminHrisPath","paths.adminDebugSettingsPath","paths.adminEventsPath","paths.adminSailthruSyncsPath","paths.adminOffersPath","paths.adminScreenVariantsPath","paths.adminScreenVariantNewPath","paths.adminScreenVariantEditPath","paths.adminExperimentsPath","paths.adminExperimentPath","router","createBrowserRouter","cable","createConsumer","hasSubscriptionOperation","definitions","kind","operation","getMetaVar","httpLink","HttpLink","link","ApolloLink","ActionCableLink","excludePaginationArgs","args","apolloClient","ApolloClient","InMemoryCache","relayStylePagination","metaConfig","getMetaVars","base64CurrentUserData","currentUserData","Base64","communityMetaContent","communityData","COMMUNITY_QUERY_DOCUMENT","environment","initReactI18next","languageResources","App","React.StrictMode","Worker","ApolloProvider","ConfigProvider","GlobalsProvider","Toaster","FlashMessageToasts","RouterProvider","createRoot"],"mappings":"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"}