import { observer } from "mobx-react"; import * as React from "react"; import { useTranslation } from "react-i18next"; import { MenuButton, useMenuState } from "reakit/Menu"; import ContextMenu from "~/components/ContextMenu"; import Template from "~/components/ContextMenu/Template"; import { navigateToProfileSettings, navigateToAccountPreferences, openKeyboardShortcuts, openChangelog, openAPIDocumentation, openBugReportUrl, openFeedbackUrl, logout, downloadApp, } from "~/actions/definitions/navigation"; import { changeTheme } from "~/actions/definitions/settings"; import usePrevious from "~/hooks/usePrevious"; import useStores from "~/hooks/useStores"; import separator from "~/menus/separator"; const AccountMenu: React.FC = ({ children }) => { const menu = useMenuState({ placement: "bottom-end", modal: true, }); const { ui } = useStores(); const { theme } = ui; const previousTheme = usePrevious(theme); const { t } = useTranslation(); React.useEffect(() => { if (theme !== previousTheme) { menu.hide(); } }, [menu, theme, previousTheme]); const actions = React.useMemo( () => [ openKeyboardShortcuts, downloadApp, openAPIDocumentation, separator(), openChangelog, openFeedbackUrl, openBugReportUrl, changeTheme, navigateToProfileSettings, navigateToAccountPreferences, separator(), logout, ], [] ); return ( <> {children}