+
diff --git a/web/src/components/MenuBtnsPopup.tsx b/web/src/components/MenuBtnsPopup.tsx
index b418a48e..410986fb 100644
--- a/web/src/components/MenuBtnsPopup.tsx
+++ b/web/src/components/MenuBtnsPopup.tsx
@@ -1,6 +1,7 @@
import { useEffect, useRef } from "react";
import * as api from "../helpers/api";
import { locationService, userService } from "../services";
+import { useAppSelector } from "../store";
import toastHelper from "./Toast";
import showAboutSiteDialog from "./AboutSiteDialog";
import "../less/menu-btns-popup.less";
@@ -12,6 +13,7 @@ interface Props {
const MenuBtnsPopup: React.FC
= (props: Props) => {
const { shownStatus, setShownStatus } = props;
+ const user = useAppSelector((state) => state.user.user);
const popupElRef = useRef(null);
useEffect(() => {
@@ -55,10 +57,6 @@ const MenuBtnsPopup: React.FC = (props: Props) => {
window.location.reload();
};
- const handleSignInBtnClick = async () => {
- locationService.replaceHistory("/signin");
- };
-
return (
);
};
diff --git a/web/src/components/UserBanner.tsx b/web/src/components/UserBanner.tsx
index 2a607bb7..7b93dcd2 100644
--- a/web/src/components/UserBanner.tsx
+++ b/web/src/components/UserBanner.tsx
@@ -22,7 +22,9 @@ const UserBanner: React.FC = () => {
.getUserNameById(currentUserId)
.then(({ data }) => {
const { data: username } = data;
- setUsername(username);
+ if (username) {
+ setUsername(username);
+ }
})
.catch(() => {
toastHelper.error("User not found");
diff --git a/web/src/pages/Home.tsx b/web/src/pages/Home.tsx
index 474c2f53..b6c304ad 100644
--- a/web/src/pages/Home.tsx
+++ b/web/src/pages/Home.tsx
@@ -1,5 +1,6 @@
import { useEffect } from "react";
import { locationService, userService } from "../services";
+import * as api from "../helpers/api";
import useLoading from "../hooks/useLoading";
import Only from "../components/common/OnlyWhen";
import Sidebar from "../components/Sidebar";
@@ -7,6 +8,7 @@ import MemosHeader from "../components/MemosHeader";
import MemoEditor from "../components/MemoEditor";
import MemoFilter from "../components/MemoFilter";
import MemoList from "../components/MemoList";
+import toastHelper from "../components/Toast";
import "../less/home.less";
function Home() {
@@ -16,10 +18,20 @@ function Home() {
userService
.doSignIn()
.catch()
- .finally(() => {
- if (!userService.isVisitorMode() && !userService.getState().user) {
- locationService.replaceHistory("/signin");
- return;
+ .finally(async () => {
+ if (!userService.getState().user) {
+ if (userService.isVisitorMode()) {
+ const currentUserId = userService.getUserIdFromPath() as number;
+ const {
+ data: { data: username },
+ } = await api.getUserNameById(currentUserId);
+ if (!username) {
+ toastHelper.error("User not found");
+ }
+ } else {
+ locationService.replaceHistory("/signin");
+ return;
+ }
}
loadingState.setFinish();
});
diff --git a/web/src/types/modules/memo.d.ts b/web/src/types/modules/memo.d.ts
index 058eceac..6b4e1e8c 100644
--- a/web/src/types/modules/memo.d.ts
+++ b/web/src/types/modules/memo.d.ts
@@ -1,5 +1,7 @@
type MemoId = number;
+type Visibility = "PUBLIC" | "PRIVATE";
+
interface Memo {
id: MemoId;
@@ -9,6 +11,7 @@ interface Memo {
rowStatus: RowStatus;
content: string;
+ visibility: Visibility;
pinned: boolean;
}
@@ -21,9 +24,11 @@ interface MemoPatch {
id: MemoId;
content?: string;
rowStatus?: RowStatus;
+ visibility?: Visibility;
}
interface MemoFind {
creatorId?: UserId;
rowStatus?: RowStatus;
+ visibility?: Visibility;
}