import { Popover } from '@headlessui/react' import { useLocation, useNavigate } from 'react-router-dom' import { CustomIcon } from '@src/components/CustomIcon' import { useLspContext } from '@src/components/LspProvider' import Tooltip from '@src/components/Tooltip' import { useAbsoluteFilePath } from '@src/hooks/useAbsoluteFilePath' import { useMenuListener } from '@src/hooks/useMenu' import { createAndOpenNewTutorialProject } from '@src/lib/desktopFS' import { openExternalBrowserIfDesktop } from '@src/lib/openWindow' import { PATHS } from '@src/lib/paths' import { reportRejection } from '@src/lib/trap' import { settingsActor } from '@src/lib/singletons' import type { WebContentSendPayload } from '@src/menu/channels' const HelpMenuDivider = () => (
) export function HelpMenu(props: React.PropsWithChildren) { const location = useLocation() const { onProjectOpen } = useLspContext() const filePath = useAbsoluteFilePath() const isInProject = location.pathname.includes(PATHS.FILE) const navigate = useNavigate() const resetOnboardingWorkflow = () => { settingsActor.send({ type: 'set.app.onboardingStatus', data: { value: '', level: 'user', }, }) if (isInProject) { navigate(filePath + PATHS.ONBOARDING.INDEX) } else { createAndOpenNewTutorialProject({ onProjectOpen, navigate, }).catch(reportRejection) } } const cb = (data: WebContentSendPayload) => { if (data.menuLabel === 'Help.Reset onboarding') { resetOnboardingWorkflow() } } useMenuListener(cb) return (