From 70ab5ef05977ac4cf54f049e7c75cdc1d3047378 Mon Sep 17 00:00:00 2001 From: anian Date: Sat, 4 Jul 2026 16:56:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BD=92=E6=A1=A3=E9=A1=B5?= =?UTF-8?q?=E3=80=81=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 + .../MemoReactionListView.tsx | 4 +- .../MemoReactionListView/ReactionView.tsx | 6 +-- .../MemoView/components/MemoHeader.tsx | 50 +++++++++++-------- web/src/components/MemoView/hooks/index.ts | 1 - .../MemoView/hooks/useMemoActions.ts | 13 ----- 6 files changed, 34 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 96cec8b..96b3cab 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ #### v0.29.1-2补丁 1. 修改设置页面commit基础链接 +2. 优化图标样式 +3. 归档页面允许设置表情 #### v0.29.1-2 1. 置顶内容新增自动折叠;置顶效果及图标改为全局显示 diff --git a/web/src/components/MemoReactionListView/MemoReactionListView.tsx b/web/src/components/MemoReactionListView/MemoReactionListView.tsx index afe362a..9da9206 100644 --- a/web/src/components/MemoReactionListView/MemoReactionListView.tsx +++ b/web/src/components/MemoReactionListView/MemoReactionListView.tsx @@ -1,6 +1,5 @@ import { memo } from "react"; import useCurrentUser from "@/hooks/useCurrentUser"; -import { State } from "@/types/proto/api/v1/common_pb"; import type { Memo, Reaction } from "@/types/proto/api/v1/memo_service_pb"; import { useReactionGroups } from "./hooks"; import ReactionSelector from "./ReactionSelector"; @@ -15,7 +14,6 @@ const MemoReactionListView = (props: Props) => { const { memo: memoData, reactions } = props; const currentUser = useCurrentUser(); const reactionGroup = useReactionGroups(reactions); - const readonly = memoData.state === State.ARCHIVED; if (reactions.length === 0) { return null; @@ -26,7 +24,7 @@ const MemoReactionListView = (props: Props) => { {Array.from(reactionGroup).map(([reactionType, users]) => ( ))} - {!readonly && currentUser && } + {currentUser && } ); }; diff --git a/web/src/components/MemoReactionListView/ReactionView.tsx b/web/src/components/MemoReactionListView/ReactionView.tsx index a8803f0..92d9552 100644 --- a/web/src/components/MemoReactionListView/ReactionView.tsx +++ b/web/src/components/MemoReactionListView/ReactionView.tsx @@ -1,7 +1,6 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"; import useCurrentUser from "@/hooks/useCurrentUser"; import { cn } from "@/lib/utils"; -import { State } from "@/types/proto/api/v1/common_pb"; import type { Memo } from "@/types/proto/api/v1/memo_service_pb"; import type { User } from "@/types/proto/api/v1/user_service_pb"; import { formatReactionTooltip, useReactionActions } from "./hooks"; @@ -16,16 +15,15 @@ const ReactionView = (props: Props) => { const { memo, reactionType, users } = props; const currentUser = useCurrentUser(); const hasReaction = users.some((user) => currentUser && user.username === currentUser.username); - const readonly = memo.state === State.ARCHIVED; const { handleReactionClick } = useReactionActions({ memo }); const handleClick = () => { - if (!currentUser || readonly) return; + if (!currentUser) return; handleReactionClick(reactionType); }; - const isClickable = currentUser && !readonly; + const isClickable = Boolean(currentUser); return ( diff --git a/web/src/components/MemoView/components/MemoHeader.tsx b/web/src/components/MemoView/components/MemoHeader.tsx index da9d030..55db70c 100644 --- a/web/src/components/MemoView/components/MemoHeader.tsx +++ b/web/src/components/MemoView/components/MemoHeader.tsx @@ -1,7 +1,7 @@ -import { BookmarkIcon } from "lucide-react"; +import { ArchiveIcon, BookmarkIcon } from "lucide-react"; import { useCallback, useState } from "react"; import { Link } from "react-router-dom"; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"; +import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import useNavigateTo from "@/hooks/useNavigateTo"; import i18n from "@/i18n"; import { cn } from "@/lib/utils"; @@ -12,7 +12,6 @@ import MemoActionMenu from "../../MemoActionMenu"; import { ReactionSelector } from "../../MemoReactionListView"; import UserAvatar from "../../UserAvatar"; import VisibilityIcon from "../../VisibilityIcon"; -import { useMemoActions } from "../hooks"; import { useMemoViewContext, useMemoViewDerived } from "../MemoViewContext"; import type { MemoHeaderProps } from "../types"; @@ -28,8 +27,6 @@ const MemoHeader: React.FC = ({ showCreator, showVisibility, sh navigateTo(`/${memo.name}`, { state: { from: parentPage } }); }, [memo.name, parentPage, navigateTo]); - const { unpinMemo } = useMemoActions(memo); - const timeValue = isArchived ? ( memoDisplayTime?.toLocaleString(i18n.language) ) : ( @@ -58,7 +55,7 @@ const MemoHeader: React.FC = ({ showCreator, showVisibility, sh
- {currentUser && !isArchived && ( + {currentUser && ( = ({ showCreator, showVisibility, sh /> )} + {showPinned && memo.pinned && ( + + + + + + + +

{t("common.pinned")}

+
+
+ )} + + {isArchived && ( + + + + + + + +

{t("common.archived")}

+
+
+ )} + {showVisibility && ( @@ -79,21 +102,6 @@ const MemoHeader: React.FC = ({ showCreator, showVisibility, sh )} - {showPinned && memo.pinned && ( - - - - - - - - -

{t("common.unpin")}

-
-
-
- )} -
diff --git a/web/src/components/MemoView/hooks/index.ts b/web/src/components/MemoView/hooks/index.ts index f830d86..05ab932 100644 --- a/web/src/components/MemoView/hooks/index.ts +++ b/web/src/components/MemoView/hooks/index.ts @@ -1,3 +1,2 @@ export { useImagePreview } from "./useImagePreview"; -export { useMemoActions } from "./useMemoActions"; export { useMemoHandlers } from "./useMemoHandlers"; diff --git a/web/src/components/MemoView/hooks/useMemoActions.ts b/web/src/components/MemoView/hooks/useMemoActions.ts index 3fee74d..e69de29 100644 --- a/web/src/components/MemoView/hooks/useMemoActions.ts +++ b/web/src/components/MemoView/hooks/useMemoActions.ts @@ -1,13 +0,0 @@ -import { useUpdateMemo } from "@/hooks/useMemoQueries"; -import type { Memo } from "@/types/proto/api/v1/memo_service_pb"; - -export const useMemoActions = (memo: Memo) => { - const { mutateAsync: updateMemo } = useUpdateMemo(); - - const unpinMemo = async () => { - if (!memo.pinned) return; - await updateMemo({ update: { name: memo.name, pinned: false }, updateMask: ["pinned"] }); - }; - - return { unpinMemo }; -};