this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Further expand usage of SubMenu2

+39 -54
+5 -4
src/components/account-info.jsx
··· 1 1 import './account-info.css'; 2 2 3 - import { Menu, MenuDivider, MenuItem, SubMenu } from '@szhsin/react-menu'; 3 + import { MenuDivider, MenuItem } from '@szhsin/react-menu'; 4 4 import { 5 5 useCallback, 6 6 useEffect, ··· 11 11 } from 'preact/hooks'; 12 12 import punycode from 'punycode'; 13 13 14 - import MenuLink from '../components/menu-link'; 15 14 import { api } from '../utils/api'; 16 15 import enhanceContent from '../utils/enhance-content'; 17 16 import getHTMLText from '../utils/getHTMLText'; ··· 34 33 import Loader from './loader'; 35 34 import Menu2 from './menu2'; 36 35 import MenuConfirm from './menu-confirm'; 36 + import MenuLink from './menu-link'; 37 37 import Modal from './modal'; 38 + import SubMenu2 from './submenu2'; 38 39 import TranslationBlock from './translation-block'; 39 40 40 41 const MUTE_DURATIONS = [ ··· 1284 1285 <span>Unmute @{username}</span> 1285 1286 </MenuItem> 1286 1287 ) : ( 1287 - <SubMenu 1288 + <SubMenu2 1288 1289 menuClassName="menu-blur" 1289 1290 openTrigger="clickOnly" 1290 1291 direction="bottom" ··· 1338 1339 </MenuItem> 1339 1340 ))} 1340 1341 </div> 1341 - </SubMenu> 1342 + </SubMenu2> 1342 1343 )} 1343 1344 {followedBy && ( 1344 1345 <MenuConfirm
+3 -18
src/components/menu-confirm.jsx
··· 1 - import { MenuItem, SubMenu } from '@szhsin/react-menu'; 1 + import { MenuItem } from '@szhsin/react-menu'; 2 2 import { cloneElement } from 'preact'; 3 - import { useRef } from 'preact/hooks'; 4 3 5 4 import Menu2 from './menu2'; 5 + import SubMenu2 from './submenu2'; 6 6 7 7 function MenuConfirm({ 8 8 subMenu = false, ··· 23 23 } 24 24 return children; 25 25 } 26 - const Parent = subMenu ? SubMenu : Menu2; 27 - const menuRef = useRef(); 26 + const Parent = subMenu ? SubMenu2 : Menu2; 28 27 return ( 29 28 <Parent 30 - instanceRef={menuRef} 31 29 openTrigger="clickOnly" 32 30 direction="bottom" 33 31 overflow="auto" ··· 37 35 {...restProps} 38 36 menuButton={subMenu ? undefined : children} 39 37 label={subMenu ? children : undefined} 40 - // Test fix for bug; submenus not opening on Android 41 - itemProps={{ 42 - onPointerMove: (e) => { 43 - if (e.pointerType === 'touch') { 44 - menuRef.current?.openMenu?.(); 45 - } 46 - }, 47 - onPointerLeave: (e) => { 48 - if (e.pointerType === 'touch') { 49 - menuRef.current?.openMenu?.(); 50 - } 51 - }, 52 - }} 53 38 > 54 39 <MenuItem className={menuItemClassName} onClick={onClick}> 55 40 {confirmLabel}
+2 -29
src/components/nav-menu.jsx
··· 1 1 import './nav-menu.css'; 2 2 3 - import { 4 - ControlledMenu, 5 - MenuDivider, 6 - MenuItem, 7 - SubMenu, 8 - } from '@szhsin/react-menu'; 3 + import { ControlledMenu, MenuDivider, MenuItem } from '@szhsin/react-menu'; 9 4 import { memo } from 'preact/compat'; 10 5 import { useEffect, useMemo, useRef, useState } from 'preact/hooks'; 11 6 import { useLongPress } from 'use-long-press'; ··· 20 15 import Avatar from './avatar'; 21 16 import Icon from './icon'; 22 17 import MenuLink from './menu-link'; 18 + import SubMenu2 from './submenu2'; 23 19 24 20 function NavMenu(props) { 25 21 const snapStates = useSnapshot(states); ··· 368 364 </section> 369 365 </ControlledMenu> 370 366 </> 371 - ); 372 - } 373 - 374 - function SubMenu2(props) { 375 - const menuRef = useRef(); 376 - return ( 377 - <SubMenu 378 - {...props} 379 - instanceRef={menuRef} 380 - // Test fix for bug; submenus not opening on Android 381 - itemProps={{ 382 - onPointerMove: (e) => { 383 - if (e.pointerType === 'touch') { 384 - menuRef.current?.openMenu?.(); 385 - } 386 - }, 387 - onPointerLeave: (e) => { 388 - if (e.pointerType === 'touch') { 389 - menuRef.current?.openMenu?.(); 390 - } 391 - }, 392 - }} 393 - /> 394 367 ); 395 368 } 396 369
+4 -3
src/components/shortcuts.jsx
··· 1 1 import './shortcuts.css'; 2 2 3 - import { MenuDivider, SubMenu } from '@szhsin/react-menu'; 3 + import { MenuDivider } from '@szhsin/react-menu'; 4 4 import { memo } from 'preact/compat'; 5 5 import { useRef, useState } from 'preact/hooks'; 6 6 import { useHotkeys } from 'react-hotkeys-hook'; ··· 17 17 import Link from './link'; 18 18 import Menu2 from './menu2'; 19 19 import MenuLink from './menu-link'; 20 + import SubMenu2 from './submenu2'; 20 21 21 22 function Shortcuts() { 22 23 const { instance } = api(); ··· 182 183 {formattedShortcuts.map(({ id, path, title, subtitle, icon }, i) => { 183 184 if (id === 'lists') { 184 185 return ( 185 - <SubMenu 186 + <SubMenu2 186 187 menuClassName="glass-menu" 187 188 overflow="auto" 188 189 gap={-8} ··· 205 206 <span>{list.title}</span> 206 207 </MenuLink> 207 208 ))} 208 - </SubMenu> 209 + </SubMenu2> 209 210 ); 210 211 } 211 212
+25
src/components/submenu2.jsx
··· 1 + import { SubMenu } from '@szhsin/react-menu'; 2 + import { useRef } from 'preact/hooks'; 3 + 4 + export default function SubMenu2(props) { 5 + const menuRef = useRef(); 6 + return ( 7 + <SubMenu 8 + {...props} 9 + instanceRef={menuRef} 10 + // Test fix for bug; submenus not opening on Android 11 + itemProps={{ 12 + onPointerMove: (e) => { 13 + if (e.pointerType === 'touch') { 14 + menuRef.current?.openMenu?.(); 15 + } 16 + }, 17 + onPointerLeave: (e) => { 18 + if (e.pointerType === 'touch') { 19 + menuRef.current?.openMenu?.(); 20 + } 21 + }, 22 + }} 23 + /> 24 + ); 25 + }