mirror of
https://github.com/cheeaun/phanpy.git
synced 2025-02-02 14:16:39 +01:00
Time to re-organize this main menu
Will need to gather feedback
This commit is contained in:
parent
4a9cae9cb6
commit
2b2f6c28a9
1 changed files with 85 additions and 62 deletions
|
@ -1,6 +1,11 @@
|
||||||
import './nav-menu.css';
|
import './nav-menu.css';
|
||||||
|
|
||||||
import { ControlledMenu, MenuDivider, MenuItem } from '@szhsin/react-menu';
|
import {
|
||||||
|
ControlledMenu,
|
||||||
|
MenuDivider,
|
||||||
|
MenuItem,
|
||||||
|
SubMenu,
|
||||||
|
} from '@szhsin/react-menu';
|
||||||
import { memo } from 'preact/compat';
|
import { memo } from 'preact/compat';
|
||||||
import { useEffect, useRef, useState } from 'preact/hooks';
|
import { useEffect, useRef, useState } from 'preact/hooks';
|
||||||
import { useLongPress } from 'use-long-press';
|
import { useLongPress } from 'use-long-press';
|
||||||
|
@ -169,7 +174,7 @@ function NavMenu(props) {
|
||||||
<MenuLink to="/">
|
<MenuLink to="/">
|
||||||
<Icon icon="home" size="l" /> <span>Home</span>
|
<Icon icon="home" size="l" /> <span>Home</span>
|
||||||
</MenuLink>
|
</MenuLink>
|
||||||
{authenticated && (
|
{authenticated ? (
|
||||||
<>
|
<>
|
||||||
{showFollowing && (
|
{showFollowing && (
|
||||||
<MenuLink to="/following">
|
<MenuLink to="/following">
|
||||||
|
@ -192,44 +197,64 @@ function NavMenu(props) {
|
||||||
</sup>
|
</sup>
|
||||||
)}
|
)}
|
||||||
</MenuLink>
|
</MenuLink>
|
||||||
<MenuDivider />
|
|
||||||
<MenuLink to="/l">
|
|
||||||
<Icon icon="list" size="l" /> <span>Lists</span>
|
|
||||||
</MenuLink>
|
|
||||||
<MenuLink to="/ft">
|
|
||||||
<Icon icon="hashtag" size="l" /> <span>Followed Hashtags</span>
|
|
||||||
</MenuLink>
|
|
||||||
<MenuLink to="/b">
|
|
||||||
<Icon icon="bookmark" size="l" /> <span>Bookmarks</span>
|
|
||||||
</MenuLink>
|
|
||||||
<MenuLink to="/f">
|
|
||||||
<Icon icon="heart" size="l" /> <span>Likes</span>
|
|
||||||
</MenuLink>
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
<MenuDivider />
|
|
||||||
<MenuLink to={`/search`}>
|
|
||||||
<Icon icon="search" size="l" /> <span>Search</span>
|
|
||||||
</MenuLink>
|
|
||||||
<MenuLink to={`/${instance}/p/l`}>
|
|
||||||
<Icon icon="building" size="l" /> <span>Local</span>
|
|
||||||
</MenuLink>
|
|
||||||
<MenuLink to={`/${instance}/p`}>
|
|
||||||
<Icon icon="earth" size="l" /> <span>Federated</span>
|
|
||||||
</MenuLink>
|
|
||||||
<MenuLink to={`/${instance}/trending`}>
|
|
||||||
<Icon icon="chart" size="l" /> <span>Trending</span>
|
|
||||||
</MenuLink>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
{authenticated ? (
|
|
||||||
<>
|
|
||||||
<MenuDivider />
|
<MenuDivider />
|
||||||
{currentAccount?.info?.id && (
|
{currentAccount?.info?.id && (
|
||||||
<MenuLink to={`/${instance}/a/${currentAccount.info.id}`}>
|
<MenuLink to={`/${instance}/a/${currentAccount.info.id}`}>
|
||||||
<Icon icon="user" size="l" /> <span>Profile</span>
|
<Icon icon="user" size="l" /> <span>Profile</span>
|
||||||
</MenuLink>
|
</MenuLink>
|
||||||
)}
|
)}
|
||||||
|
<MenuLink to="/l">
|
||||||
|
<Icon icon="list" size="l" /> <span>Lists</span>
|
||||||
|
</MenuLink>
|
||||||
|
<MenuLink to="/b">
|
||||||
|
<Icon icon="bookmark" size="l" /> <span>Bookmarks</span>
|
||||||
|
</MenuLink>
|
||||||
|
<SubMenu
|
||||||
|
overflow="auto"
|
||||||
|
gap={-8}
|
||||||
|
label={
|
||||||
|
<>
|
||||||
|
<Icon icon="more" size="l" />
|
||||||
|
<span class="menu-grow">More…</span>
|
||||||
|
<Icon icon="chevron-right" />
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<MenuLink to="/f">
|
||||||
|
<Icon icon="heart" size="l" /> <span>Likes</span>
|
||||||
|
</MenuLink>
|
||||||
|
<MenuLink to="/ft">
|
||||||
|
<Icon icon="hashtag" size="l" />{' '}
|
||||||
|
<span>Followed Hashtags</span>
|
||||||
|
</MenuLink>
|
||||||
|
<MenuDivider />
|
||||||
|
<MenuItem
|
||||||
|
onClick={() => {
|
||||||
|
states.showGenericAccounts = {
|
||||||
|
id: 'mute',
|
||||||
|
heading: 'Muted users',
|
||||||
|
fetchAccounts: fetchMutes,
|
||||||
|
excludeRelationshipAttrs: ['muting'],
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Icon icon="mute" size="l" /> Muted users…
|
||||||
|
</MenuItem>
|
||||||
|
<MenuItem
|
||||||
|
onClick={() => {
|
||||||
|
states.showGenericAccounts = {
|
||||||
|
id: 'block',
|
||||||
|
heading: 'Blocked users',
|
||||||
|
fetchAccounts: fetchBlocks,
|
||||||
|
excludeRelationshipAttrs: ['blocking'],
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Icon icon="block" size="l" />
|
||||||
|
Blocked users…
|
||||||
|
</MenuItem>{' '}
|
||||||
|
</SubMenu>
|
||||||
|
<MenuDivider />
|
||||||
<MenuItem
|
<MenuItem
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
states.showAccounts = true;
|
states.showAccounts = true;
|
||||||
|
@ -237,31 +262,32 @@ function NavMenu(props) {
|
||||||
>
|
>
|
||||||
<Icon icon="group" size="l" /> <span>Accounts…</span>
|
<Icon icon="group" size="l" /> <span>Accounts…</span>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem
|
</>
|
||||||
onClick={() => {
|
) : (
|
||||||
states.showGenericAccounts = {
|
<>
|
||||||
id: 'mute',
|
<MenuDivider />
|
||||||
heading: 'Muted users',
|
<MenuLink to="/login">
|
||||||
fetchAccounts: fetchMutes,
|
<Icon icon="user" size="l" /> <span>Log in</span>
|
||||||
excludeRelationshipAttrs: ['muting'],
|
</MenuLink>
|
||||||
};
|
</>
|
||||||
}}
|
)}
|
||||||
>
|
</section>
|
||||||
<Icon icon="mute" size="l" /> Muted users…
|
<section>
|
||||||
</MenuItem>
|
<MenuDivider />
|
||||||
<MenuItem
|
<MenuLink to={`/search`}>
|
||||||
onClick={() => {
|
<Icon icon="search" size="l" /> <span>Search</span>
|
||||||
states.showGenericAccounts = {
|
</MenuLink>
|
||||||
id: 'block',
|
<MenuLink to={`/${instance}/trending`}>
|
||||||
heading: 'Blocked users',
|
<Icon icon="chart" size="l" /> <span>Trending</span>
|
||||||
fetchAccounts: fetchBlocks,
|
</MenuLink>
|
||||||
excludeRelationshipAttrs: ['blocking'],
|
<MenuLink to={`/${instance}/p/l`}>
|
||||||
};
|
<Icon icon="building" size="l" /> <span>Local</span>
|
||||||
}}
|
</MenuLink>
|
||||||
>
|
<MenuLink to={`/${instance}/p`}>
|
||||||
<Icon icon="block" size="l" />
|
<Icon icon="earth" size="l" /> <span>Federated</span>
|
||||||
Blocked users…
|
</MenuLink>
|
||||||
</MenuItem>
|
{authenticated ? (
|
||||||
|
<>
|
||||||
<MenuDivider className="divider-grow" />
|
<MenuDivider className="divider-grow" />
|
||||||
<MenuItem
|
<MenuItem
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
@ -290,9 +316,6 @@ function NavMenu(props) {
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
<MenuDivider />
|
<MenuDivider />
|
||||||
<MenuLink to="/login">
|
|
||||||
<Icon icon="user" size="l" /> <span>Log in</span>
|
|
||||||
</MenuLink>
|
|
||||||
<MenuItem
|
<MenuItem
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
states.showSettings = true;
|
states.showSettings = true;
|
||||||
|
|
Loading…
Reference in a new issue