chore: update navigation

pull/2509/head
steven 1 year ago
parent dca90fb5d2
commit eb6b0ddead

@ -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;
}; };

Loading…
Cancel
Save