mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
chore: update navigation
This commit is contained in:
@ -25,7 +25,7 @@ const HomeSidebarDrawer = () => {
|
|||||||
<IconButton onClick={toggleDrawer(true)}>
|
<IconButton onClick={toggleDrawer(true)}>
|
||||||
<Icon.Search className="w-5 h-auto dark:text-gray-200" />
|
<Icon.Search className="w-5 h-auto dark:text-gray-200" />
|
||||||
</IconButton>
|
</IconButton>
|
||||||
<Drawer anchor="right" open={open} onClose={toggleDrawer(false)}>
|
<Drawer anchor="right" size="sm" open={open} onClose={toggleDrawer(false)}>
|
||||||
<div className="w-full px-4">
|
<div className="w-full px-4">
|
||||||
<HomeSidebar />
|
<HomeSidebar />
|
||||||
</div>
|
</div>
|
||||||
|
@ -116,12 +116,12 @@ const MemoList: React.FC = () => {
|
|||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div className="flex flex-col justify-start items-center w-full my-6">
|
<div className="flex flex-col justify-start items-center w-full my-6">
|
||||||
<div className="text-sm text-gray-400 italic">
|
<div className="text-gray-400 italic">
|
||||||
{loadingStatus === "complete" ? (
|
{loadingStatus === "complete" ? (
|
||||||
sortedMemos.length === 0 && (
|
sortedMemos.length === 0 && (
|
||||||
<div className="w-full mt-12 mb-8 flex flex-col justify-center items-center italic">
|
<div className="w-full mt-12 mb-8 flex flex-col justify-center items-center italic">
|
||||||
<Empty />
|
<Empty />
|
||||||
<p className="mt-4 text-gray-600 dark:text-gray-400">{t("message.no-data")}</p>
|
<p className="mt-2 text-gray-600 dark:text-gray-400">{t("message.no-data")}</p>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
) : (
|
) : (
|
||||||
|
@ -1,19 +1,18 @@
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import HeaderDrawer from "./HeaderDrawer";
|
import NavigationDrawer from "./NavigationDrawer";
|
||||||
import HomeSidebarDrawer from "./HomeSidebarDrawer";
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
showSearch?: boolean;
|
children?: React.ReactNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
const MobileHeader = (props: Props) => {
|
const MobileHeader = (props: Props) => {
|
||||||
const { showSearch } = props;
|
const { children } = props;
|
||||||
const [titleText] = useState("MEMOS");
|
const [titleText] = useState("MEMOS");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="sticky top-0 pt-4 sm:pt-1 pb-1 mb-1 backdrop-blur bg-zinc-100 dark:bg-zinc-800 bg-opacity-70 flex md:hidden flex-row justify-between items-center w-full h-auto flex-nowrap shrink-0 z-2">
|
<div className="sticky top-0 pt-4 sm:pt-1 pb-1 mb-1 backdrop-blur bg-zinc-100 dark:bg-zinc-800 bg-opacity-70 flex md:hidden flex-row justify-between items-center w-full h-auto flex-nowrap shrink-0 z-2">
|
||||||
<div className="flex flex-row justify-start items-center mr-2 shrink-0 overflow-hidden">
|
<div className="flex flex-row justify-start items-center mr-2 shrink-0 overflow-hidden">
|
||||||
<HeaderDrawer />
|
<NavigationDrawer />
|
||||||
<span
|
<span
|
||||||
className="font-bold text-lg leading-10 mr-1 text-ellipsis shrink-0 cursor-pointer overflow-hidden text-gray-700 dark:text-gray-200"
|
className="font-bold text-lg leading-10 mr-1 text-ellipsis shrink-0 cursor-pointer overflow-hidden text-gray-700 dark:text-gray-200"
|
||||||
onClick={() => location.reload()}
|
onClick={() => location.reload()}
|
||||||
@ -21,7 +20,7 @@ const MobileHeader = (props: Props) => {
|
|||||||
{titleText}
|
{titleText}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div className={`flex flex-row justify-end items-center pr-1`}>{showSearch && <HomeSidebarDrawer />}</div>
|
<div className="flex flex-row justify-end items-center">{children}</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -15,7 +15,7 @@ interface NavLinkItem {
|
|||||||
icon: React.ReactNode;
|
icon: React.ReactNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Header = () => {
|
const Navigation = () => {
|
||||||
const t = useTranslate();
|
const t = useTranslate();
|
||||||
const user = useCurrentUser();
|
const user = useCurrentUser();
|
||||||
const inboxStore = useInboxStore();
|
const inboxStore = useInboxStore();
|
||||||
@ -123,4 +123,4 @@ const Header = () => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Header;
|
export default Navigation;
|
@ -1,10 +1,10 @@
|
|||||||
import { Drawer, IconButton } from "@mui/joy";
|
import { Drawer, IconButton } from "@mui/joy";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { useLocation } from "react-router-dom";
|
import { useLocation } from "react-router-dom";
|
||||||
import Header from "./Header";
|
|
||||||
import Icon from "./Icon";
|
import Icon from "./Icon";
|
||||||
|
import Navigation from "./Navigation";
|
||||||
|
|
||||||
const HeaderDrawer = () => {
|
const NavigationDrawer = () => {
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
|
|
||||||
@ -25,13 +25,13 @@ const HeaderDrawer = () => {
|
|||||||
<IconButton onClick={toggleDrawer(true)}>
|
<IconButton onClick={toggleDrawer(true)}>
|
||||||
<Icon.Menu className="w-5 h-auto dark:text-gray-200" />
|
<Icon.Menu className="w-5 h-auto dark:text-gray-200" />
|
||||||
</IconButton>
|
</IconButton>
|
||||||
<Drawer anchor="left" open={open} onClose={toggleDrawer(false)}>
|
<Drawer anchor="left" size="sm" open={open} onClose={toggleDrawer(false)}>
|
||||||
<div className="w-full px-4">
|
<div className="w-full px-4">
|
||||||
<Header />
|
<Navigation />
|
||||||
</div>
|
</div>
|
||||||
</Drawer>
|
</Drawer>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default HeaderDrawer;
|
export default NavigationDrawer;
|
@ -52,10 +52,6 @@ const UsageHeatMap = () => {
|
|||||||
const [currentStat, setCurrentStat] = useState<DailyUsageStat | null>(null);
|
const [currentStat, setCurrentStat] = useState<DailyUsageStat | null>(null);
|
||||||
const containerElRef = useRef<HTMLDivElement>(null);
|
const containerElRef = useRef<HTMLDivElement>(null);
|
||||||
|
|
||||||
if (!user) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
userV1Store.getOrFetchUserByUsername(extractUsernameFromName(user.name)).then((user) => {
|
userV1Store.getOrFetchUserByUsername(extractUsernameFromName(user.name)).then((user) => {
|
||||||
if (!user) {
|
if (!user) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Outlet } from "react-router-dom";
|
import { Outlet } from "react-router-dom";
|
||||||
import DemoBanner from "@/components/DemoBanner";
|
import DemoBanner from "@/components/DemoBanner";
|
||||||
import Header from "@/components/Header";
|
import Navigation from "@/components/Navigation";
|
||||||
|
|
||||||
function Root() {
|
function Root() {
|
||||||
return (
|
return (
|
||||||
@ -10,7 +10,7 @@ function Root() {
|
|||||||
</div>
|
</div>
|
||||||
<div className="w-full max-w-6xl mx-auto flex flex-row justify-center items-start sm:px-4">
|
<div className="w-full max-w-6xl mx-auto flex flex-row justify-center items-start sm:px-4">
|
||||||
<div className="hidden sm:block sticky top-0 left-0 w-56">
|
<div className="hidden sm:block sticky top-0 left-0 w-56">
|
||||||
<Header />
|
<Navigation />
|
||||||
</div>
|
</div>
|
||||||
<main className="w-full min-h-screen sm:max-w-[calc(100%-14rem)] flex-grow shrink flex flex-col justify-start items-start">
|
<main className="w-full min-h-screen sm:max-w-[calc(100%-14rem)] flex-grow shrink flex flex-col justify-start items-start">
|
||||||
<Outlet />
|
<Outlet />
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import HomeSidebar from "@/components/HomeSidebar";
|
import HomeSidebar from "@/components/HomeSidebar";
|
||||||
|
import HomeSidebarDrawer from "@/components/HomeSidebarDrawer";
|
||||||
import MemoEditor from "@/components/MemoEditor";
|
import MemoEditor from "@/components/MemoEditor";
|
||||||
import MemoList from "@/components/MemoList";
|
import MemoList from "@/components/MemoList";
|
||||||
import MobileHeader from "@/components/MobileHeader";
|
import MobileHeader from "@/components/MobileHeader";
|
||||||
@ -7,7 +8,9 @@ const Home = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="w-full flex flex-row justify-start items-start">
|
<div className="w-full flex flex-row justify-start items-start">
|
||||||
<div className="w-full px-4 md:max-w-[calc(100%-14rem)] sm:px-2 sm:pt-4">
|
<div className="w-full px-4 md:max-w-[calc(100%-14rem)] sm:px-2 sm:pt-4">
|
||||||
<MobileHeader showSearch={true} />
|
<MobileHeader>
|
||||||
|
<HomeSidebarDrawer />
|
||||||
|
</MobileHeader>
|
||||||
<MemoEditor className="mb-2" cacheKey="home-memo-editor" />
|
<MemoEditor className="mb-2" cacheKey="home-memo-editor" />
|
||||||
<MemoList />
|
<MemoList />
|
||||||
</div>
|
</div>
|
||||||
|
@ -23,7 +23,7 @@ const initialGlobalStateLoader = async () => {
|
|||||||
try {
|
try {
|
||||||
await initialGlobalState();
|
await initialGlobalState();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// do nth
|
// do nothing.
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user