diff --git a/web/src/components/Memo.tsx b/web/src/components/Memo.tsx index 7e89ff63..9f25df95 100644 --- a/web/src/components/Memo.tsx +++ b/web/src/components/Memo.tsx @@ -25,6 +25,7 @@ import "@/less/memo.less"; interface Props { memo: Memo; + showCreator?: boolean; showVisibility?: boolean; showPinnedStyle?: boolean; lazyRendering?: boolean; @@ -45,7 +46,6 @@ const Memo: React.FC = (props: Props) => { const readonly = memo.creatorUsername !== extractUsernameFromName(user?.name); const [creator, setCreator] = useState(userV1Store.getUserByUsername(memo.creatorUsername)); const referenceRelations = memo.relationList.filter((relation) => relation.type === "REFERENCE"); - const commentRelations = memo.relationList.filter((relation) => relation.relatedMemoId === memo.id && relation.type === "COMMENT"); // Prepare memo creator. useEffect(() => { @@ -222,117 +222,108 @@ const Memo: React.FC = (props: Props) => { }; return ( - <> -
-
-
- - {displayTime} - -
-
- {!readonly && ( +
+
+
+ {props.showCreator && ( + <> + + + + + + {creator.nickname || extractUsernameFromName(creator.name)} + + + + + + + )} + + {displayTime} + +
+ + + + #{memo.id} + + + {memo.pinned && props.showPinnedStyle && ( <> - - - -
-
- {!memo.parent && ( - - {memo.pinned ? ( - - ) : ( - - )} - {memo.pinned ? t("common.unpin") : t("common.pin")} - - )} - - - {t("common.edit")} - - {!memo.parent && ( - - - {t("common.mark")} - - )} - showShareMemoDialog(memo)}> - - {t("common.share")} - - - - - {t("common.archive")} - - - - {t("common.delete")} - -
-
+ + + + + + )} + {props.showVisibility && memo.visibility !== "PRIVATE" && ( + <> + + + + + + )}
- - - -
-
- {creator && ( - <> - - - #{memo.id} - - - - - - - - - {creator.nickname || extractUsernameFromName(creator.name)} - +
+ {!readonly && ( + <> + + + +
+
+ {!memo.parent && ( + + {memo.pinned ? : } + {memo.pinned ? t("common.unpin") : t("common.pin")} - - - {memo.pinned && props.showPinnedStyle && ( - <> - - - - - - )} - {props.showVisibility && memo.visibility !== "PRIVATE" && ( - <> - - - - - - - - )} - - - - {commentRelations.length} - - - )} -
+ )} + + + {t("common.edit")} + + {!memo.parent && ( + + + {t("common.mark")} + + )} + showShareMemoDialog(memo)}> + + {t("common.share")} + + + + + {t("common.archive")} + + + + {t("common.delete")} + +
+
+ + )}
- + + + +
); }; diff --git a/web/src/components/PreviewImageDialog.tsx b/web/src/components/PreviewImageDialog.tsx index 4bd22de8..627253f9 100644 --- a/web/src/components/PreviewImageDialog.tsx +++ b/web/src/components/PreviewImageDialog.tsx @@ -1,5 +1,4 @@ import React, { useState } from "react"; -import { getDateTimeString } from "@/helpers/datetime"; import { generateDialog } from "./Dialog"; import Icon from "./Icon"; import "@/less/preview-image-dialog.less"; @@ -35,13 +34,6 @@ const PreviewImageDialog: React.FC = ({ destroy, imgUrls, initialIndex }: destroy(); }; - const handleDownloadBtnClick = () => { - const a = document.createElement("a"); - a.href = imgUrls[currentIndex]; - a.download = `memos-${getDateTimeString(Date.now())}.png`; - a.click(); - }; - const handleTouchStart = (event: React.TouchEvent) => { if (event.touches.length > 1) { // two or more fingers, ignore @@ -126,9 +118,6 @@ const PreviewImageDialog: React.FC = ({ destroy, imgUrls, initialIndex }: -
.memo-top-wrapper { - @apply flex flex-row justify-between items-center w-full h-6 mb-1; + @apply flex flex-row justify-between items-center w-full h-6; > .btns-container { @apply flex flex-row justify-end items-center relative shrink-0; diff --git a/web/src/pages/Explore.tsx b/web/src/pages/Explore.tsx index e1adffb1..3e9886d6 100644 --- a/web/src/pages/Explore.tsx +++ b/web/src/pages/Explore.tsx @@ -83,7 +83,7 @@ const Explore = () => {
{sortedMemos.map((memo) => ( - + ))} {loadingStatus === "fetching" ? ( diff --git a/web/src/pages/MemoDetail.tsx b/web/src/pages/MemoDetail.tsx index e06261d1..1666b5b7 100644 --- a/web/src/pages/MemoDetail.tsx +++ b/web/src/pages/MemoDetail.tsx @@ -210,7 +210,7 @@ const MemoDetail = () => { ({comments.length})
{comments.map((comment) => ( - + ))} )}