feat: task trash, triage trash and retention settings for every area; admin can forbid keeping things for good
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m39s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
sandrodachandClaude Opus 5.5 committed 2026-11-01 15:44:34 +01:00
1 parent a927a94a95
commit 5a9c5bac37
36 files changed
+1356 -175

No files matched your search

+31 -9
View File
@@ -20,6 +20,7 @@ import {
ArrowLeft,
ArrowRight,
ChevronDown,
Trash2,
} from 'lucide-react';
import { SharedList, Thought } from '../../lib/types';
import { addDays, formatDue } from '../../lib/due';
@@ -32,6 +33,9 @@ interface TriageDeckProps {
onDeckChange: () => void;
onOpenDocument: (docId: string) => void;
onFocusCapture: () => void;
// The triage's own trash (TriageTrash): thoughts thrown away while sorting
discardedCount: number;
onOpenTrash: () => void;
}
interface SwipeableQueueItemProps {
@@ -219,6 +223,8 @@ export const TriageDeck: React.FC<TriageDeckProps> = ({
lists,
onDeckChange,
onFocusCapture,
discardedCount,
onOpenTrash,
}) => {
const writableLists = lists.filter((l) => l.isOwner || l.role !== 'viewer');
const singleWritableList = writableLists.length === 1 ? writableLists[0] : null;
@@ -469,6 +475,13 @@ export const TriageDeck: React.FC<TriageDeckProps> = ({
Letzte Aktion rückgängig
</button>
)}
{discardedCount > 0 && (
<button onClick={onOpenTrash} className="btn-action h-10 px-4 text-sm">
<Trash2 className="w-4 h-4" />
Papierkorb ({discardedCount})
</button>
)}
</div>
</div>
);
@@ -488,15 +501,24 @@ export const TriageDeck: React.FC<TriageDeckProps> = ({
</span>
</div>
{lastTriaged && (
<button
onClick={handleUndo}
className="btn-action h-8 px-3 text-xs"
>
<RotateCcw className="w-3.5 h-3.5 text-accent" />
Rückgängig
</button>
)}
<div className="flex items-center gap-2">
{lastTriaged && (
<button
onClick={handleUndo}
className="btn-action h-8 px-3 text-xs"
>
<RotateCcw className="w-3.5 h-3.5 text-accent" />
Rückgängig
</button>
)}
{/* Phones reach the trash through the menu */}
{discardedCount > 0 && (
<button onClick={onOpenTrash} className="hidden sm:inline-flex btn-action h-8 px-3 text-xs" title="Papierkorb der Triage">
<Trash2 className="w-3.5 h-3.5" />
{discardedCount}
</button>
)}
</div>
</div>
{/* Card Stack Container */}