Skip to content

Commit

Permalink
chore: add last visited page
Browse files Browse the repository at this point in the history
  • Loading branch information
boojack committed May 28, 2024
1 parent 239f28c commit 0275a65
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 5 deletions.
5 changes: 5 additions & 0 deletions web/src/components/TimelineSidebar/TimelineSidebar.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
import clsx from "clsx";
import useCurrentUser from "@/hooks/useCurrentUser";
import TagsSection from "../HomeSidebar/TagsSection";
import SearchBar from "../SearchBar";
import UserStatisticsView from "../UserStatisticsView";

interface Props {
className?: string;
}

const TimelineSidebar = (props: Props) => {
const currentUser = useCurrentUser();

return (
<aside
className={clsx(
Expand All @@ -15,6 +19,7 @@ const TimelineSidebar = (props: Props) => {
)}
>
<SearchBar />
<UserStatisticsView user={currentUser} />
<TagsSection />
</aside>
);
Expand Down
4 changes: 0 additions & 4 deletions web/src/components/UserStatisticsView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ const UserStatisticsView = (props: Props) => {
const memos = Object.values(memoStore.getState().memoMapByName);

useEffect(() => {
if (memos.length === 0) {
return;
}

(async () => {
setIsRequesting(true);
const { properties } = await memoServiceClient.listMemoProperties({
Expand Down
7 changes: 7 additions & 0 deletions web/src/pages/Home.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Button } from "@mui/joy";
import clsx from "clsx";
import { useEffect, useState } from "react";
import { useLocalStorage } from "react-use";
import Empty from "@/components/Empty";
import { HomeSidebar, HomeSidebarDrawer } from "@/components/HomeSidebar";
import Icon from "@/components/Icon";
Expand All @@ -13,6 +14,7 @@ import { getTimeStampByDate } from "@/helpers/datetime";
import useCurrentUser from "@/hooks/useCurrentUser";
import useFilterWithUrlParams from "@/hooks/useFilterWithUrlParams";
import useResponsiveWidth from "@/hooks/useResponsiveWidth";
import { Routes } from "@/router";
import { useMemoList, useMemoStore } from "@/store/v1";
import { RowStatus } from "@/types/proto/api/v1/common";
import { useTranslate } from "@/utils/i18n";
Expand All @@ -23,6 +25,7 @@ const Home = () => {
const user = useCurrentUser();
const memoStore = useMemoStore();
const memoList = useMemoList();
const [, setLastVisited] = useLocalStorage<string>("lastVisited", Routes.HOME);
const [isRequesting, setIsRequesting] = useState(true);
const [nextPageToken, setNextPageToken] = useState<string>("");
const filter = useFilterWithUrlParams();
Expand All @@ -31,6 +34,10 @@ const Home = () => {
.sort((a, b) => getTimeStampByDate(b.displayTime) - getTimeStampByDate(a.displayTime))
.sort((a, b) => Number(b.pinned) - Number(a.pinned));

useEffect(() => {
setLastVisited(Routes.HOME);
}, []);

useEffect(() => {
memoList.reset();
fetchMemos("");
Expand Down
20 changes: 20 additions & 0 deletions web/src/pages/RootRedirector.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { useEffect } from "react";
import useLocalStorage from "react-use/lib/useLocalStorage";
import useNavigateTo from "@/hooks/useNavigateTo";

const RootRedirector: React.FC = () => {
const [lastVisited] = useLocalStorage<string>("lastVisited", "/home");
const navigateTo = useNavigateTo();

useEffect(() => {
if (lastVisited === "/home" || lastVisited === "/timeline") {
navigateTo(lastVisited);
} else {
navigateTo("/home");
}
}, []);

return <></>;
};

export default RootRedirector;
7 changes: 7 additions & 0 deletions web/src/pages/Timeline.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Button, IconButton } from "@mui/joy";
import clsx from "clsx";
import dayjs from "dayjs";
import { useEffect, useState } from "react";
import { useLocalStorage } from "react-use";
import ActivityCalendar from "@/components/ActivityCalendar";
import Empty from "@/components/Empty";
import Icon from "@/components/Icon";
Expand All @@ -17,6 +18,7 @@ import useCurrentUser from "@/hooks/useCurrentUser";
import useFilterWithUrlParams from "@/hooks/useFilterWithUrlParams";
import useResponsiveWidth from "@/hooks/useResponsiveWidth";
import i18n from "@/i18n";
import { Routes } from "@/router";
import { useMemoList, useMemoStore } from "@/store/v1";
import { useTranslate } from "@/utils/i18n";

Expand All @@ -26,6 +28,7 @@ const Timeline = () => {
const user = useCurrentUser();
const memoStore = useMemoStore();
const memoList = useMemoList();
const [, setLastVisited] = useLocalStorage<string>("lastVisited", Routes.TIMELINE);
const { tag: tagQuery, text: textQuery } = useFilterWithUrlParams();
const [activityStats, setActivityStats] = useState<Record<string, number>>({});
const [selectedDateString, setSelectedDateString] = useState<string>(new Date().toDateString());
Expand All @@ -34,6 +37,10 @@ const Timeline = () => {
const sortedMemos = memoList.value.sort((a, b) => getTimeStampByDate(a.displayTime) - getTimeStampByDate(b.displayTime));
const monthString = dayjs(selectedDateString).format("YYYY-MM");

useEffect(() => {
setLastVisited(Routes.TIMELINE);
}, []);

useEffect(() => {
memoList.reset();
fetchMemos("");
Expand Down
8 changes: 7 additions & 1 deletion web/src/router/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,16 @@ import MemoDetail from "@/pages/MemoDetail";
import NotFound from "@/pages/NotFound";
import PermissionDenied from "@/pages/PermissionDenied";
import Resources from "@/pages/Resources";
import RootRedirector from "@/pages/RootRedirector";
import Setting from "@/pages/Setting";
import SignIn from "@/pages/SignIn";
import SignUp from "@/pages/SignUp";
import Timeline from "@/pages/Timeline";
import UserProfile from "@/pages/UserProfile";

export enum Routes {
HOME = "/",
ROOT = "/",
HOME = "/home",
TIMELINE = "/timeline",
RESOURCES = "/resources",
INBOX = "/inbox",
Expand Down Expand Up @@ -57,6 +59,10 @@ const router = createBrowserRouter([
path: "/",
element: <HomeLayout />,
children: [
{
path: Routes.ROOT,
element: <RootRedirector />,
},
{
path: Routes.HOME,
element: <Home />,
Expand Down

0 comments on commit 0275a65

Please sign in to comment.