From 015ed5e7eb40110a67ee376e359f48d629315f70 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Thu, 4 Apr 2024 17:03:30 +0800 Subject: [PATCH] Further expand usage of SubMenu2 --- src/components/account-info.jsx | 9 +++++---- src/components/menu-confirm.jsx | 21 +++------------------ src/components/nav-menu.jsx | 31 ++----------------------------- src/components/shortcuts.jsx | 7 ++++--- src/components/submenu2.jsx | 25 +++++++++++++++++++++++++ 5 files changed, 39 insertions(+), 54 deletions(-) create mode 100644 src/components/submenu2.jsx diff --git a/src/components/account-info.jsx b/src/components/account-info.jsx index 1f6cc82..fd911f4 100644 --- a/src/components/account-info.jsx +++ b/src/components/account-info.jsx @@ -1,6 +1,6 @@ import './account-info.css'; -import { Menu, MenuDivider, MenuItem, SubMenu } from '@szhsin/react-menu'; +import { MenuDivider, MenuItem } from '@szhsin/react-menu'; import { useCallback, useEffect, @@ -11,7 +11,6 @@ import { } from 'preact/hooks'; import punycode from 'punycode'; -import MenuLink from '../components/menu-link'; import { api } from '../utils/api'; import enhanceContent from '../utils/enhance-content'; import getHTMLText from '../utils/getHTMLText'; @@ -34,7 +33,9 @@ import ListAddEdit from './list-add-edit'; import Loader from './loader'; import Menu2 from './menu2'; import MenuConfirm from './menu-confirm'; +import MenuLink from './menu-link'; import Modal from './modal'; +import SubMenu2 from './submenu2'; import TranslationBlock from './translation-block'; const MUTE_DURATIONS = [ @@ -1284,7 +1285,7 @@ function RelatedActions({ Unmute @{username} ) : ( - ))} - + )} {followedBy && ( { - if (e.pointerType === 'touch') { - menuRef.current?.openMenu?.(); - } - }, - onPointerLeave: (e) => { - if (e.pointerType === 'touch') { - menuRef.current?.openMenu?.(); - } - }, - }} > {confirmLabel} diff --git a/src/components/nav-menu.jsx b/src/components/nav-menu.jsx index e565983..2b622fe 100644 --- a/src/components/nav-menu.jsx +++ b/src/components/nav-menu.jsx @@ -1,11 +1,6 @@ import './nav-menu.css'; -import { - ControlledMenu, - MenuDivider, - MenuItem, - SubMenu, -} from '@szhsin/react-menu'; +import { ControlledMenu, MenuDivider, MenuItem } from '@szhsin/react-menu'; import { memo } from 'preact/compat'; import { useEffect, useMemo, useRef, useState } from 'preact/hooks'; import { useLongPress } from 'use-long-press'; @@ -20,6 +15,7 @@ import store from '../utils/store'; import Avatar from './avatar'; import Icon from './icon'; import MenuLink from './menu-link'; +import SubMenu2 from './submenu2'; function NavMenu(props) { const snapStates = useSnapshot(states); @@ -371,27 +367,4 @@ function NavMenu(props) { ); } -function SubMenu2(props) { - const menuRef = useRef(); - return ( - { - if (e.pointerType === 'touch') { - menuRef.current?.openMenu?.(); - } - }, - onPointerLeave: (e) => { - if (e.pointerType === 'touch') { - menuRef.current?.openMenu?.(); - } - }, - }} - /> - ); -} - export default memo(NavMenu); diff --git a/src/components/shortcuts.jsx b/src/components/shortcuts.jsx index c4645c7..ddbe9cd 100644 --- a/src/components/shortcuts.jsx +++ b/src/components/shortcuts.jsx @@ -1,6 +1,6 @@ import './shortcuts.css'; -import { MenuDivider, SubMenu } from '@szhsin/react-menu'; +import { MenuDivider } from '@szhsin/react-menu'; import { memo } from 'preact/compat'; import { useRef, useState } from 'preact/hooks'; import { useHotkeys } from 'react-hotkeys-hook'; @@ -17,6 +17,7 @@ import Icon from './icon'; import Link from './link'; import Menu2 from './menu2'; import MenuLink from './menu-link'; +import SubMenu2 from './submenu2'; function Shortcuts() { const { instance } = api(); @@ -182,7 +183,7 @@ function Shortcuts() { {formattedShortcuts.map(({ id, path, title, subtitle, icon }, i) => { if (id === 'lists') { return ( - {list.title} ))} - + ); } diff --git a/src/components/submenu2.jsx b/src/components/submenu2.jsx new file mode 100644 index 0000000..25f1638 --- /dev/null +++ b/src/components/submenu2.jsx @@ -0,0 +1,25 @@ +import { SubMenu } from '@szhsin/react-menu'; +import { useRef } from 'preact/hooks'; + +export default function SubMenu2(props) { + const menuRef = useRef(); + return ( + { + if (e.pointerType === 'touch') { + menuRef.current?.openMenu?.(); + } + }, + onPointerLeave: (e) => { + if (e.pointerType === 'touch') { + menuRef.current?.openMenu?.(); + } + }, + }} + /> + ); +}