Hey is a decentralized and permissionless social media app built with Lens Protocol 馃尶
at main 101 lines 4.2 kB view raw
1import { XMarkIcon } from "@heroicons/react/24/outline"; 2import type { AccountFragment } from "@hey/indexer"; 3import { Link } from "react-router"; 4import AccountLink from "@/components/Shared/Account/AccountLink"; 5import SingleAccount from "@/components/Shared/Account/SingleAccount"; 6import Bookmarks from "@/components/Shared/Navbar/NavItems/Bookmarks"; 7import Groups from "@/components/Shared/Navbar/NavItems/Groups"; 8import Logout from "@/components/Shared/Navbar/NavItems/Logout"; 9import Rewards from "@/components/Shared/Navbar/NavItems/Rewards"; 10import Settings from "@/components/Shared/Navbar/NavItems/Settings"; 11import Support from "@/components/Shared/Navbar/NavItems/Support"; 12import SwitchAccount from "@/components/Shared/Navbar/NavItems/SwitchAccount"; 13import ThemeSwitch from "@/components/Shared/Navbar/NavItems/ThemeSwitch"; 14import YourAccount from "@/components/Shared/Navbar/NavItems/YourAccount"; 15import cn from "@/helpers/cn"; 16import { useMobileDrawerModalStore } from "@/store/non-persisted/modal/useMobileDrawerModalStore"; 17import { useAccountStore } from "@/store/persisted/useAccountStore"; 18 19const MobileDrawerMenu = () => { 20 const { currentAccount } = useAccountStore(); 21 const { setShow: setShowMobileDrawer } = useMobileDrawerModalStore(); 22 23 const handleCloseDrawer = () => { 24 setShowMobileDrawer(false); 25 }; 26 27 const itemClass = "py-3 hover:bg-gray-100 dark:hover:bg-gray-800"; 28 29 return ( 30 <div className="no-scrollbar fixed inset-0 z-10 size-full overflow-y-auto bg-gray-100 py-4 md:hidden dark:bg-black"> 31 <button className="px-5" onClick={handleCloseDrawer} type="button"> 32 <XMarkIcon className="size-6" /> 33 </button> 34 <div className="w-full space-y-2"> 35 <AccountLink 36 account={currentAccount as AccountFragment} 37 className="mt-2 flex items-center space-x-2 px-5 py-3 hover:bg-gray-200 dark:hover:bg-gray-800" 38 onClick={handleCloseDrawer} 39 > 40 <SingleAccount 41 account={currentAccount as AccountFragment} 42 linkToAccount={false} 43 showUserPreview={false} 44 /> 45 </AccountLink> 46 <div className="bg-white dark:bg-gray-900"> 47 <div className="divider" /> 48 <SwitchAccount className={cn(itemClass, "px-4")} /> 49 <div className="divider" /> 50 </div> 51 <div className="bg-white dark:bg-gray-900"> 52 <div className="divider" /> 53 <div> 54 <AccountLink 55 account={currentAccount as AccountFragment} 56 onClick={handleCloseDrawer} 57 > 58 <YourAccount className={cn(itemClass, "px-4")} /> 59 </AccountLink> 60 <Link onClick={handleCloseDrawer} to="/settings/rewards"> 61 <Rewards className={cn(itemClass, "px-4")} /> 62 </Link> 63 <Link onClick={handleCloseDrawer} to="/settings"> 64 <Settings className={cn(itemClass, "px-4")} /> 65 </Link> 66 <Link onClick={handleCloseDrawer} to="/groups"> 67 <Groups className={cn(itemClass, "px-4")} /> 68 </Link> 69 <Link onClick={handleCloseDrawer} to="/bookmarks"> 70 <Bookmarks className={cn(itemClass, "px-4")} /> 71 </Link> 72 <ThemeSwitch 73 className={cn(itemClass, "px-4")} 74 onClick={handleCloseDrawer} 75 /> 76 </div> 77 <div className="divider" /> 78 </div> 79 <div className="bg-white dark:bg-gray-900"> 80 <div className="divider" /> 81 <Link onClick={handleCloseDrawer} to="/support"> 82 <Support className={cn(itemClass, "px-4")} /> 83 </Link> 84 <div className="divider" /> 85 </div> 86 <div className="bg-white dark:bg-gray-900"> 87 <div className="divider" /> 88 <div className="hover:bg-gray-100 dark:hover:bg-gray-800"> 89 <Logout 90 className={cn(itemClass, "px-4 py-3")} 91 onClick={handleCloseDrawer} 92 /> 93 </div> 94 <div className="divider" /> 95 </div> 96 </div> 97 </div> 98 ); 99}; 100 101export default MobileDrawerMenu;