import { APP_VERSION, getReleaseUrl } from 'routes/Settings' import { CustomIcon } from 'components/CustomIcon' import Tooltip from 'components/Tooltip' import { PATHS } from 'lib/paths' import { NetworkHealthIndicator } from 'components/NetworkHealthIndicator' import { HelpMenu } from './HelpMenu' import { Link, useLocation } from 'react-router-dom' import { useAbsoluteFilePath } from 'hooks/useAbsoluteFilePath' import { coreDump } from 'lang/wasm' import toast from 'react-hot-toast' import { CoreDumpManager } from 'lib/coredump' import openWindow, { openExternalBrowserIfDesktop } from 'lib/openWindow' import { NetworkMachineIndicator } from './NetworkMachineIndicator' import { ModelStateIndicator } from './ModelStateIndicator' import { reportRejection } from 'lib/trap' export function LowerRightControls({ children, coreDumpManager, }: { children?: React.ReactNode coreDumpManager?: CoreDumpManager }) { const location = useLocation() const filePath = useAbsoluteFilePath() const linkOverrideClassName = '!text-chalkboard-70 hover:!text-chalkboard-80 dark:!text-chalkboard-40 dark:hover:!text-chalkboard-30' function reportbug(event: { preventDefault: () => void stopPropagation: () => void }) { event?.preventDefault() event?.stopPropagation() if (!coreDumpManager) { // open default reporting option openWindow( 'https://github.com/KittyCAD/modeling-app/issues/new/choose' ).catch(reportRejection) } else { toast .promise( coreDump(coreDumpManager, true), { loading: 'Preparing bug report...', success: 'Bug report opened in new window', error: 'Unable to export a core dump. Using default reporting.', }, { success: { // Note: this extended duration is especially important for Playwright e2e testing // default duration is 2000 - https://react-hot-toast.com/docs/toast#default-durations duration: 6000, }, } ) .catch((err: Error) => { if (err) { openWindow( 'https://github.com/KittyCAD/modeling-app/issues/new/choose' ).catch(reportRejection) } }) } } return (
{children} {!location.pathname.startsWith(PATHS.HOME) && } v{APP_VERSION} Report a bug Telemetry Telemetry Settings Settings {!location.pathname.startsWith(PATHS.HOME) && ( )}
) }