From 005a608369f74383821396cc9ef6a53b7ecbc965 Mon Sep 17 00:00:00 2001 From: MikiVL Date: Tue, 5 May 2026 04:52:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BE=A7=E8=BE=B9=E6=A0=8F=E9=9B=86?= =?UTF-8?q?=E6=88=90=E5=9B=9E=E6=94=B6=E7=AB=99=E5=85=A5=E5=8F=A3=E5=92=8C?= =?UTF-8?q?=20TrashView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/sidebar/Sidebar.tsx | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/components/sidebar/Sidebar.tsx b/src/components/sidebar/Sidebar.tsx index 50b0829..192c96f 100644 --- a/src/components/sidebar/Sidebar.tsx +++ b/src/components/sidebar/Sidebar.tsx @@ -15,6 +15,7 @@ import { } from '@dnd-kit/core' import { CSS } from '@dnd-kit/utilities' import { useAppStore } from '../../stores/appStore' +import { TrashView } from './TrashView' import { formatDate } from '../../lib/utils' import type { Folder as FolderType, Note } from '../../db' @@ -25,6 +26,7 @@ export function Sidebar() { updateNote, updateFolder, setActiveNote, setActiveFolder, setSearch, toggleTheme, toggleStar, filteredNotes, activeTag, setActiveTag, sortBy, sortOrder, setSortBy, setSortOrder, + trashNotes, } = useAppStore() const [expandedFolders, setExpandedFolders] = useState>(new Set()) @@ -229,6 +231,13 @@ export function Sidebar() { } label="使用指南" active={activeNoteId === '__welcome__'} onClick={() => setActiveNote('__welcome__')} /> } label="所有笔记" count={notes.length} active={activeFolderId === 'all' && activeNoteId !== '__welcome__'} onClick={() => { setActiveFolder('all'); if (activeNoteId === '__welcome__') setActiveNote(null) }} /> } label="收藏" count={notes.filter(n => n.starred).length} active={activeFolderId === 'starred'} onClick={() => { setActiveFolder('starred'); if (activeNoteId === '__welcome__') setActiveNote(null) }} /> + } + label="回收站" + count={trashNotes().length || undefined} + active={activeFolderId === 'trash'} + onClick={() => { setActiveFolder('trash'); if (activeNoteId === '__welcome__') setActiveNote(null) }} + /> {/* Folders section */} @@ -264,6 +273,10 @@ export function Sidebar() { {/* Note list */}
+ {activeFolderId === 'trash' ? ( + + ) : ( + <>
@@ -343,9 +356,9 @@ export function Sidebar() { /> ))}
+ + )}
- - {/* Context menu */} {contextMenu && (
e.stopPropagation()} > -

确认删除笔记?

-

此操作无法撤销。

+

将笔记移入回收站?

+

笔记将在 30 天后永久删除,期间可随时恢复。

+ >移入回收站