diff --git a/src/components/sidebar/TrashView.tsx b/src/components/sidebar/TrashView.tsx new file mode 100644 index 0000000..1a9b93a --- /dev/null +++ b/src/components/sidebar/TrashView.tsx @@ -0,0 +1,75 @@ +import { Trash2, RotateCcw } from 'lucide-react' +import { useAppStore } from '../../stores/appStore' + +function daysLeft(deletedAt: number): number { + const elapsed = Date.now() - deletedAt + return Math.max(0, 30 - Math.floor(elapsed / (24 * 60 * 60 * 1000))) +} + +export function TrashView() { + const { trashNotes, restoreNote, emptyTrash } = useAppStore() + const notes = trashNotes() + + return ( +
+
+ + {notes.length > 0 ? `${notes.length} 条笔记` : '回收站为空'} + + {notes.length > 0 && ( + + )} +
+ +
+ {notes.length === 0 ? ( +
+ +

回收站为空

+
+ ) : ( + notes.map(note => ( +
(e.currentTarget.style.background = 'var(--bg-muted)')} + onMouseLeave={e => (e.currentTarget.style.background = 'transparent')} + > +
+

+ {note.title || '无标题'} +

+

+ {daysLeft(note.deletedAt!)} 天后永久删除 +

+
+ +
+ )) + )} +
+
+ ) +}